项目中使用到了snv进行数据存储.
使用中发现对ID为0xE9的数据操作会返回错误.
进一步阅读osal_snv.c的源码和osal_snv_write,osal_snv_read的实现.发现里面有一个变量:failF
查找所有failF使用的地方,发现如果万一某一次出错,failF变为1之后,以后的所有操作就都不能成功了.
除非重新调用initNV(), 难道osal_snv_write,osal_snv_read调用返回NV_OPER_FAILED后都需要重新调用initNV()?
ti最初的设计就是这样的吗?
另外一个问题就是, 为什么0xE9的ID会写失败? 文档中写的是0x80 ~ 0xFE都可以的.
芯片是cc2541 F256
Viki Shi:
比较奇怪,只有ID 0xE9会失败?有最终到这个failF flag是哪里产生的吗?
TI中文支持网


