您好,我使用的是CH582_BLE_MESH工程,需要用到DataFlash存储一些数据,但是每次开机数据就被清零了,估计是该存储地址被占用,试了好几个地址都是同样的现象,想请问一下还有那块DataFlash地址是空闲区域?谢谢
关于DataFlash这一块,官网的文档一直没有详细介绍一下,希望沁恒把这一块的资料补全。
您好,最新EVT中,默认使用了前12K的dataflash。可以在app_mesh_config.h中修改宏,最小扇区数为2,最小扇区存储也可以改小,小到初始化不报错即可。另外如果mesh代码中使用了BLE,用到了BLE的配对绑定功能,配对绑定数据保存在dataflash的尾部,见config.h中的相关宏。
@夏季的雪您好,最新EVT中提供有FLASH例程,您可以参考例程编写代码。手册中也有flash相关参数如下图。
如果您需要其他方面的参考,或者您有其他宝贵建议,都可以提出。
dataflash使用首地址是从0x00开始还是0x70000开始,从0x00开始能正常存储数据但会破坏程序正常运行,从0x70000开始都不能正常存储数据重启数据就清零,12K以后都有试了
您好,调用库函数EEPROM_READ/ERASE/WRITE时只需要偏移地址,不用从0x70000开始。
您是下载代码时点了“清空dataflash”吗,“重启”是指调用节点reset之后吗。
借地问一下,582的DataFlash是否需要注意寿命问题?
您好,使用寿命需要结合代码的擦写频次考虑,手册中有擦写次数典型值。如果说保存比较频繁,在应用层代码中可以使用多扇区管理的方式,交替使用n块flash来延长寿命。