微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 如何在CC2530中自定义NV的具体存储位置

如何在CC2530中自定义NV的具体存储位置

时间:10-02 整理:3721RD 点击:

现在使用CC2530,协议栈使用的zstack-cc2530-2.3.0-1.4.0,自定义了几个NV Item用来存储备份数据,使用时经常出现数据丢失的情况,现在想对一些关键的数据做分页备份存储,这样一个页中的数据损坏了,另一个备份页中的数据还能使用,请指导一下如何确定NV Item使用的具体页的位置,谢谢!

这个协议栈版本太老了,建议把协议栈升级。

#define OSAL_NV_PAGE_SIZE HAL_FLASH_PAGE_SIZE
#define OSAL_NV_PAGES_USED HAL_NV_PAGE_CNT
#define OSAL_NV_PAGE_BEG HAL_NV_PAGE_BEG
#define OSAL_NV_PAGE_END (OSAL_NV_PAGE_BEG + OSAL_NV_PAGES_USED - 1)

这个地方我看过了,是定义全部的NV使用的存储位置,请问能指定NV中item分别指定不同的存储page吗?我在程序中使用osal_nv_write() 和osal_nv_read()对参数进行的存储读写,我看到数据手册中提到了最小的擦除单位是page,我想让备份数据和原始数据处于不同的page当中,这样可以做到吗?请多多指教,谢谢!

请问现在最新的协议栈版本是哪一版?对NV存储的改动大吗?是否可以实现指定不同页存储的功能呢?

Zhifeng Bai

请问现在最新的协议栈版本是哪一版?对NV存储的改动大吗?是否可以实现指定不同页存储的功能呢?

现在最新的Z-Stack Home 1.2.2a,对NV的机制改动不大,但是相对之前的更加完整些。 使用NV功能,不需要关注是否存在具体的哪个位置。

算法自己为操作的。

在使用老协议栈过程中出现过数据损坏的现象,如短地址变化、信道变化等,现在就是想加强数据保护,做多区备份存储,如果不能知道具体的存储位置就没法做多区备份了,只能是简单的做备份存储。请问

1、您有什么好的加强NV数据存储安全的方法吗?

2、另外NV item ID和存储位置没有关系吗?

3、最新的协议栈还可以使用CC2530吗?和原来的协议栈兼容吗?

4、我看最新的协议栈Z-Stack Home 1.2.2a支持CC2590和CC2592,还对CC2591支持吗,CC2591和CC2592有什么差别吗?

谢谢您的支持!

相信你应该了解关于NV存储数据的机制,NV数据存在121-127这几个page中,但是具体的地址在运行过程中是会变化,办法去跟踪具体存储在哪里。

ID和存储位置没有关系。 

最新协议栈可以的,但是你在使用的协议栈可能是tree组网的,现在都是zigbee pro,是mesh网络的。

4,都支持的,CC2592比CC2591设计更方便,稳定性能更加好点。

另外你说的数据损坏,你们产品上对CC2530的供电是否稳定的,还是有较大波动。

这种损坏的情况,一般在什么时候发生,刚上电的时候吗?

1、数据损坏是在现场连续运行一两个月后发现的,不确定是什么时候发生的,有执行Many-To-One的协调器模块,也有路由器模块,出现信道或者短地址变化的情况,也出现过恢复默认设置和重新组网的情况,用示波器测量模块的3.3V电源有微小的波动大概有30mV,应该是射频发送数据造成的。

2、我看NV部分的程序是根据存储数据的大小和当前存储的数据来找存储位置的,如果存储数据固定后,NV存储的位置也应该固定了吧?协议栈中有没有考虑对重要数据如PanID、信道、短地址的重点保护呢?我们在做其他程序的时候都对重点数据做一些保护的

请多指教,谢谢!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top