• 正文
  • 相关推荐
申请入驻 产业图谱

【蓝牙开发笔记】中科蓝讯SDK开发 内置FLASH读写方法

02/06 14:43
660
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

我们在开发的时候经常要存储一些自定义参数写入内部FLASH并读取出来,本文讲解中科蓝讯SDK的内置FLASH读法方法。

首先了解一下中科蓝讯的芯片框架结构:

芯片内部一般会封装一颗 512K 或 1M SpiFlash,用于存放代码及资源文件/参数记忆等。SpiFlash 和芯片之间通过 spi 接口进行通信

首先,代码不会直接在 SpiFlash 上运行,SpiFlash 中所有程序及数据均需要先通过 spi 接口加载到芯片 RAM 中,CPU 再从 RAM 中取指令或数据运行。

以上就是中科蓝讯平台 FLASH 相关内容的介绍。下面我们探讨一下内部Flash读写方法,难免会有失误,欢迎大家一起留言探讨,谢谢大家!

设定写入地址

文件:appplatformbspbsmatchp_param.h添加要写的自定义参数的相对地址

API读写FLASH

API

写 flash cache函数

cm_write8(u32 addr, u8 val);    //注意:write 只是写入 cache;
addr 是待写入的地址值,val 是需要写入的值;
cm_sync();   //将 write 写入 cache 的内容同步到 spiflash 中;

注意此接口函数在写入操作后进行调用是必须的,否则写入操作不会生效。

读 flash cache函数

cm_read8(u32 addr);
addr 是准备读取的地址值,函数返回值是我们读取到的结果值。

写参数接口函数

void bsp_param_write(u8 *buf, u32 addr, uint len);

读参数接口函数

void bsp_param_read(u8 *buf, u32 addr, uint len);

示例:

在main.c bsp_sys_init后添加下面代码

#if FLASH_RW_TEST_EN
u8 readPram[16];
bsp_param_write("Prama testn", PARAM_USER_DATA, 16);
bsp_param_read(readPram, PARAM_USER_DATA,16);
printf("%s", readPram);

#endif // FLASH_RW_TEST_EN

在配置文件config.h里,添加

#define FLASH_RW_TEST_EN 1

正式发布不需要这个测试,在配置文件里,把定义值改为0即可。

编译烧录、调试

开启开发功能,烧录后,会打印日志, 验证是否读写成功。

点赞
收藏
评论
分享
加入交流群
举报

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录