微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > CC2630中NV的使用?

CC2630中NV的使用?

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

请问:

uint8_t zclport_readNV(uint16_t id, uint16_t subId, uint16_t ndx, uint16_t len,void *buf)

中的subId - NV ID如何理解?

uint8 osal_nv_read( uint16 id, uint16 offset, uint16 len, void *buf );

这两者之间的id,分配规则,App中是独立的?还是延续

// NV Items Reserved for applications (user applications)
// 0x0401 ?0x0FFF

谢谢

在ZComDef.h 中定义了NV的ID , ID 都是协议栈中规定好的

// OSAL NV item IDs
#define ZCD_NV_EXTADDR                    0x0001
#define ZCD_NV_BOOTCOUNTER                0x0002
#define ZCD_NV_STARTUP_OPTION             0x0003
#define ZCD_NV_START_DELAY                0x0004

// NWK Layer NV item IDs
#define ZCD_NV_NIB                        0x0021
#define ZCD_NV_DEVICE_LIST                0x0022
#define ZCD_NV_ADDRMGR                    0x0023
#define ZCD_NV_POLL_RATE                  0x0024
#define ZCD_NV_QUEUED_POLL_RATE           0x0025
#define ZCD_NV_RESPONSE_POLL_RATE         0x0026
#define ZCD_NV_REJOIN_POLL_RATE           0x0027
#define ZCD_NV_DATA_RETRIES               0x0028
#define ZCD_NV_POLL_FAILURE_RETRIES       0x0029
#define ZCD_NV_STACK_PROFILE              0x002A
#define ZCD_NV_INDIRECT_MSG_TIMEOUT       0x002B
#define ZCD_NV_ROUTE_EXPIRY_TIME          0x002C
#define ZCD_NV_EXTENDED_PAN_ID            0x002D
#define ZCD_NV_BCAST_RETRIES              0x002E
#define ZCD_NV_PASSIVE_ACK_TIMEOUT        0x002F
#define ZCD_NV_BCAST_DELIVERY_TIME        0x0030
#define ZCD_NV_NWK_MODE                   0x0031
#define ZCD_NV_CONCENTRATOR_ENABLE        0x0032
#define ZCD_NV_CONCENTRATOR_DISCOVERY     0x0033
#define ZCD_NV_CONCENTRATOR_RADIUS        0x0034
#define ZCD_NV_CONCENTRATOR_RC            0x0036
#define ZCD_NV_NWK_MGR_MODE               0x0037


// APS Layer NV item IDs
#define ZCD_NV_BINDING_TABLE              0x0041
#define ZCD_NV_GROUP_TABLE                0x0042
#define ZCD_NV_APS_FRAME_RETRIES          0x0043
#define ZCD_NV_APS_ACK_WAIT_DURATION      0x0044
#define ZCD_NV_APS_ACK_WAIT_MULTIPLIER    0x0045
#define ZCD_NV_BINDING_TIME               0x0046
#define ZCD_NV_APS_USE_EXT_PANID          0x0047
#define ZCD_NV_APS_USE_INSECURE_JOIN      0x0048
#define ZCD_NV_APSF_WINDOW_SIZE           0x0049     // Window size for fregmentation
#define ZCD_NV_APSF_INTERFRAME_DELAY      0x004A     // The delay between tx blocks when using fragmentaition
#define ZCD_NV_APS_NONMEMBER_RADIUS       0x004B     // Multicast non_member radius
#define ZCD_NV_APS_LINK_KEY_TABLE         0x004C

// Security NV Item IDs
#define ZCD_NV_SECURITY_LEVEL             0x0061
#define ZCD_NV_PRECFGKEY                  0x0062
#define ZCD_NV_PRECFGKEYS_ENABLE          0x0063
#define ZCD_NV_SECURITY_MODE              0x0064
#define ZCD_NV_SECURE_PERMIT_JOIN         0x0065
#define ZCD_NV_lOCAL_CERTIFICATE          0x0069
#define ZCD_NV_STATIC_PRIVATE_KEY         0x006a
#define ZCD_NV_CA_PUBLIC_KEY              0x006b
#define ZCD_NV_STATIC_PUBLIC_KEY          0x006c
#define ZCD_NV_USE_DEFAULT_TCLK           0x006d
#define ZCD_NV_TRUSTCENTER_ADDR           0x006e
#define ZCD_NV_RNG_COUNTER                0x006f
#define ZCD_NV_RANDOM_SEED                0x0070

// ZDO NV Item IDs
#define ZCD_NV_USERDESC                   0x0081
#define ZCD_NV_NWKKEY                     0x0082
#define ZCD_NV_PANID                      0x0083
#define ZCD_NV_CHANLIST                   0x0084
#define ZCD_NV_LEAVE_CTRL                 0x0085
#define ZCD_NV_SCAN_DURATION              0x0086
#define ZCD_NV_LOGICAL_TYPE               0x0087
 
#define ZCD_NV_ZDO_DIRECT_CB              0x008F

// ZCL NV item IDs
#define ZCD_NV_SCENE_TABLE                0x0091

// Non-standard NV item IDs
#define ZCD_NV_SAPI_ENDPOINT              0x00A1

// NV Items Reserved for Trust Center Link Key Table entries
// 0x0101 - 0x01FF
#define ZCD_NV_TCLK_TABLE_START           0x0101
 
// NV Items Reserved for applications (user applications)
// 0x0201 – 0x0FFF

我想问的是:

uint8_t zclport_readNV(uint16_t id, uint16_t subId, uint16_t ndx, uint16_t len,void *buf)

黄色标记的 subid?

void zclGeneral_ScenesInit(void)
{
    uint16_t x;

   for(x = 0; x < ZCL_GEN_MAX_SCENES; x++)
  {
       zclport_initializeNVItem(zclSceneNVID, x,
       sizeof(zclGenSceneNVItem_t), NULL);
  }
}

此处应用中的zclSceneNVID 为 0X0001,这是为什么?

其次subid 为 x ?

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

网站地图

Top