TI技术大神,请教一下,我用SNV写入数据,是否会造成程序部分丢失?要如何处理SNV写入数据?是否有相关例程?
我发现启动了SNV导致要重新烧录程序后芯片才正常工作。谢谢!
da qin zheng sheng:
操作flash首先需要保证电源电压可靠的。
user4032685:
回复 da qin zheng sheng:
电源是稳定的,外接电源,并用用LDO转3.3V供电。看到论坛上也有其它帖子说存在这个问题,但是都没有最终的结论,到底问题出在哪里。就是是个例的异常还是1.4.2中协议栈中的漏洞?
YiKai Chen:
回复 user4032685:
請說明一下你是怎樣使用CC2541SNV写入?
user4032685:
回复 YiKai Chen:
char sBuf[6] = {0};
//gValidValue是在改变的数值,改变的频率不高,平均一天改变几次。
sBuf[0] = gValidValue;
sBuf[1] = (gValidValue>>8);
sBuf[2] = (gValidValue>>16);
sBuf[3] = (gValidValue>>24);
osal_snv_write(BLE_NVID_CUST_START,4,sBuf);
//直接调用osal_snv_write写入
YiKai Chen:
回复 user4032685:
試試osal_snv_write写入前作個電壓偵測,要是電壓低於2.3V建議不要作写入
user4032685:
回复 YiKai Chen:
OK,我试一下,这个发生的概率太低了,很难复现。只要协议栈没有问题就好。谢谢!
Viki Shi:
正确操作的话不会丢好似数据的,你出现数据丢失的情况的吗?
可以参考OSAL API中的11. Simple Non-Volatile Memory API一节