寒冷外套

文章
6
资源
0
加入时间
3年0月20天

EFR32BG蓝牙进行空中升级(OTA)时会把NVM擦掉

问题描述:使用emdrv/nvm保存数据,当使用IAR编译器时没有问题,但是使用GNU编译器,进行空中升级(OTA)时会把NVM擦掉。经分析程序和调试观察,发现存放NVM数据的变量——nvmData,在使用IAR编译器时和使用GNU编译器时分配的地址不一样。这个变量的定义如下:#define SL_ATTRIBUTE_ALIGN(X) attribute ((aligned(X)))#ifdef ICCARMstatic const uint8_t nvmData[NVM_PAGE_SIZE *