snv对flash的读写问题
时间:10-02
整理:3721RD
点击:
如果我想掉电仍然能保存一些数据重新上电后可以读出使用的话,我的流程:
1、 在bcomdef.h里添加了item
2、初始化时从flash里用 osal_snv_read()读书赋给全局变量
3、程序中在对该全局变量有修改时,用osal_snv_write()写flash保存。
因为一直没有成功,所以看osal_api.pdfq文档,里面提到在一个item要使用前调用 uint8 osal_nv_item_init( uint16 id, uint16 len, void *buf ); 我的理解是类似注册,但是我在1.4的协议栈里没有找到这个函数。
那么我如何去注册这个新加的item?
在ble协议栈中,要使用SNV,在osal_snv.c中。
/BLE-CC254x-1.4.0/Components/osal/include/osal_snv.h /BLE-CC254x-1.4.0/Components/osal/mcu/cc2540/osal_snv.c |
问题1: osal_snv.c 里也没找到osal_nv_item_init()函数,麻烦再给指点?
问题2: bcomdefine.h里原来有的NV Items 是在哪里初始化的?我也没搜到初始化它们的地方?
问题3: 确定是先 al_nv_item_init() 后才能read和write么?