关于CH32V208在SNV方面的使用问题

在MCU.C中有一段配置代码:


#if(defined(BLE_SNV)) && (BLE_SNV==TRUE)

    cfg.SNVAddr = (uint32_t)BLE_SNV_ADDR;

    cfg.SNVNum = (uint32_t)BLE_SNV_NUM;

    cfg.readFlashCB = Lib_Read_Flash;  // Lib_Write_Flash(uint32_t addr, uint32_t num, uint32_t *pBuf)

    cfg.writeFlashCB = Lib_Write_Flash; // Lib_Read_Flash(uint32_t addr, uint32_t num, uint32_t *pBuf)

#endif


在wchble_rom.h中有定义:

tmos_snv_read((  bStatus_t  (*)  ( tmosSnvId_t id, tmosSnvLen_t len, void *pBuf))


一个是直接读写FLASH地址,一个是通过SnvId读, 请问他们操作的是相同的区域吗? 这段区域的数据内容是什么,怎么组织的?

在我的系统中,需要读取及保存某些运行过程中的参数,是否可以使用这个区域?



操作的是相同的区域,存放的是绑定的信息,一般可以调用来获取绑定设备的mac。

tmos_snv_read( mainRecordNvID(0), 6, buf);
for(uint8_t i=0;i<6;i++){
    PRINT("%02X ",buf[i]);
}
PRINT("\r\n");

如果用户需要存放一些自定义掉电保存的数据,是不可以使用这个区域的,需要避开这个区域。


只有登录才能回复,可以选择微信账号登录