本文主要介绍了 沁恒蓝牙芯片 CH58x 的flash 分区与数据存储管理,利用随机数作为蓝牙mesh地址,蓝牙mesh采用自组网
个人简介
【沁恒蓝牙mesh】CH58x flash分区与数据存储管理
1️⃣ :初次烧录;
2️⃣ :节点复位之后,读取到flash不为空,用flash中存取的地址
3️⃣ :测试flash中的随机数值,可以看到是小端存储
uint32_t randNum = tmos_rand();
//EEPROM_READ(DATA_FLASH_SIZE - 4, (uint8_t *)&node_addr, 2);
EEPROM_READ(0x3004, (uint8_t *)&node_addr, 2);
APP_DBG("EEPROM_READ___ Mesh network node_addr is : 0x%04x ",node_addr);
if( 0 == node_addr || 0xffff == node_addr){
APP_DBG("node_addr flash is null,need to write data to flash");
randNum = randNum % 1000;
randNum |= 0x7000;
node_addr = randNum;
EEPROM_WRITE(0x3004, (uint8_t *)&node_addr, 2);
APP_DBG("EEPROM_WRITE Mesh network node_addr is : 0x%04x ",node_addr);
}