zigbee OSAL NV操作

来源:互联网 发布:知敬畏什么意思 编辑:程序博客网 时间:2024/06/10 21:01


系统NV区:
初始化nv数据项    osal_nv_item_init()

读取nv数据项       osal_nv_read()

写入nv数据项       osal_nv_write()

在使用osal_nv_read()或osal_nv_write()之前必须调用

osal_nv_item_init()。

函数原型:

uint8 osal_nv_item_init( uint16 id, uint16 len, void*buf )

--id: NV项的ID

--len: 项的长度

-- buf: 初始化项的数据,如果没有设置为NULL

uint8 osal_nv_read( uint16 id, uint16 ndx, uint16len, void *buf )

-- id: NV项的ID

-- ndx: 项中的索引

-- len: 项的长度

-- buf: 项的数据

uint8 osal_nv_write( uint16 id, uint16 ndx, uint16len, void *buf )

-- id: NV项的ID

-- ndx: 项中的索引

-- len: 项的长度

-- buf: 项的数据

0x0000                         保留

0x0001-0x0020            OSAL

0x0021-0x0040            NWK

0x0041-0x0060            APS

0x0061-0x0080            Sec

0x0081-0x00A0            ZDO

0x00A1-0x0200            保留

0x0201-0x0FFF            APP

0x1000-0xFFFF            保留

系统已定义NV的项:
// osal 的项

ZCD_NV_EXTADDR                   0x0001           64位扩展地址

ZCD_NV_BOOTCOUNTER          0x0002          boot计数器

ZCD_NV_STARTUP_OPTION      0x0003          开始的控制选

ZCD_STARTOPT_DEFAULT_CONFIG_STATE)

(ZCD_STARTOPT_DEFAULT_NETWORK_STATE)

ZCD_NV_START_DELAY             0x0004           开始延迟时间

// NWK层的项

ZCD_NV_NIB                            0x0021

ZCD_NV_DEVICE_LIST               0x0022

ZCD_NV_ADDRMGR                   0x0023

ZCD_NV_POLL_RATE                  0x0024            轮询率

ZCD_NV_QUEUED_POLL_RATE         0x0025       队列轮询率

ZCD_NV_RESPONSE_POLL_RATE     0x0026        响应轮询率

ZCD_NV_REJOIN_POLL_RATE           0x0027       重新连接轮询

ZCD_NV_DATA_RETRIES                 0x0028        传输数据重试次数

ZCD_NV_POLL_FAILURE_RETRIES    0x0029       轮询失败重试次数

ZCD_NV_STACK_PROFILE               0x002A        使用的profileID

ZCD_NV_INDIRECT_MSG_TIMEOUT    0x002B      默认间接消息举手超时

ZCD_NV_ROUTE_EXPIRY_TIME     0x002C           路由的有效期

ZCD_NV_EXTENDED_PAN_ID         0x002D           扩展PAN ID

ZCD_NV_BCAST_RETRIES              0x002E            广播参数

ZCD_NV_PASSIVE_ACK_TIMEOUT    0x002F          广播参数

ZCD_NV_BCAST_DELIVERY_TIME     0x0030          广播参数

ZCD_NV_NWK_MODE                    0x0031            网络模式

ZCD_NV_CONCENTRATOR_ENABLE      0x0032          多对一的value

ZCD_NV_CONCENTRATOR_DISCOVERY   0x0033       多对一的value

ZCD_NV_CONCENTRATOR_RADIUS       0x0034         多对一的value

ZCD_NV_MAX_SOURCE_ROUTE          0x0035           多对一的value

// APS层的项

ZCD_NV_BINDING_TABLE              0x0041              绑定表

ZCD_NV_GROUP_TABLE                0x0042              组表

ZCD_NV_APS_FRAME_RETRIES          0x0043          传输失败允许传输的最大次数

ZCD_NV_APS_ACK_WAIT_DURATION      0x0044     这个数被用做轮询设备

ZCD_NV_APS_ACK_WAIT_MULTIPLIER    0x0045     这个数被用做非轮询设备

ZCD_NV_BINDING_TIME               0x0046              终端设备绑定时间数

// 安全层的项

ZCD_NV_SECURITY_LEVEL          0x0061            安全等级

ZCD_NV_PRECFGKEY                  0x0062            预先配置的安全密钥

ZCD_NV_PRECFGKEYS_ENABLE    0x0063          密钥配置为整个网络还是协调器

//ZDO层的项

ZCD_NV_USERDESC                 0x0081

ZCD_NV_NWKKEY                    0x0082        网络密钥

ZCD_NV_PANID                       0x0083        PAN ID

ZCD_NV_CHANLIST                  0x0084        默认的信道列表

ZCD_NV_LEAVE_CTRL              0x0085        控制等级

ZCD_NV_SCAN_DURATION        0x0086       默认开始扫描的期限

ZCD_NV_LOGICAL_TYPE            0x0087       逻辑设备类

// ZCL 层的项

ZCD_NV_SCENE_TABLE              0x0091

// Non-standard NV item IDs

ZCD_NV_SAPI_ENDPOINT           0x00A1

用户自定义NV项:
为用户保留的NV项目号从                0x0201 --- 0x0FFF

原语操作NV:
1、初始化                                        byte
NLME_InitNV( void )

2、设置默认的NIB,设备表,绑定表       voidNLME_SetDefaultNV( void )

3、从NV中恢复网络存储器项                byteNLME_RestoreFromNV( void )

4、把NIB写入到NV中                          void NLME_UpdateNV(

byte enables )

--NWK_NV_NIB_ENABLE                    0x01       保存网络NIB

--NWK_NV_DEVICELIST_ENABLE       0x02       保存设备列表

--NWK_NV_BINDING_ENABLE            0x04       保存绑定表

--NWK_NV_ADDRMGR_ENABLE          0x08       保存管理表地址

0 0