TI中文支持网
TI专业的中文技术问题搜集分享网站

终端加不进路由

协议栈:3.0.2

芯片:2530

问题:有一个门磁的终端设备,我想让这个设备加入路由当中,路由已经permit join了,但是门磁设备仍然不能加入路由,求解,抓包文件附上,我在1549行开启了路由的permit join ,谢谢。8月30日16_09_44_门磁无法加入路由.rar

Alvin Chen:

你的ZC之前是不是加入过其他节点。这是正常情况,你目前只有UPDATE DEVICE 缺少了transport key。可以把所有设备Erase 之后再试试看。

user6069081:

回复 Alvin Chen:

我这个门磁已经加过协调器了,然后的门磁用按键触发leave然后SystemResetSoft,然后重加路由,加不进去。难道leave不能触发协调器在它的关联表里面删除这个设备吗。

Alvin Chen:

回复 user6069081:

了解了,请打上下面的补丁:
processors.wiki.ti.com/…/Zigbee_Known_Issues_and_Proposed_Fixes

Alvin Chen:

回复 Alvin Chen:

还有下面的补丁:

ZDSecMgrUpdateDeviceInd in zd_sec_mgr.c:

#if (ZG_BUILD_COORDINATOR_TYPE)uint8found;uint16 keyNvIndex, index;APSME_TCLKDevEntry_t TCLKDevEntry;keyNvIndex = APSME_SearchTCLinkKeyEntry(device.extAddr,&found, &TCLKDevEntry);//If found and it was verified, then allow it to join in a fresh state by erasing the key entryif((found == TRUE) && (TCLKDevEntry.keyAttributes == ZG_VERIFIED_KEY)){TCLKDevEntry.keyAttributes = ZG_DEFAULT_KEY;//Increase the shift by one. Validate the maximum shift of the seed which is 15TCLKDevEntry.SeedShift_IcIndex++;TCLKDevEntry.SeedShift_IcIndex &= 0x0F;TCLKDevEntry.rxFrmCntr = 0;TCLKDevEntry.txFrmCntr = 0;index = keyNvIndex - ZCD_NV_TCLK_TABLE_START;TCLinkKeyFrmCntr[index].rxFrmCntr = 0;TCLinkKeyFrmCntr[index].txFrmCntr = 0;//Update the entryosal_nv_write(keyNvIndex,0,sizeof(APSME_TCLKDevEntry_t), &TCLKDevEntry );}bdb_TCAddJoiningDevice(device.parentAddr,device.extAddr);
#endif}ZDSecMgrDeviceJoin( &device );}else{// remove the TCLK NV entry for a device which has left the network
#if (ZG_BUILD_COORDINATOR_TYPE)uint8found;uint16 keyNvIndex, index;APSME_TCLKDevEntry_t TCLKDevEntry;keyNvIndex = APSME_SearchTCLinkKeyEntry(device.extAddr,&found, &TCLKDevEntry);//If found and it was verified, erase the key entryif((found == TRUE) && (TCLKDevEntry.keyAttributes == ZG_VERIFIED_KEY)){MAP_osal_memset(&TCLKDevEntry,0,sizeof(APSME_TCLKDevEntry_t));TCLKDevEntry.keyAttributes = ZG_DEFAULT_KEY;index = keyNvIndex - ZCD_NV_TCLK_TABLE_START;TCLinkKeyFrmCntr[index].rxFrmCntr = 0;TCLinkKeyFrmCntr[index].txFrmCntr = 0;//Update the entryosal_nv_write(keyNvIndex,0,sizeof(APSME_TCLKDevEntry_t), &TCLKDevEntry );}
#endif}
}
user6069081:

回复 Alvin Chen:

你好,我按照你说的方法加入了代码,然后编译出现Error[e46]: Undefined external "MAP_osal_memset::?relay" referred in ZDSecMgr,全局查找没有找到MAP_osal_memset这个函数,不知道是否为void *osal_memset( void *dest, uint8 value, int len );这个函数呢,谢谢。

Alvin Chen:

回复 user6069081:

是的

赞(0)
未经允许不得转载:TI中文支持网 » 终端加不进路由
分享到: 更多 (0)