我想在sensor/collector例程中来保存一个标志位,查看了相关内容可以存在nv中。
1.查看到在这两个例程中,有这部分代码,初始化了相关nv操作。
NVOCOP_loadApiPtrs(&Main_user1Cfg.nvFps);
#else
NVOCTP_loadApiPtrs(&Main_user1Cfg.nvFps);
#endif
if(Main_user1Cfg.nvFps.initNV)
{
Main_user1Cfg.nvFps.initNV( NULL);
}
我参照了里面读写部分,写了如下部分来读写标志位flag
NVINTF_nvFuncts_t *pNV = &Main_user1Cfg.nvFps;
NVINTF_itemID_t id;
/* Setup NV ID */
id.systemID = 7;
id.itemID = 0x0001;
id.subID = 0;
/* Read flag Information from NV */
pNV->readItem(id, 0, sizeof(uint8_t), flag );
pNV->writeItem(id, sizeof(uint8_t), flag );
运行后发现读写都正常,按下reset重启后也能读到上次写入的数据。但是掉电重启后,读取flag的数据就不是上次写入的数据。再进行写入读取的话又是正常,能否指导下看下我这样操作nv是否正确?
2.查看了sdk中的例程,也有nv部分的例程nvsexternal和nvsinternal,查看后发现这里面的nv操作跟sensor/collector中的nv操作(调用的函数,配置的方式等..)请问这两者的nv操作,操作的是不同nv吗?