沁恒risc-v蓝牙芯片的flash使用注意点
Ⅰ.调用接口方面(表格中使用CH592F实测)
①不论是codeflash还是dataflash,写之前一定要先擦除。dataflash的接口名中带有EEPROM字样,但本质上它还是flash。
②操作flash相关接口,在库中已包含失能/恢复中断 ,无需应用层代码再添加。
③操作flash接口导致硬件错误复位,常见情况是4字节对齐问题导致,排查方法见博客:CH57x/CH58x/CH32V wch risc-v 芯片hardfault问题追踪&程序卡死追踪 - iot-fan - 博客园 (cnblogs.com)
Ⅱ.手册信息,介绍了擦写寿命、单词扇区擦除操作时间。RISC-V内核的CH5Xx蓝牙MCU此处参数相差不大。
Ⅲ.BLE例程中使用到的dataflash区域。注意避开或是在宏定义中重新规划。
如果使用的是CH57x系列、CH58x系列(包括CH582系列和CH585系列),以及非CH592A这一型号且已使用了CH59x的24年9月前的EVT包的情况下,可以参考以下表格中的地址:
如果使用的是CH592A这一特定型号,那么dataflash一定要按下方表格配置。
25年及以后发布的CH592EVT包已改成兼容CH592A的下表地址。如果实际用其他59x系列MCU如CH592F、CH591D等,可自定义修改;可改成与上方表格一致的地址配置来节省空间;已量产的代码也可以继续使用,不必修改到兼容CH592A的代码。
BLE代码中,由于CH592A的dataflash擦除单位为4K,不建议在0x7000~0x7FFFF范围内存放自定义内容,实际默认使用256字节来保存单个设备的配对绑定信息(0x7000~0x70FF为1个,依次往后保存)。
Ⅳ.操作dataflash时间开销实测(表格中使用CH592F实测)
①注意CH592A这个型号,支持了105℃工作,其code/dataflash都只支持4096字节”块擦“。
②codeflash的擦写速度也可以参考该表格。
③仅做大致参考,未排除温度、逻辑分析仪性能(实测使用1G采样率)等因素的干扰。
字节数 |
擦除时长(ms) |
写入时长(ms) |
读出时长(us) |
1 |
17.14 |
2.2 |
7 |
100 |
17.15 |
2.2 |
48 |
256(1页) |
17.15 |
1.6 |
110 |
300 |
34.28 |
3.7 |
127 |
500 |
34.27 |
3.7 |
207 |
512(2页) |
34.28 |
3.2 |
212 |
513 |
51.45 |
5.3 |
212 |
4096(1块) |
17.13 |
25.5 |
1.65ms |
4096+256(1块+1页) |
34.32 |
27.1 |
1.75ms |
4096+300 |
51.44 |
29.2 |
1.76ms |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具