中科蓝讯SDK开发 内置FLASH读法方法
首先了解一下中科蓝讯的芯片框架结构:
芯片内部一般会封装一颗 512K 或 1M SpiFlash,用于存放代码及资源文件/参数记忆等。SpiFlash 和芯片之间通过 spi 接口进行通信。
首先,代码不会直接在 SpiFlash 上运行,SpiFlash 中所有程序及数据均需要先通过 spi 接口加载到芯片 RAM 中,CPU 再从 RAM 中取指令或数据运行。
以上就是中科蓝讯平台 FLASH 相关内容的介绍。下面我们探讨一下内部Flash读写方法,难免会有失误,欢迎大家一起留言探讨,谢谢大家!
确认写入地址
调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);
#if FLASH_RW_TEST_EN u8 readPram[16]; bsp_param_write("Prama test\n", PARAM_USER_DATA, 16); bsp_param_read(readPram, PARAM_USER_DATA,16); printf("%s", readPram); #endif // FLASH_RW_TEST_EN
编译烧录、调试

开启开发功能,烧录后,会打印日志