OSAL NV區操作

系統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, uint16 len, void *buf )

-- id: NV項的ID

-- ndx: 項中的索引

-- len: 項的長度

-- buf: 項的數據

uint8 osal_nv_write( uint16 id, uint16 ndx, uint16 len, 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       使用的profile ID

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,設備表,綁定表      void NLME_SetDefaultNV( void )

3、  從NV中恢復網絡存儲器項               byte NLME_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       保存管理表地址

發佈了88 篇原創文章 · 獲贊 78 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章