📄 zdobject.s51
字号:
CFI EndCommon cfiCommon1
EXTERN NLME_DeviceJoiningInit
FUNCTION NLME_DeviceJoiningInit,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN ZDSecMgrInit
FUNCTION ZDSecMgrInit,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN NLME_NetworkDiscoveryRequest
FUNCTION NLME_NetworkDiscoveryRequest,0202H
ARGFRAME XSTACK, 23, STACK
EXTERN nwk_ScanJoiningOrphan
FUNCTION nwk_ScanJoiningOrphan,0202H
ARGFRAME XSTACK, 23, STACK
EXTERN NLME_OrphanJoinRequest
FUNCTION NLME_OrphanJoinRequest,0202H
ARGFRAME XSTACK, 23, STACK
EXTERN ZDSecMgrConfig
FUNCTION ZDSecMgrConfig,0202H
ARGFRAME XSTACK, 23, STACK
EXTERN osal_start_timer
FUNCTION osal_start_timer,0202H
ARGFRAME XSTACK, 23, STACK
EXTERN NLME_GetShortAddr
FUNCTION NLME_GetShortAddr,0202H
ARGFRAME XSTACK, 12, STACK
EXTERN NLME_GetExtAddr
FUNCTION NLME_GetExtAddr,0202H
ARGFRAME XSTACK, 12, STACK
EXTERN osal_msg_allocate
FUNCTION osal_msg_allocate,0202H
ARGFRAME XSTACK, 30, STACK
EXTERN osal_msg_send
FUNCTION osal_msg_send,0202H
ARGFRAME XSTACK, 30, STACK
EXTERN osal_mem_alloc
FUNCTION osal_mem_alloc,0202H
ARGFRAME XSTACK, 23, STACK
EXTERN NLME_GetProtocolVersion
FUNCTION NLME_GetProtocolVersion,0202H
ARGFRAME XSTACK, 14, STACK
EXTERN ZDP_NodeDescMsg
FUNCTION ZDP_NodeDescMsg,0202H
ARGFRAME XSTACK, 15, STACK
EXTERN ZDP_GenericRsp
FUNCTION ZDP_GenericRsp,0202H
ARGFRAME XSTACK, 20, STACK
EXTERN ZDP_PowerDescMsg
FUNCTION ZDP_PowerDescMsg,0202H
ARGFRAME XSTACK, 15, STACK
EXTERN afFindSimpleDesc
FUNCTION afFindSimpleDesc,0202H
ARGFRAME XSTACK, 16, STACK
EXTERN ZDP_SimpleDescMsg
FUNCTION ZDP_SimpleDescMsg,0202H
ARGFRAME XSTACK, 20, STACK
EXTERN osal_mem_free
FUNCTION osal_mem_free,0202H
ARGFRAME XSTACK, 30, STACK
EXTERN afNumEndPoints
FUNCTION afNumEndPoints,0202H
ARGFRAME XSTACK, 16, STACK
EXTERN afEndPoints
FUNCTION afEndPoints,0202H
ARGFRAME XSTACK, 16, STACK
EXTERN ZDP_EPRsp
FUNCTION ZDP_EPRsp,0202H
ARGFRAME XSTACK, 37, STACK
EXTERN NLME_IsAddressBroadcast
FUNCTION NLME_IsAddressBroadcast,0202H
ARGFRAME XSTACK, 30, STACK
EXTERN osal_memcpy
FUNCTION osal_memcpy,0202H
ARGFRAME XSTACK, 33, STACK
EXTERN ZDApp_NwkAddrRspCB
FUNCTION ZDApp_NwkAddrRspCB,0202H
ARGFRAME XSTACK, 29, STACK
EXTERN ZDApp_MatchDescRspCB
FUNCTION ZDApp_MatchDescRspCB,0202H
ARGFRAME XSTACK, 14, STACK
EXTERN ZDApp_EndDeviceBindRsp
FUNCTION ZDApp_EndDeviceBindRsp,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN ZDAppNwkAddr
EXTERN ZDO_Config_Node_Descriptor
EXTERN ZDO_Config_Power_Descriptor
EXTERN devState
EXTERN epList
EXTERN zgDefaultChannelList
EXTERN zgDefaultStartingScanDuration
// E:\解决\路由\Components\stack\zdo\ZDObject.c
// 1 /*********************************************************************
// 2 Filename: ZDObject.c
// 3 Revised: $Date: 2007-05-14 17:34:18 -0700 (Mon, 14 May 2007) $
// 4 Revision: $Revision: 14296 $
// 5
// 6 Description:
// 7
// 8 This Zigbee Device Object.
// 9
// 10 Notes:
// 11
// 12 Copyright (c) 2006 by Texas Instruments, Inc.
// 13 All Rights Reserved. Permission to use, reproduce, copy, prepare
// 14 derivative works, modify, distribute, perform, display or sell this
// 15 software and/or its documentation for any purpose is prohibited
// 16 without the express written consent of Texas Instruments, Inc.
// 17 *********************************************************************/
// 18
// 19 /*********************************************************************
// 20 * INCLUDES
// 21 */
// 22 #include "ZComdef.h"
// 23 #include "OSAL.h"
// 24 #include "OSAL_Nv.h"
// 25 #include "rtg.h"
// 26 #include "NLMEDE.h"
// 27 #include "nwk_globals.h"
// 28 #include "APS.h"
// 29 #include "APSMEDE.h"
// 30 #include "AssocList.h"
// 31 #include "BindingTable.h"
// 32 #include "AddrMgr.h"
// 33 #include "AF.h"
// 34 #include "ZDObject.h"
// 35 #include "ZDProfile.h"
// 36 #include "ZDConfig.h"
// 37 #include "ZDCache.h"
// 38 #include "ZDSecMgr.h"
// 39 #include "ZDApp.h"
// 40 #include "nwk_util.h" // NLME_IsAddressBroadcast()
// 41 #include "ZGlobals.h"
// 42
// 43 #if defined( LCD_SUPPORTED )
// 44 #include "OnBoard.h"
// 45 #endif
// 46
// 47 /* HAL */
// 48 #include "hal_lcd.h"
// 49
// 50 /*********************************************************************
// 51 * MACROS
// 52 */
// 53
// 54 /*********************************************************************
// 55 * CONSTANTS
// 56 */
// 57 // NLME Stub Implementations
// 58 #define ZDO_ProcessMgmtPermitJoinTimeout NLME_PermitJoiningTimeout
// 59
// 60 // Status fields used by ZDO_ProcessMgmtRtgReq
// 61 #define ZDO_MGMT_RTG_ENTRY_ACTIVE 0x00
// 62 #define ZDO_MGMT_RTG_ENTRY_DISCOVERY_UNDERWAY 0x01
// 63 #define ZDO_MGMT_RTG_ENTRY_DISCOVERY_FAILED 0x02
// 64 #define ZDO_MGMT_RTG_ENTRY_INACTIVE 0x03
// 65
// 66 /*********************************************************************
// 67 * TYPEDEFS
// 68 */
// 69 #if defined ( REFLECTOR )
// 70 typedef struct
// 71 {
// 72 byte SrcTransSeq;
// 73 zAddrType_t SrcAddr;
// 74 uint16 LocalCoordinator;
// 75 byte epIntf;
// 76 uint16 ProfileID;
// 77 byte numInClusters;
// 78 uint16 *inClusters;
// 79 byte numOutClusters;
// 80 uint16 *outClusters;
// 81 byte SecurityUse;
// 82 byte status;
// 83 } ZDO_EDBind_t;
// 84 #endif // defined ( REFLECTOR )
// 85
// 86 #if defined ( ZDO_COORDINATOR )
// 87 enum
// 88 {
// 89 ZDMATCH_INIT, // Initialized
// 90 ZDMATCH_WAIT_REQ, // Received first request, waiting for second
// 91 ZDMATCH_SENDING_BINDS // Received both requests, sending unbind/binds
// 92 };
// 93
// 94 enum
// 95 {
// 96 ZDMATCH_REASON_START,
// 97 ZDMATCH_REASON_TIMEOUT,
// 98 ZDMATCH_REASON_UNBIND_RSP,
// 99 ZDMATCH_REASON_BIND_RSP
// 100 };
// 101
// 102 enum
// 103 {
// 104 ZDMATCH_SENDING_NOT,
// 105 ZDMATCH_SENDING_UNBIND,
// 106 ZDMATCH_SENDING_BIND
// 107 };
// 108
// 109 typedef struct
// 110 {
// 111 ZDEndDeviceBind_t ed1;
// 112 ZDEndDeviceBind_t ed2;
// 113 uint8 state; // One of the above states
// 114 uint8 sending; // 0 - not sent, 1 - unbind, 2 bind - expecting response
// 115 uint8 transSeq;
// 116 uint8 ed1numMatched;
// 117 uint16 *ed1Matched;
// 118 uint8 ed2numMatched;
// 119 uint16 *ed2Matched;
// 120 } ZDMatchEndDeviceBind_t;
// 121 #endif
// 122
// 123 /*********************************************************************
// 124 * GLOBAL VARIABLES
// 125 */
// 126
// 127 /*********************************************************************
// 128 * EXTERNAL VARIABLES
// 129 */
// 130
// 131 /*********************************************************************
// 132 * EXTERNAL FUNCTIONS
// 133 */
// 134
// 135 /*********************************************************************
// 136 * LOCAL VARIABLES
// 137 */
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 138 static uint16 ZDOBuildBuf[26]; // temp area to build data without allocation
??ZDOBuildBuf:
DS 52
// 139
// 140 #if defined ( REFLECTOR )
// 141 static ZDO_EDBind_t *ZDO_EDBind; // Null when not used
// 142 #endif
// 143
// 144 #if defined ( MANAGED_SCAN )
// 145 uint32 managedScanNextChannel = 0;
// 146 uint32 managedScanChannelMask = 0;
// 147 uint8 managedScanTimesPerChannel = 0;
// 148 #endif
// 149
// 150 #if defined ( ZDO_COORDINATOR )
// 151 ZDMatchEndDeviceBind_t *matchED = (ZDMatchEndDeviceBind_t *)NULL;
// 152 #endif
// 153
// 154 /*********************************************************************
// 155 * LOCAL FUNCTIONS
// 156 */
// 157 static void ZDODeviceSetup( void );
// 158 static uint16 *ZDO_CreateAlignedUINT16List(uint8 num, uint8 *buf);
// 159 #if defined ( MANAGED_SCAN )
// 160 static void ZDOManagedScan_Next( void );
// 161 #endif
// 162 #if defined ( REFLECTOR )
// 163 static void ZDO_RemoveEndDeviceBind( void );
// 164 static void ZDO_SendEDBindRsp( byte TransSeq, zAddrType_t *dstAddr, byte Status, byte secUse );
// 165 #endif
// 166 #if defined ( REFLECTOR ) || defined( ZDO_COORDINATOR )
// 167 static byte ZDO_CompareClusterLists( byte numList1, uint16 *list1,
// 168 byte numList2, uint16 *list2, uint16 *pMatches );
// 169 #endif
// 170 #if defined ( ZDO_COORDINATOR )
// 171 static void ZDO_RemoveMatchMemory( void );
// 172 static uint8 ZDO_CopyMatchInfo( ZDEndDeviceBind_t *destReq, ZDEndDeviceBind_t *srcReq );
// 173 static uint8 ZDMatchSendState( uint8 reason, uint8 status, uint8 TransSeq );
// 174 static void ZDO_EndDeviceBindMatchTimeoutCB( void );
// 175 #endif
// 176
// 177 /*********************************************************************
// 178 * @fn ZDO_Init
// 179 *
// 180 * @brief ZDObject and ZDProfile initialization.
// 181 *
// 182 * @param none
// 183 *
// 184 * @return none
// 185 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 186 void ZDO_Init( void )
ZDO_Init:
CFI Block cfiBlock0 Using cfiCommon0
CFI Function ZDO_Init
// 187 {
FUNCALL ZDO_Init, NLME_DeviceJoiningInit
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
FUNCALL ZDO_Init, ZDSecMgrInit
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
PUSH DPL
CFI DPL0 Frame(CFA_SP, 4)
CFI CFA_SP SP+-4
PUSH DPH
CFI DPH0 Frame(CFA_SP, 5)
CFI CFA_SP SP+-5
; Saved register size: 2
; Auto size: 0
// 188 // Initialize ZD items
// 189 #if defined ( REFLECTOR )
// 190 ZDO_EDBind = NULL;
// 191 #endif
// 192
// 193 // Setup the device - type of device to create.
// 194 ZDODeviceSetup();
; Setup parameters for call to function NLME_DeviceJoiningInit
MOV DPTR,#(NLME_DeviceJoiningInit & 0xffff)
MOV A,#((NLME_DeviceJoiningInit >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 195
// 196 // Initialize ZigBee Device Security Manager
// 197 ZDSecMgrInit();
; Setup parameters for call to function ZDSecMgrInit
MOV DPTR,#(ZDSecMgrInit & 0xffff)
MOV A,#((ZDSecMgrInit >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
CFI EndBlock cfiBlock0
// 198 }
REQUIRE ?Subroutine24
; // Fall through to label ?Subroutine24
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine24:
CFI Block cfiBlock1 Using cfiCommon0
CFI NoFunction
CFI CFA_SP SP+-5
CFI DPL0 Frame(CFA_SP, 4)
CFI DPH0 Frame(CFA_SP, 5)
POP DPH
CFI CFA_SP SP+-4
CFI DPH0 SameValue
POP DPL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -