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 *