沁恒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  | 
                    
                
                
            
        
浙公网安备 33010602011771号