大家好
我在写入 NVS...时遇到问题
在我的1个任务开始时(我还有3个其他任务正在运行)、执行所有 NVS 调用、我打开 NVS、检查签名、然后编写一些内容。
确保一切正常(不返回错误)。
我不关闭 NVS、而只是保持打开。
稍后当我尝试写入更新的内容时,我得到错误(-1)....对于相同的操作!???
ARET = NVS_WRITE (nvsHandle、HU_RADIO_ADDR、&RADIOAddr、4、NVS_WRITE_POST_VERIFY);
在2个写入实例之间、NVS 不会被关闭。
HU_REPORT_ADDR = 60 (因此可被4整除)、我还要 写入4个字节(也可被4整除)
我调试了 NVS_WRITE,发现:
函数调用 status = FlashProgram (((uint8_t*) srcBuf、(uint32_t) dstBuf、writeIncrement);
在函数 int_fast16_t NVSCC26XX_WRITE 中(NVS_Handle handle、size_t offset、void *缓冲区、size_t buffersize、uint_fast16_t 标志)
在文件"C:\ti\simplelink_cc13x2_26x2_SDK_5_20_00_52\source\ti\drivers\NVS\NVSCC26XX.c 中
返回的状态为4,这又意味着 FlashProgram()返回了 NVS_STATUS_ERROR (-1)
我的问题...
返回值"4"表示什么?我应该怎么做才能使写入正常运行?
我应该在第一次写入之后做些什么吗? 例如、重置闪存指针、或者我应该将整个区域读入缓冲区、将缓冲区的内容更改为我需要的新值、然后使用 NVS_WRITE_ERASE 将整个区域写回?
提前感谢