13081 lines
617 KiB
Plaintext
13081 lines
617 KiB
Plaintext
###############################################################################
|
||
#
|
||
# IAR C/C++ Compiler V10.30.1.6000 for 8051 23/Aug/2019 12:13:12
|
||
# Copyright 2004-2018 IAR Systems AB.
|
||
# PC-locked license - IAR Embedded Workbench for 8051
|
||
#
|
||
# Core = plain
|
||
# Code model = banked
|
||
# Data model = large
|
||
# Calling convention = xdata reentrant
|
||
# Constant location = data_rom
|
||
# Dptr setup = 1,16
|
||
#
|
||
# Source file =
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Components\stack\zdo\ZDObject.c
|
||
# Command line =
|
||
# -f C:\Users\VULCAN\AppData\Local\Temp\EWE12E.tmp
|
||
# (E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Components\stack\zdo\ZDObject.c
|
||
# -D ZIGBEEPRO -D ZTOOL_P1 -D MT_TASK -D MT_SYS_FUNC -D MT_ZDO_FUNC -D
|
||
# LCD_SUPPORTED=DEBUG -D SAPP_ZSTACK -lC
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\RouterEB\List
|
||
# -lA
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\RouterEB\List
|
||
# --diag_suppress Pe001,Pa010 -o
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\RouterEB\Obj
|
||
# -e --debug --core=plain --dptr=16,1 --data_model=large
|
||
# --code_model=banked --calling_convention=xdata_reentrant
|
||
# --place_constants=data_rom --nr_virtual_regs 8 -f
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\zstack\Tools\CC2530DB\f8wRouter.cfg
|
||
# (-DCPU32MHZ -DROOT=__near_func -DMAC_CFG_APP_PENDING_QUEUE=TRUE
|
||
# -DMAC_CFG_TX_DATA_MAX=5 -DMAC_CFG_TX_MAX=8 -DMAC_CFG_RX_MAX=5
|
||
# -DRTR_NWK) -f
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\zstack\Tools\CC2530DB\f8wConfig.cfg
|
||
# (-DZIGBEEPRO -DSECURE=0 -DZG_SECURE_DYNAMIC=0 -DREFLECTOR
|
||
# -DDEFAULT_CHANLIST=0x00800000 -DZDAPP_CONFIG_PAN_ID=0x0057
|
||
# -DNWK_START_DELAY=100 -DEXTENDED_JOINING_RANDOM_MASK=0x007F
|
||
# -DBEACON_REQUEST_DELAY=100 -DBEACON_REQ_DELAY_MASK=0x00FF
|
||
# -DLINK_STATUS_JITTER_MASK=0x007F -DROUTE_EXPIRY_TIME=30
|
||
# -DAPSC_ACK_WAIT_DURATION_POLLED=3000 -DNWK_INDIRECT_MSG_TIMEOUT=7
|
||
# -DMAX_RREQ_ENTRIES=8 -DAPSC_MAX_FRAME_RETRIES=3
|
||
# -DNWK_MAX_DATA_RETRIES=2 -DMAX_POLL_FAILURE_RETRIES=2 -DMAX_BCAST=9
|
||
# -DAPS_MAX_GROUPS=16 -DMAX_RTG_ENTRIES=40 -DNWK_MAX_BINDING_ENTRIES=4
|
||
# -DMAX_BINDING_CLUSTER_IDS=4 "-DDEFAULT_KEY={0x01, 0x03, 0x05, 0x07,
|
||
# 0x09, 0x0B, 0x0D, 0x0F, 0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C,
|
||
# 0x0D}" -DMAC_MAX_FRAME_SIZE=116 -DZDNWKMGR_MIN_TRANSMISSIONS=20
|
||
# "-DCONST=const __code" -DGENERIC=__generic -DRFD_RCVC_ALWAYS_ON=FALSE
|
||
# -DPOLL_RATE=1000 -DQUEUED_POLL_RATE=100 -DRESPONSE_POLL_RATE=100
|
||
# -DREJOIN_POLL_RATE=440) -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\Source\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\zstack\ZMain\TI2530DB\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\hal\include\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\hal\target\CC2530EB\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mac\include\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mac\high_level\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mac\low_level\srf04\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mac\low_level\srf04\single_chip\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\mt\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\osal\include\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\services\saddr\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\services\sdata\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\af\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\nwk\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\sapi\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\sec\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\sys\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\stack\zdo\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\zmac\
|
||
# -I
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\..\..\Components\zmac\f8w\
|
||
# -Ohz --require_prototypes --no_code_motion)
|
||
# Locale = Chinese (Simplified)_CHN.936
|
||
# List file =
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\RouterEB\List\ZDObject.lst
|
||
# Object file =
|
||
# E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\RouterEB\Obj\ZDObject.r51
|
||
#
|
||
###############################################################################
|
||
|
||
E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Components\stack\zdo\ZDObject.c
|
||
1 /**************************************************************************************************
|
||
2 Filename: ZDObject.c
|
||
3 Revised: $Date: 2011-07-13 10:55:53 -0700 (Wed, 13 Jul 2011) $
|
||
4 Revision: $Revision: 26766 $
|
||
5
|
||
6 Description: This is the Zigbee Device Object.
|
||
7
|
||
8
|
||
9 Copyright 2004-2011 Texas Instruments Incorporated. All rights reserved.
|
||
10
|
||
11 IMPORTANT: Your use of this Software is limited to those specific rights
|
||
12 granted under the terms of a software license agreement between the user
|
||
13 who downloaded the software, his/her employer (which must be your employer)
|
||
14 and Texas Instruments Incorporated (the "License"). You may not use this
|
||
15 Software unless you agree to abide by the terms of the License. The License
|
||
16 limits your use, and you acknowledge, that the Software may not be modified,
|
||
17 copied or distributed unless embedded on a Texas Instruments microcontroller
|
||
18 or used solely and exclusively in conjunction with a Texas Instruments radio
|
||
19 frequency transceiver, which is integrated into your product. Other than for
|
||
20 the foregoing purpose, you may not use, reproduce, copy, prepare derivative
|
||
21 works of, modify, distribute, perform, display or sell this Software and/or
|
||
22 its documentation for any purpose.
|
||
23
|
||
24 YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE
|
||
25 PROVIDED 揂S IS<49> WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
|
||
26 INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE,
|
||
27 NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL
|
||
28 TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT,
|
||
29 NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER
|
||
30 LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES
|
||
31 INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE
|
||
32 OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT
|
||
33 OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
|
||
34 (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
|
||
35
|
||
36 Should you have any questions regarding your right to use this Software,
|
||
37 contact Texas Instruments Incorporated at www.TI.com.
|
||
38 **************************************************************************************************/
|
||
39
|
||
40 /*********************************************************************
|
||
41 * INCLUDES
|
||
42 */
|
||
43 #include "ZComdef.h"
|
||
44 #include "OSAL.h"
|
||
45 #include "OSAL_Nv.h"
|
||
46 #include "rtg.h"
|
||
47 #include "NLMEDE.h"
|
||
48 #include "nwk_globals.h"
|
||
49 #include "APS.h"
|
||
50 #include "APSMEDE.h"
|
||
51 #include "AssocList.h"
|
||
52 #include "BindingTable.h"
|
||
53 #include "AddrMgr.h"
|
||
54 #include "AF.h"
|
||
55 #include "ZDObject.h"
|
||
56 #include "ZDProfile.h"
|
||
57 #include "ZDConfig.h"
|
||
58 #include "ZDSecMgr.h"
|
||
59 #include "ZDApp.h"
|
||
60 #include "nwk_util.h" // NLME_IsAddressBroadcast()
|
||
61 #include "ZGlobals.h"
|
||
62 #if defined MT_ZDO_CB_FUNC
|
||
63 #include "MT.h"
|
||
64 #endif
|
||
65
|
||
66 #if defined( LCD_SUPPORTED )
|
||
67 #include "OnBoard.h"
|
||
68 #endif
|
||
69
|
||
70 /* HAL */
|
||
71 #include "hal_lcd.h"
|
||
72
|
||
73 /*********************************************************************
|
||
74 * MACROS
|
||
75 */
|
||
76
|
||
77 /*********************************************************************
|
||
78 * CONSTANTS
|
||
79 */
|
||
80 // NLME Stub Implementations
|
||
81 #define ZDO_ProcessMgmtPermitJoinTimeout NLME_PermitJoiningTimeout
|
||
82
|
||
83 // Status fields used by ZDO_ProcessMgmtRtgReq
|
||
84 #define ZDO_MGMT_RTG_ENTRY_ACTIVE 0x00
|
||
85 #define ZDO_MGMT_RTG_ENTRY_DISCOVERY_UNDERWAY 0x01
|
||
86 #define ZDO_MGMT_RTG_ENTRY_DISCOVERY_FAILED 0x02
|
||
87 #define ZDO_MGMT_RTG_ENTRY_INACTIVE 0x03
|
||
88
|
||
89 /*********************************************************************
|
||
90 * TYPEDEFS
|
||
91 */
|
||
92 #if defined ( REFLECTOR )
|
||
93 typedef struct
|
||
94 {
|
||
95 byte SrcTransSeq;
|
||
96 zAddrType_t SrcAddr;
|
||
97 uint16 LocalCoordinator;
|
||
98 byte epIntf;
|
||
99 uint16 ProfileID;
|
||
100 byte numInClusters;
|
||
101 uint16 *inClusters;
|
||
102 byte numOutClusters;
|
||
103 uint16 *outClusters;
|
||
104 byte SecurityUse;
|
||
105 byte status;
|
||
106 } ZDO_EDBind_t;
|
||
107 #endif // defined ( REFLECTOR )
|
||
108
|
||
109 enum
|
||
110 {
|
||
111 ZDMATCH_INIT, // Initialized
|
||
112 ZDMATCH_WAIT_REQ, // Received first request, waiting for second
|
||
113 ZDMATCH_SENDING_BINDS // Received both requests, sending unbind/binds
|
||
114 };
|
||
115
|
||
116 enum
|
||
117 {
|
||
118 ZDMATCH_SENDING_NOT,
|
||
119 ZDMATCH_SENDING_UNBIND,
|
||
120 ZDMATCH_SENDING_BIND
|
||
121 };
|
||
122
|
||
123 /*********************************************************************
|
||
124 * GLOBAL VARIABLES
|
||
125 */
|
||
126
|
||
127 /*********************************************************************
|
||
128 * EXTERNAL VARIABLES
|
||
129 */
|
||
130
|
||
131 /*********************************************************************
|
||
132 * EXTERNAL FUNCTIONS
|
||
133 */
|
||
134
|
||
135 /*********************************************************************
|
||
136 * LOCAL VARIABLES
|
||
137 */
|
||
|
||
\ In segment XDATA_Z, align 1, keep-with-next
|
||
138 static uint16 ZDOBuildBuf[26]; // temp area to build data without allocation
|
||
\ ZDOBuildBuf:
|
||
\ 000000 DS 52
|
||
\ 000034 REQUIRE __INIT_XDATA_Z
|
||
139
|
||
140 #if defined ( REFLECTOR )
|
||
|
||
\ In segment XDATA_Z, align 1, keep-with-next
|
||
141 static ZDO_EDBind_t *ZDO_EDBind; // Null when not used
|
||
\ ZDO_EDBind:
|
||
\ 000000 DS 2
|
||
\ 000002 REQUIRE __INIT_XDATA_Z
|
||
142 #endif
|
||
143
|
||
144 #if defined ( MANAGED_SCAN )
|
||
145 uint32 managedScanNextChannel = 0;
|
||
146 uint32 managedScanChannelMask = 0;
|
||
147 uint8 managedScanTimesPerChannel = 0;
|
||
148 #endif
|
||
149
|
||
|
||
\ In segment XDATA_Z, align 1, keep-with-next
|
||
150 ZDMatchEndDeviceBind_t *matchED = (ZDMatchEndDeviceBind_t *)NULL;
|
||
\ matchED:
|
||
\ 000000 DS 2
|
||
\ 000002 REQUIRE __INIT_XDATA_Z
|
||
151
|
||
|
||
\ In segment XDATA_Z, align 1, keep-with-next
|
||
152 uint32 apsChannelMask = 0;
|
||
\ apsChannelMask:
|
||
\ 000000 DS 4
|
||
\ 000004 REQUIRE __INIT_XDATA_Z
|
||
153
|
||
154 /*********************************************************************
|
||
155 * LOCAL FUNCTIONS
|
||
156 */
|
||
157 static void ZDODeviceSetup( void );
|
||
158 #if defined ( MANAGED_SCAN )
|
||
159 static void ZDOManagedScan_Next( void );
|
||
160 #endif
|
||
161 #if defined ( REFLECTOR )
|
||
162 static void ZDO_RemoveEndDeviceBind( void );
|
||
163 static void ZDO_SendEDBindRsp( byte TransSeq, zAddrType_t *dstAddr, byte Status, byte secUse );
|
||
164 #endif
|
||
165 static byte ZDO_CompareClusterLists( byte numList1, uint16 *list1,
|
||
166 byte numList2, uint16 *list2, uint16 *pMatches );
|
||
167 static void ZDO_RemoveMatchMemory( void );
|
||
168 static uint8 ZDO_CopyMatchInfo( ZDEndDeviceBind_t *destReq, ZDEndDeviceBind_t *srcReq );
|
||
169 static void ZDO_EndDeviceBindMatchTimeoutCB( void );
|
||
170 uint8 *ZDO_ConvertOTAClusters( uint8 cnt, uint8 *inBuf, uint16 *outList );
|
||
171 static void zdoSendStateChangeMsg(uint8 state, uint8 taskId);
|
||
172
|
||
173 /*********************************************************************
|
||
174 * @fn ZDO_Init
|
||
175 *
|
||
176 * @brief ZDObject and ZDProfile initialization.
|
||
177 *
|
||
178 * @param none
|
||
179 *
|
||
180 * @return none
|
||
181 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
182 void ZDO_Init( void )
|
||
\ ZDO_Init:
|
||
183 {
|
||
\ 000000 C082 PUSH DPL
|
||
\ 000002 C083 PUSH DPH
|
||
\ 000004 ; Saved register size: 2
|
||
\ 000004 ; Auto size: 0
|
||
184 // Initialize ZD items
|
||
185 #if defined ( REFLECTOR )
|
||
186 ZDO_EDBind = NULL;
|
||
\ 000004 90.... MOV DPTR,#ZDO_EDBind
|
||
\ 000007 E4 CLR A
|
||
\ 000008 F0 MOVX @DPTR,A
|
||
\ 000009 A3 INC DPTR
|
||
\ 00000A F0 MOVX @DPTR,A
|
||
187 #endif
|
||
188
|
||
189 // Initialize default ZDO_UseExtendedPANID to the APS one.
|
||
190 osal_cpyExtAddr( ZDO_UseExtendedPANID, AIB_apsUseExtendedPANID );
|
||
\ 00000B ; Setup parameters for call to function sAddrExtCpy
|
||
\ 00000B 7C.. MOV R4,#AIB_apsUseExtendedPANID & 0xff
|
||
\ 00000D 7D.. MOV R5,#(AIB_apsUseExtendedPANID >> 8) & 0xff
|
||
\ 00000F 7A.. MOV R2,#ZDO_UseExtendedPANID & 0xff
|
||
\ 000011 7B.. MOV R3,#(ZDO_UseExtendedPANID >> 8) & 0xff
|
||
\ 000013 12.... LCALL `??sAddrExtCpy::?relay`; Banked call to: sAddrExtCpy
|
||
191
|
||
192 // Setup the device - type of device to create.
|
||
193 ZDODeviceSetup();
|
||
\ 000016 90.... MOV DPTR,#zgDeviceLogicalType
|
||
\ 000019 E0 MOVX A,@DPTR
|
||
\ 00001A 7004 JNZ ??ZDO_Init_0
|
||
\ 00001C 7900 MOV R1,#0x0
|
||
\ 00001E 8002 SJMP ??ZDO_Init_1
|
||
\ ??ZDO_Init_0:
|
||
\ 000020 7901 MOV R1,#0x1
|
||
\ ??ZDO_Init_1:
|
||
\ 000022 ; Setup parameters for call to function APS_ReflectorInit
|
||
\ 000022 12.... LCALL `??APS_ReflectorInit::?relay`; Banked call to: APS_ReflectorInit
|
||
\ 000025 ; Setup parameters for call to function NLME_DeviceJoiningInit
|
||
\ 000025 12.... LCALL `??NLME_DeviceJoiningInit::?relay`; Banked call to: NLME_DeviceJoiningInit
|
||
194 }
|
||
\ 000028 02.... LJMP ?Subroutine0 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine0:
|
||
\ 000000 D083 POP DPH
|
||
\ 000002 D082 POP DPL
|
||
\ 000004 02.... LJMP ?BRET
|
||
195
|
||
196 #if defined ( MANAGED_SCAN )
|
||
197 /*********************************************************************
|
||
198 * @fn ZDOManagedScan_Next()
|
||
199 *
|
||
200 * @brief Setup a managed scan.
|
||
201 *
|
||
202 * @param none
|
||
203 *
|
||
204 * @return none
|
||
205 */
|
||
206 static void ZDOManagedScan_Next( void )
|
||
207 {
|
||
208 // Is it the first time
|
||
209 if ( managedScanNextChannel == 0 && managedScanTimesPerChannel == 0 )
|
||
210 {
|
||
211 // Setup the defaults
|
||
212 managedScanNextChannel = 1;
|
||
213
|
||
214 while( managedScanNextChannel && (zgDefaultChannelList & managedScanNextChannel) == 0 )
|
||
215 managedScanNextChannel <<= 1;
|
||
216
|
||
217 managedScanChannelMask = managedScanNextChannel;
|
||
218 managedScanTimesPerChannel = MANAGEDSCAN_TIMES_PRE_CHANNEL;
|
||
219 }
|
||
220 else
|
||
221 {
|
||
222 // Do we need to go to the next channel
|
||
223 if ( managedScanTimesPerChannel == 0 )
|
||
224 {
|
||
225 // Find next active channel
|
||
226 managedScanChannelMask = managedScanNextChannel;
|
||
227 managedScanTimesPerChannel = MANAGEDSCAN_TIMES_PRE_CHANNEL;
|
||
228 }
|
||
229 else
|
||
230 {
|
||
231 managedScanTimesPerChannel--;
|
||
232
|
||
233 if ( managedScanTimesPerChannel == 0 )
|
||
234 {
|
||
235 managedScanNextChannel <<= 1;
|
||
236 while( managedScanNextChannel && (zgDefaultChannelList & managedScanNextChannel) == 0 )
|
||
237 managedScanNextChannel <<= 1;
|
||
238
|
||
239 if ( managedScanNextChannel == 0 )
|
||
240 zdoDiscCounter = NUM_DISC_ATTEMPTS + 1; // Stop
|
||
241 }
|
||
242 }
|
||
243 }
|
||
244 }
|
||
245 #endif // MANAGED_SCAN
|
||
246
|
||
247 /*********************************************************************
|
||
248 * @fn ZDODeviceSetup()
|
||
249 *
|
||
250 * @brief Call set functions depending on the type of device compiled.
|
||
251 *
|
||
252 * @param none
|
||
253 *
|
||
254 * @return none
|
||
255 */
|
||
256 static void ZDODeviceSetup( void )
|
||
257 {
|
||
258 if ( ZG_BUILD_COORDINATOR_TYPE )
|
||
259 {
|
||
260 NLME_CoordinatorInit();
|
||
261 }
|
||
262
|
||
263 #if defined ( REFLECTOR )
|
||
264 APS_ReflectorInit( (ZG_DEVICE_COORDINATOR_TYPE) ? APS_REFLECTOR_PUBLIC : APS_REFLECTOR_PRIVATE );
|
||
265 #endif
|
||
266
|
||
267 if ( ZG_BUILD_JOINING_TYPE )
|
||
268 {
|
||
269 NLME_DeviceJoiningInit();
|
||
270 }
|
||
271 }
|
||
272
|
||
273 /*********************************************************************
|
||
274 * @fn ZDO_StartDevice
|
||
275 *
|
||
276 * @brief This function starts a device in a network.
|
||
277 *
|
||
278 * @param logicalType - Device type to start
|
||
279 * startMode - indicates mode of device startup
|
||
280 * beaconOrder - indicates time betwen beacons
|
||
281 * superframeOrder - indicates length of active superframe
|
||
282 *
|
||
283 * @return none
|
||
284 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
285 void ZDO_StartDevice( byte logicalType, devStartModes_t startMode, byte beaconOrder, byte superframeOrder )
|
||
\ ZDO_StartDevice:
|
||
286 {
|
||
\ 000000 74F7 MOV A,#-0x9
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 9
|
||
\ 000005 ; Auto size: 11
|
||
\ 000005 74F5 MOV A,#-0xb
|
||
\ 000007 12.... LCALL ?ALLOC_XSTACK8
|
||
\ 00000A E9 MOV A,R1
|
||
\ 00000B FF MOV R7,A
|
||
\ 00000C EA MOV A,R2
|
||
\ 00000D FE MOV R6,A
|
||
287 ZStatus_t ret;
|
||
288 #if defined ( ZIGBEE_FREQ_AGILITY )
|
||
289 static uint8 discRetries = 0;
|
||
290 #endif
|
||
291 #if defined ( ZIGBEE_COMMISSIONING )
|
||
292 static uint8 scanCnt = 0;
|
||
293 #endif
|
||
294
|
||
295 ret = ZUnsupportedMode;
|
||
296
|
||
297 if ( ZG_BUILD_COORDINATOR_TYPE && logicalType == NODETYPE_COORDINATOR )
|
||
298 {
|
||
299 if ( startMode == MODE_HARD )
|
||
300 {
|
||
301 devState = DEV_COORD_STARTING;
|
||
302 ret = NLME_NetworkFormationRequest( zgConfigPANID, zgApsUseExtendedPANID, zgDefaultChannelList,
|
||
303 zgDefaultStartingScanDuration, beaconOrder,
|
||
304 superframeOrder, false );
|
||
305 }
|
||
306 else if ( startMode == MODE_RESUME )
|
||
307 {
|
||
308 // Just start the coordinator
|
||
309 devState = DEV_COORD_STARTING;
|
||
310 ret = NLME_StartRouterRequest( beaconOrder, beaconOrder, false );
|
||
311 }
|
||
312 else
|
||
313 {
|
||
314 #if defined( LCD_SUPPORTED )
|
||
315 HalLcdWriteScreen( "StartDevice ERR", "MODE unknown" );
|
||
316 #endif
|
||
317 }
|
||
318 }
|
||
319
|
||
320 if ( ZG_BUILD_JOINING_TYPE && (logicalType == NODETYPE_ROUTER || logicalType == NODETYPE_DEVICE) )
|
||
\ 00000E 7401 MOV A,#0x1
|
||
\ 000010 6F XRL A,R7
|
||
\ 000011 6008 JZ ??ZDO_StartDevice_0
|
||
\ 000013 7402 MOV A,#0x2
|
||
\ 000015 6F XRL A,R7
|
||
\ 000016 6003 JZ $+5
|
||
\ 000018 02.... LJMP ??ZDO_StartDevice_1 & 0xFFFF
|
||
321 {
|
||
322 if ( (startMode == MODE_JOIN) || (startMode == MODE_REJOIN) )
|
||
\ ??ZDO_StartDevice_0:
|
||
\ 00001B EA MOV A,R2
|
||
\ 00001C 6005 JZ ??ZDO_StartDevice_2
|
||
\ 00001E 7403 MOV A,#0x3
|
||
\ 000020 6E XRL A,R6
|
||
\ 000021 7041 JNZ ??ZDO_StartDevice_3
|
||
323 {
|
||
324 devState = DEV_NWK_DISC;
|
||
\ ??ZDO_StartDevice_2:
|
||
\ 000023 90.... MOV DPTR,#devState
|
||
\ 000026 7402 MOV A,#0x2
|
||
\ 000028 12.... LCALL ?Subroutine43 & 0xFFFF
|
||
325
|
||
326 #if defined( MANAGED_SCAN )
|
||
327 ZDOManagedScan_Next();
|
||
328 ret = NLME_NetworkDiscoveryRequest( managedScanChannelMask, BEACON_ORDER_15_MSEC );
|
||
329 #else
|
||
330 ret = NLME_NetworkDiscoveryRequest( zgDefaultChannelList, zgDefaultStartingScanDuration );
|
||
\ ??CrossCallReturnLabel_60:
|
||
\ 00002B 12.... LCALL ?XLOAD_R2345
|
||
\ 00002E 12.... LCALL `??NLME_NetworkDiscoveryRequest::?relay`; Banked call to: NLME_NetworkDiscoveryRequest
|
||
\ 000031 E9 MOV A,R1
|
||
\ 000032 F8 MOV R0,A
|
||
331 #if defined ( ZIGBEE_FREQ_AGILITY )
|
||
332 if ( !( ZDO_Config_Node_Descriptor.CapabilityFlags & CAPINFO_RCVR_ON_IDLE ) &&
|
||
333 ( ret == ZSuccess ) && ( ++discRetries == 4 ) )
|
||
\ 000033 90.... MOV DPTR,#ZDO_Config_Node_Descriptor + 2
|
||
\ 000036 E0 MOVX A,@DPTR
|
||
\ 000037 A2E3 MOV C,0xE0 /* A */.3
|
||
\ 000039 4010 JC ??CrossCallReturnLabel_21
|
||
\ 00003B E9 MOV A,R1
|
||
\ 00003C 700D JNZ ??CrossCallReturnLabel_21
|
||
\ 00003E 90.... MOV DPTR,#??discRetries
|
||
\ 000041 E0 MOVX A,@DPTR
|
||
\ 000042 04 INC A
|
||
\ 000043 F0 MOVX @DPTR,A
|
||
\ 000044 6404 XRL A,#0x4
|
||
\ 000046 7003 JNZ ??CrossCallReturnLabel_21
|
||
334 {
|
||
335 // For devices with RxOnWhenIdle equals to FALSE, any network channel
|
||
336 // change will not be recieved. On these devices or routers that have
|
||
337 // lost the network, an active scan shall be conducted on the Default
|
||
338 // Channel list using the extended PANID to find the network. If the
|
||
339 // extended PANID isn't found using the Default Channel list, an scan
|
||
340 // should be completed using all channels.
|
||
341 zgDefaultChannelList = MAX_CHANNELS_24GHZ;
|
||
\ 000048 12.... LCALL ?Subroutine25 & 0xFFFF
|
||
342 }
|
||
343 #endif // ZIGBEE_FREQ_AGILITY
|
||
344 #if defined ( ZIGBEE_COMMISSIONING )
|
||
345 if (startMode == MODE_REJOIN && scanCnt++ >= 5 )
|
||
\ ??CrossCallReturnLabel_21:
|
||
\ 00004B 7403 MOV A,#0x3
|
||
\ 00004D 6E XRL A,R6
|
||
\ 00004E 705C JNZ ??ZDO_StartDevice_4
|
||
\ 000050 90.... MOV DPTR,#??scanCnt
|
||
\ 000053 E0 MOVX A,@DPTR
|
||
\ 000054 F9 MOV R1,A
|
||
\ 000055 7401 MOV A,#0x1
|
||
\ 000057 29 ADD A,R1
|
||
\ 000058 F0 MOVX @DPTR,A
|
||
\ 000059 E9 MOV A,R1
|
||
\ 00005A C3 CLR C
|
||
\ 00005B 9405 SUBB A,#0x5
|
||
\ 00005D 404D JC ??ZDO_StartDevice_4
|
||
346 {
|
||
347 // When ApsUseExtendedPanID is commissioned to a non zero value via
|
||
348 // application specific means, the device shall conduct an active scan
|
||
349 // on the Default Channel list and join the PAN with the same
|
||
350 // ExtendedPanID. If the PAN is not found, an scan should be completed
|
||
351 // on all channels.
|
||
352 // When devices rejoin the network and the PAN is not found from
|
||
353 zgDefaultChannelList = MAX_CHANNELS_24GHZ;
|
||
\ 00005F 12.... LCALL ?Subroutine25 & 0xFFFF
|
||
354 }
|
||
355 #endif // ZIGBEE_COMMISSIONING
|
||
356 #endif
|
||
357 }
|
||
\ ??CrossCallReturnLabel_22:
|
||
\ 000062 8048 SJMP ??ZDO_StartDevice_4
|
||
358 else if ( startMode == MODE_RESUME )
|
||
\ ??ZDO_StartDevice_3:
|
||
\ 000064 7401 MOV A,#0x1
|
||
\ 000066 6E XRL A,R6
|
||
\ 000067 7048 JNZ ??ZDO_StartDevice_5
|
||
359 {
|
||
360 if ( logicalType == NODETYPE_ROUTER )
|
||
\ 000069 7401 MOV A,#0x1
|
||
\ 00006B 6F XRL A,R7
|
||
\ 00006C 90.... MOV DPTR,#devState
|
||
\ 00006F 702E JNZ ??ZDO_StartDevice_6
|
||
361 {
|
||
362 ZMacScanCnf_t scanCnf;
|
||
363 devState = DEV_NWK_ORPHAN;
|
||
\ 000071 740A MOV A,#0xa
|
||
\ 000073 F0 MOVX @DPTR,A
|
||
364
|
||
365 /* if router and nvram is available, fake successful orphan scan */
|
||
366 scanCnf.hdr.Status = ZSUCCESS;
|
||
\ 000074 7401 MOV A,#0x1
|
||
\ 000076 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000079 E4 CLR A
|
||
\ 00007A F0 MOVX @DPTR,A
|
||
367 scanCnf.ScanType = ZMAC_ORPHAN_SCAN;
|
||
\ 00007B 7402 MOV A,#0x2
|
||
\ 00007D 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000080 7403 MOV A,#0x3
|
||
\ 000082 F0 MOVX @DPTR,A
|
||
368 scanCnf.UnscannedChannels = 0;
|
||
\ 000083 04 INC A
|
||
\ 000084 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000087 E4 CLR A
|
||
\ 000088 F0 MOVX @DPTR,A
|
||
\ 000089 A3 INC DPTR
|
||
\ 00008A F0 MOVX @DPTR,A
|
||
\ 00008B A3 INC DPTR
|
||
\ 00008C F0 MOVX @DPTR,A
|
||
\ 00008D A3 INC DPTR
|
||
\ 00008E F0 MOVX @DPTR,A
|
||
369 scanCnf.ResultListSize = 0;
|
||
\ 00008F 7408 MOV A,#0x8
|
||
\ 000091 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000094 E4 CLR A
|
||
\ 000095 F0 MOVX @DPTR,A
|
||
370 nwk_ScanJoiningOrphan(&scanCnf);
|
||
\ 000096 ; Setup parameters for call to function nwk_ScanJoiningOrphan
|
||
\ 000096 AA.. MOV R2,?XSP + 0
|
||
\ 000098 AB.. MOV R3,?XSP + 1
|
||
\ 00009A 12.... LCALL `??nwk_ScanJoiningOrphan::?relay`; Banked call to: nwk_ScanJoiningOrphan
|
||
371
|
||
372 ret = ZSuccess;
|
||
\ 00009D 802D SJMP ??ZDO_StartDevice_7
|
||
373 }
|
||
374 else
|
||
375 {
|
||
376 devState = DEV_NWK_ORPHAN;
|
||
\ ??ZDO_StartDevice_6:
|
||
\ 00009F 740A MOV A,#0xa
|
||
\ 0000A1 12.... LCALL ?Subroutine43 & 0xFFFF
|
||
377 ret = NLME_OrphanJoinRequest( zgDefaultChannelList,
|
||
378 zgDefaultStartingScanDuration );
|
||
379 }
|
||
380 }
|
||
\ ??CrossCallReturnLabel_61:
|
||
\ 0000A4 12.... LCALL ?XLOAD_R2345
|
||
\ 0000A7 12.... LCALL `??NLME_OrphanJoinRequest::?relay`; Banked call to: NLME_OrphanJoinRequest
|
||
\ 0000AA E9 MOV A,R1
|
||
\ 0000AB F8 MOV R0,A
|
||
381 else
|
||
382 {
|
||
383 #if defined( LCD_SUPPORTED )
|
||
384 HalLcdWriteScreen( "StartDevice ERR", "MODE unknown" );
|
||
385 #endif
|
||
386 }
|
||
387 }
|
||
388
|
||
389 if ( ret != ZSuccess )
|
||
\ ??ZDO_StartDevice_4:
|
||
\ 0000AC E8 MOV A,R0
|
||
\ 0000AD 700D JNZ ??ZDO_StartDevice_1
|
||
\ 0000AF 801B SJMP ??ZDO_StartDevice_7
|
||
\ ??ZDO_StartDevice_5:
|
||
\ 0000B1 ; Setup parameters for call to function HalLcdWriteScreen
|
||
\ 0000B1 7C.. MOV R4,#`?<Constant "MODE unknown">` & 0xff
|
||
\ 0000B3 7D.. MOV R5,#(`?<Constant "MODE unknown">` >> 8) & 0xff
|
||
\ 0000B5 7A.. MOV R2,#`?<Constant "StartDevice ERR">` & 0xff
|
||
\ 0000B7 7B.. MOV R3,#(`?<Constant "StartDevice ERR">` >> 8) & 0xff
|
||
\ 0000B9 12.... LCALL `??HalLcdWriteScreen::?relay`; Banked call to: HalLcdWriteScreen
|
||
390 {
|
||
391 osal_start_timerEx(ZDAppTaskID, ZDO_NETWORK_INIT, NWK_RETRY_DELAY );
|
||
\ ??ZDO_StartDevice_1:
|
||
\ 0000BC ; Setup parameters for call to function osal_start_timerEx
|
||
\ 0000BC 7CE8 MOV R4,#-0x18
|
||
\ 0000BE 7D03 MOV R5,#0x3
|
||
\ 0000C0 7A01 MOV R2,#0x1
|
||
\ 0000C2 7B00 MOV R3,#0x0
|
||
\ 0000C4 90.... MOV DPTR,#ZDAppTaskID
|
||
\ 0000C7 E0 MOVX A,@DPTR
|
||
\ 0000C8 F9 MOV R1,A
|
||
\ 0000C9 12.... LCALL `??osal_start_timerEx::?relay`; Banked call to: osal_start_timerEx
|
||
392 }
|
||
393 }
|
||
\ ??ZDO_StartDevice_7:
|
||
\ 0000CC 740B MOV A,#0xb
|
||
\ 0000CE 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 0000D1 REQUIRE ?Subroutine1
|
||
\ 0000D1 ; // Fall through to label ?Subroutine1
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine1:
|
||
\ 000000 7F01 MOV R7,#0x1
|
||
\ 000002 02.... LJMP ?BANKED_LEAVE_XDATA
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine43:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 ; Setup parameters for call to function NLME_NetworkDiscoveryRequest
|
||
\ 000001 ; Setup parameters for call to function NLME_OrphanJoinRequest
|
||
\ 000001 90.... MOV DPTR,#zgDefaultStartingScanDuration
|
||
\ 000004 E0 MOVX A,@DPTR
|
||
\ 000005 F9 MOV R1,A
|
||
\ 000006 90.... MOV DPTR,#zgDefaultChannelList
|
||
\ 000009 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine25:
|
||
\ 000000 90.... MOV DPTR,#zgDefaultChannelList
|
||
\ 000003 E4 CLR A
|
||
\ 000004 F0 MOVX @DPTR,A
|
||
\ 000005 A3 INC DPTR
|
||
\ 000006 74F8 MOV A,#-0x8
|
||
\ 000008 F0 MOVX @DPTR,A
|
||
\ 000009 A3 INC DPTR
|
||
\ 00000A 74FF MOV A,#-0x1
|
||
\ 00000C F0 MOVX @DPTR,A
|
||
\ 00000D A3 INC DPTR
|
||
\ 00000E 7407 MOV A,#0x7
|
||
\ 000010 F0 MOVX @DPTR,A
|
||
\ 000011 22 RET
|
||
|
||
\ In segment XDATA_Z, align 1, keep-with-next
|
||
\ ??discRetries:
|
||
\ 000000 DS 1
|
||
\ 000001 REQUIRE __INIT_XDATA_Z
|
||
|
||
\ In segment XDATA_Z, align 1, keep-with-next
|
||
\ ??scanCnt:
|
||
\ 000000 DS 1
|
||
\ 000001 REQUIRE __INIT_XDATA_Z
|
||
394
|
||
395 /**************************************************************************************************
|
||
396 * @fn zdoSendStateChangeMsg
|
||
397 *
|
||
398 * @brief Helper function for ZDO_UpdateNwkStatus.
|
||
399 *
|
||
400 * input parameters
|
||
401 *
|
||
402 * @param taskId - The OSAL task identifier to which to send the ZDO_STATE_CHANGE_EVT.
|
||
403 * @param state - The current device state.
|
||
404 *
|
||
405 * output parameters
|
||
406 *
|
||
407 * None.
|
||
408 *
|
||
409 * @return None.
|
||
410 **************************************************************************************************
|
||
411 */
|
||
412 static void zdoSendStateChangeMsg(uint8 state, uint8 taskId)
|
||
413 {
|
||
414 osal_event_hdr_t *pMsg = (osal_event_hdr_t *)osal_msg_find(taskId, ZDO_STATE_CHANGE);
|
||
415
|
||
416 if (NULL == pMsg)
|
||
417 {
|
||
418 if (NULL == (pMsg = (osal_event_hdr_t *)osal_msg_allocate(sizeof(osal_event_hdr_t))))
|
||
419 {
|
||
420 // Upon failure to notify any EndPoint of the state change, re-set the ZDO event to
|
||
421 // try again later when more Heap may be available.
|
||
422 osal_set_event(ZDAppTaskID, ZDO_STATE_CHANGE_EVT);
|
||
423 }
|
||
424 else
|
||
425 {
|
||
426 pMsg->event = ZDO_STATE_CHANGE;
|
||
427 pMsg->status = state;
|
||
428
|
||
429 (void)osal_msg_send(taskId, (uint8 *)pMsg);
|
||
430 }
|
||
431 }
|
||
432 else
|
||
433 {
|
||
434 // Modify in place the status of an existing ZDO_STATE_CHANGE message to the EndPoint.
|
||
435 pMsg->status = state;
|
||
436 }
|
||
437 }
|
||
438
|
||
439 /**************************************************************************************************
|
||
440 * @fn ZDO_UpdateNwkStatus
|
||
441 *
|
||
442 * @brief This function sends a ZDO_STATE_CHANGE message to the task of every EndPoint
|
||
443 * registered with AF (except, of course, the ZDO_EP). Even if a single task has more
|
||
444 * than one registered EndPoint, it will only receive one notification per state
|
||
445 * change. Although the device may go through a sequence of state changes, the
|
||
446 * Application task may only receive notification of the final, steady-state state
|
||
447 * because it has the lowest priority and never even runs to receive the intermediate
|
||
448 * state change notifications.
|
||
449 *
|
||
450 * input parameters
|
||
451 *
|
||
452 * @param state - The current device state.
|
||
453 *
|
||
454 * output parameters
|
||
455 *
|
||
456 * None.
|
||
457 *
|
||
458 * @return None.
|
||
459 **************************************************************************************************
|
||
460 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
461 void ZDO_UpdateNwkStatus(devStates_t state)
|
||
\ ZDO_UpdateNwkStatus:
|
||
462 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 74F4 MOV A,#-0xc
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 12
|
||
\ 000005 ; Auto size: 0
|
||
\ 000005 89.. MOV ?V1,R1
|
||
463 epList_t *pItem = epList;
|
||
\ 000007 90.... MOV DPTR,#epList
|
||
\ 00000A 8008 SJMP ??ZDO_UpdateNwkStatus_0
|
||
464
|
||
465 while (pItem != NULL)
|
||
466 {
|
||
467 if (pItem->epDesc->endPoint != ZDO_EP)
|
||
468 {
|
||
469 zdoSendStateChangeMsg(state, *(pItem->epDesc->task_id));
|
||
\ ??ZDO_UpdateNwkStatus_1:
|
||
\ 00000C A3 INC DPTR
|
||
\ 00000D E5.. MOV A,?V1
|
||
\ 00000F F0 MOVX @DPTR,A
|
||
470 }
|
||
471
|
||
472 pItem = pItem->nextDesc;
|
||
\ ??ZDO_UpdateNwkStatus_2:
|
||
\ 000010 8E82 MOV DPL,R6
|
||
\ 000012 8F83 MOV DPH,R7
|
||
\ ??ZDO_UpdateNwkStatus_0:
|
||
\ 000014 12.... LCALL ??Subroutine235_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_387:
|
||
\ 000017 EE MOV A,R6
|
||
\ 000018 4F ORL A,R7
|
||
\ 000019 6052 JZ ??ZDO_UpdateNwkStatus_3
|
||
\ 00001B 8E82 MOV DPL,R6
|
||
\ 00001D 8F83 MOV DPH,R7
|
||
\ 00001F 12.... LCALL ??Subroutine236_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_398:
|
||
\ 000022 60EC JZ ??ZDO_UpdateNwkStatus_2
|
||
\ 000024 8E82 MOV DPL,R6
|
||
\ 000026 8F83 MOV DPH,R7
|
||
\ 000028 A3 INC DPTR
|
||
\ 000029 A3 INC DPTR
|
||
\ 00002A 12.... LCALL ?Subroutine112 & 0xFFFF
|
||
473 }
|
||
\ ??CrossCallReturnLabel_183:
|
||
\ 00002D 12.... LCALL ??Subroutine237_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_396:
|
||
\ 000030 F5.. MOV ?V0,A
|
||
\ 000032 ; Setup parameters for call to function osal_msg_find
|
||
\ 000032 7AD1 MOV R2,#-0x2f
|
||
\ 000034 F9 MOV R1,A
|
||
\ 000035 12.... LCALL `??osal_msg_find::?relay`; Banked call to: osal_msg_find
|
||
\ 000038 8A82 MOV DPL,R2
|
||
\ 00003A 8B83 MOV DPH,R3
|
||
\ 00003C E582 MOV A,DPL
|
||
\ 00003E 4583 ORL A,DPH
|
||
\ 000040 70CA JNZ ??ZDO_UpdateNwkStatus_1
|
||
\ 000042 ; Setup parameters for call to function osal_msg_allocate
|
||
\ 000042 7A02 MOV R2,#0x2
|
||
\ 000044 7B00 MOV R3,#0x0
|
||
\ 000046 12.... LCALL `??osal_msg_allocate::?relay`; Banked call to: osal_msg_allocate
|
||
\ 000049 EA MOV A,R2
|
||
\ 00004A 4B ORL A,R3
|
||
\ 00004B 700E JNZ ??ZDO_UpdateNwkStatus_4
|
||
\ 00004D ; Setup parameters for call to function osal_set_event
|
||
\ 00004D 7A10 MOV R2,#0x10
|
||
\ 00004F 7B00 MOV R3,#0x0
|
||
\ 000051 90.... MOV DPTR,#ZDAppTaskID
|
||
\ 000054 E0 MOVX A,@DPTR
|
||
\ 000055 F9 MOV R1,A
|
||
\ 000056 12.... LCALL `??osal_set_event::?relay`; Banked call to: osal_set_event
|
||
\ 000059 80B5 SJMP ??ZDO_UpdateNwkStatus_2
|
||
\ ??ZDO_UpdateNwkStatus_4:
|
||
\ 00005B 8A82 MOV DPL,R2
|
||
\ 00005D 8B83 MOV DPH,R3
|
||
\ 00005F 74D1 MOV A,#-0x2f
|
||
\ 000061 F0 MOVX @DPTR,A
|
||
\ 000062 A3 INC DPTR
|
||
\ 000063 E5.. MOV A,?V1
|
||
\ 000065 F0 MOVX @DPTR,A
|
||
\ 000066 ; Setup parameters for call to function osal_msg_send
|
||
\ 000066 A9.. MOV R1,?V0
|
||
\ 000068 12.... LCALL `??osal_msg_send::?relay`; Banked call to: osal_msg_send
|
||
\ 00006B 80A3 SJMP ??ZDO_UpdateNwkStatus_2
|
||
474 #if defined MT_ZDO_CB_FUNC
|
||
475 zdoSendStateChangeMsg(state, MT_TaskID);
|
||
476 #endif
|
||
477
|
||
478 ZDAppNwkAddr.addr.shortAddr = NLME_GetShortAddr();
|
||
\ ??ZDO_UpdateNwkStatus_3:
|
||
\ 00006D ; Setup parameters for call to function NLME_GetShortAddr
|
||
\ 00006D 12.... LCALL `??NLME_GetShortAddr::?relay`; Banked call to: NLME_GetShortAddr
|
||
\ 000070 90.... MOV DPTR,#ZDAppNwkAddr
|
||
\ 000073 12.... LCALL ??Subroutine242_0 & 0xFFFF
|
||
479 (void)NLME_GetExtAddr(); // Load the saveExtAddr pointer.
|
||
\ ??CrossCallReturnLabel_424:
|
||
\ 000076 ; Setup parameters for call to function NLME_GetExtAddr
|
||
\ 000076 12.... LCALL `??NLME_GetExtAddr::?relay`; Banked call to: NLME_GetExtAddr
|
||
480 }
|
||
\ 000079 80.. SJMP ??Subroutine222_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine222_0:
|
||
\ 000000 7F04 MOV R7,#0x4
|
||
\ 000002 02.... LJMP ?BANKED_LEAVE_XDATA
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine112:
|
||
\ 000000 12.... LCALL ?Subroutine192 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_746:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine235_0:
|
||
\ 000000 12.... LCALL ??Subroutine293_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_714:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine236_0:
|
||
\ 000000 A3 INC DPTR
|
||
\ 000001 REQUIRE ??Subroutine237_0
|
||
\ 000001 ; // Fall through to label ??Subroutine237_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine237_0:
|
||
\ 000000 A3 INC DPTR
|
||
\ 000001 REQUIRE ??Subroutine238_0
|
||
\ 000001 ; // Fall through to label ??Subroutine238_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine238_0:
|
||
\ 000000 E0 MOVX A,@DPTR
|
||
\ 000001 REQUIRE ??Subroutine239_0
|
||
\ 000001 ; // Fall through to label ??Subroutine239_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine239_0:
|
||
\ 000000 12.... LCALL ?Subroutine191 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_403:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine191:
|
||
\ 000000 F8 MOV R0,A
|
||
\ 000001 A3 INC DPTR
|
||
\ 000002 E0 MOVX A,@DPTR
|
||
\ 000003 F583 MOV DPH,A
|
||
\ 000005 8882 MOV DPL,R0
|
||
\ 000007 E0 MOVX A,@DPTR
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine242_0:
|
||
\ 000000 EA MOV A,R2
|
||
\ 000001 REQUIRE ??Subroutine243_0
|
||
\ 000001 ; // Fall through to label ??Subroutine243_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine243_0:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 A3 INC DPTR
|
||
\ 000002 EB MOV A,R3
|
||
\ 000003 F0 MOVX @DPTR,A
|
||
\ 000004 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine293_0:
|
||
\ 000000 E0 MOVX A,@DPTR
|
||
\ 000001 FE MOV R6,A
|
||
\ 000002 A3 INC DPTR
|
||
\ 000003 E0 MOVX A,@DPTR
|
||
\ 000004 FF MOV R7,A
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine192:
|
||
\ 000000 A3 INC DPTR
|
||
\ 000001 E0 MOVX A,@DPTR
|
||
\ 000002 F583 MOV DPH,A
|
||
\ 000004 8882 MOV DPL,R0
|
||
\ 000006 22 RET
|
||
481
|
||
482 #if defined ( REFLECTOR )
|
||
483 /*********************************************************************
|
||
484 * @fn ZDO_RemoveEndDeviceBind
|
||
485 *
|
||
486 * @brief Remove the end device bind
|
||
487 *
|
||
488 * @param none
|
||
489 *
|
||
490 * @return none
|
||
491 */
|
||
492 static void ZDO_RemoveEndDeviceBind( void )
|
||
493 {
|
||
494 if ( ZDO_EDBind != NULL )
|
||
495 {
|
||
496 // Free the RAM
|
||
497 if ( ZDO_EDBind->inClusters != NULL )
|
||
498 {
|
||
499 osal_mem_free( ZDO_EDBind->inClusters );
|
||
500 }
|
||
501 if ( ZDO_EDBind->outClusters != NULL )
|
||
502 {
|
||
503 osal_mem_free( ZDO_EDBind->outClusters );
|
||
504 }
|
||
505 osal_mem_free( ZDO_EDBind );
|
||
506 ZDO_EDBind = NULL;
|
||
507 }
|
||
508 }
|
||
509 #endif // REFLECTOR
|
||
510
|
||
511 #if defined ( REFLECTOR )
|
||
512 /*********************************************************************
|
||
513 * @fn ZDO_RemoveEndDeviceBind
|
||
514 *
|
||
515 * @brief Remove the end device bind
|
||
516 *
|
||
517 * @param none
|
||
518 *
|
||
519 * @return none
|
||
520 */
|
||
521 static void ZDO_SendEDBindRsp( byte TransSeq, zAddrType_t *dstAddr, byte Status, byte secUse )
|
||
522 {
|
||
523 ZDP_EndDeviceBindRsp( TransSeq, dstAddr, Status, secUse );
|
||
524
|
||
525 #if defined( LCD_SUPPORTED )
|
||
526 HalLcdWriteString( "End Device Bind", HAL_LCD_LINE_1 );
|
||
527 if ( Status == ZDP_SUCCESS )
|
||
528 {
|
||
529 HalLcdWriteString( "Success Sent", HAL_LCD_LINE_2 );
|
||
530 }
|
||
531 else
|
||
532 {
|
||
533 HalLcdWriteString( "Timeout", HAL_LCD_LINE_2 );
|
||
534 }
|
||
535 #endif
|
||
536
|
||
537 }
|
||
538 #endif // REFLECTOR
|
||
539
|
||
540 /*********************************************************************
|
||
541 * @fn ZDO_CompareClusterLists
|
||
542 *
|
||
543 * @brief Compare one list to another list
|
||
544 *
|
||
545 * @param numList1 - number of items in list 1
|
||
546 * @param list1 - first list of cluster IDs
|
||
547 * @param numList2 - number of items in list 2
|
||
548 * @param list2 - second list of cluster IDs
|
||
549 * @param pMatches - buffer to put matches
|
||
550 *
|
||
551 * @return number of matches
|
||
552 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
553 static byte ZDO_CompareClusterLists( byte numList1, uint16 *list1,
|
||
\ ZDO_CompareClusterLists:
|
||
554 byte numList2, uint16 *list2, uint16 *pMatches )
|
||
555 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V6
|
||
\ 000000 REQUIRE ?V7
|
||
\ 000000 74F0 MOV A,#-0x10
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 16
|
||
\ 000005 ; Auto size: 0
|
||
\ 000005 89.. MOV ?V0,R1
|
||
\ 000007 8A.. MOV ?V6,R2
|
||
\ 000009 8B.. MOV ?V7,R3
|
||
\ 00000B 8C.. MOV ?V4,R4
|
||
556 byte x, y;
|
||
557 uint16 z;
|
||
558 byte numMatches = 0;
|
||
\ 00000D 7A00 MOV R2,#0x0
|
||
559
|
||
560 // Check the first in against the seconds out
|
||
561 for ( x = 0; x < numList1; x++ )
|
||
\ 00000F 7B00 MOV R3,#0x0
|
||
\ 000011 7410 MOV A,#0x10
|
||
\ 000013 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000016 12.... LCALL ?Subroutine189 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_306:
|
||
\ 000019 7412 MOV A,#0x12
|
||
\ 00001B 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00001E 12.... LCALL ??Subroutine235_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_388:
|
||
\ 000021 804B SJMP ??ZDO_CompareClusterLists_0
|
||
562 {
|
||
563 for ( y = 0; y < numList2; y++ )
|
||
564 {
|
||
565 z = list2[y];
|
||
\ ??ZDO_CompareClusterLists_1:
|
||
\ 000023 A8.. MOV R0,?V1
|
||
\ 000025 E8 MOV A,R0
|
||
\ 000026 28 ADD A,R0
|
||
\ 000027 F8 MOV R0,A
|
||
\ 000028 E4 CLR A
|
||
\ 000029 33 RLC A
|
||
\ 00002A F9 MOV R1,A
|
||
\ 00002B EC MOV A,R4
|
||
\ 00002C 28 ADD A,R0
|
||
\ 00002D F582 MOV DPL,A
|
||
\ 00002F ED MOV A,R5
|
||
\ 000030 39 ADDC A,R1
|
||
\ 000031 F583 MOV DPH,A
|
||
\ 000033 E0 MOVX A,@DPTR
|
||
\ 000034 F5.. MOV ?V2,A
|
||
\ 000036 A3 INC DPTR
|
||
\ 000037 E0 MOVX A,@DPTR
|
||
\ 000038 F5.. MOV ?V3,A
|
||
566 if ( list1[x] == z )
|
||
\ 00003A EB MOV A,R3
|
||
\ 00003B 12.... LCALL ?Subroutine134 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_220:
|
||
\ 00003E F582 MOV DPL,A
|
||
\ 000040 E5.. MOV A,?V7
|
||
\ 000042 39 ADDC A,R1
|
||
\ 000043 F583 MOV DPH,A
|
||
\ 000045 E0 MOVX A,@DPTR
|
||
\ 000046 65.. XRL A,?V2
|
||
\ 000048 7004 JNZ ??ZDO_CompareClusterLists_2
|
||
\ 00004A A3 INC DPTR
|
||
\ 00004B E0 MOVX A,@DPTR
|
||
\ 00004C 65.. XRL A,?V3
|
||
\ ??ZDO_CompareClusterLists_2:
|
||
\ 00004E 7014 JNZ ??ZDO_CompareClusterLists_3
|
||
567 {
|
||
568 pMatches[numMatches++] = z;
|
||
\ 000050 EA MOV A,R2
|
||
\ 000051 12.... LCALL ?Subroutine199 & 0xFFFF
|
||
569 }
|
||
570 }
|
||
\ ??CrossCallReturnLabel_319:
|
||
\ 000054 EE MOV A,R6
|
||
\ 000055 28 ADD A,R0
|
||
\ 000056 F582 MOV DPL,A
|
||
\ 000058 EF MOV A,R7
|
||
\ 000059 39 ADDC A,R1
|
||
\ 00005A F583 MOV DPH,A
|
||
\ 00005C E5.. MOV A,?V2
|
||
\ 00005E F0 MOVX @DPTR,A
|
||
\ 00005F A3 INC DPTR
|
||
\ 000060 E5.. MOV A,?V3
|
||
\ 000062 F0 MOVX @DPTR,A
|
||
\ 000063 0A INC R2
|
||
\ ??ZDO_CompareClusterLists_3:
|
||
\ 000064 05.. INC ?V1
|
||
\ ??ZDO_CompareClusterLists_4:
|
||
\ 000066 E5.. MOV A,?V1
|
||
\ 000068 C3 CLR C
|
||
\ 000069 95.. SUBB A,?V4
|
||
\ 00006B 40B6 JC ??ZDO_CompareClusterLists_1
|
||
\ 00006D 0B INC R3
|
||
\ ??ZDO_CompareClusterLists_0:
|
||
\ 00006E EB MOV A,R3
|
||
\ 00006F C3 CLR C
|
||
\ 000070 95.. SUBB A,?V0
|
||
\ 000072 5005 JNC ??ZDO_CompareClusterLists_5
|
||
\ 000074 75..00 MOV ?V1,#0x0
|
||
\ 000077 80ED SJMP ??ZDO_CompareClusterLists_4
|
||
571 }
|
||
572
|
||
573 return ( numMatches );
|
||
\ ??ZDO_CompareClusterLists_5:
|
||
\ 000079 EA MOV A,R2
|
||
\ 00007A F9 MOV R1,A
|
||
\ 00007B 02.... LJMP ??Subroutine230_0 & 0xFFFF
|
||
574 }
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine199:
|
||
\ 000000 25E0 ADD A,0xE0 /* A */
|
||
\ 000002 F8 MOV R0,A
|
||
\ 000003 E4 CLR A
|
||
\ 000004 33 RLC A
|
||
\ 000005 F9 MOV R1,A
|
||
\ 000006 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine134:
|
||
\ 000000 12.... LCALL ?Subroutine199 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_321:
|
||
\ 000003 E5.. MOV A,?V6
|
||
\ 000005 28 ADD A,R0
|
||
\ 000006 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine189:
|
||
\ 000000 E0 MOVX A,@DPTR
|
||
\ 000001 FC MOV R4,A
|
||
\ 000002 A3 INC DPTR
|
||
\ 000003 E0 MOVX A,@DPTR
|
||
\ 000004 FD MOV R5,A
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine230_0:
|
||
\ 000000 7F08 MOV R7,#0x8
|
||
\ 000002 02.... LJMP ?BANKED_LEAVE_XDATA
|
||
575
|
||
576 /*********************************************************************
|
||
577 * Utility functions
|
||
578 */
|
||
579
|
||
580 /*********************************************************************
|
||
581 * @fn ZDO_CompareByteLists
|
||
582 *
|
||
583 * @brief Compares two lists for matches.
|
||
584 *
|
||
585 * @param ACnt - number of entries in list A
|
||
586 * @param AList - List A
|
||
587 * @param BCnt - number of entries in list B
|
||
588 * @param BList - List B
|
||
589 *
|
||
590 * @return true if a match is found
|
||
591 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
592 byte ZDO_AnyClusterMatches( byte ACnt, uint16 *AList, byte BCnt, uint16 *BList )
|
||
\ ZDO_AnyClusterMatches:
|
||
593 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 74F4 MOV A,#-0xc
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 12
|
||
\ 000005 ; Auto size: 0
|
||
\ 000005 E9 MOV A,R1
|
||
\ 000006 FE MOV R6,A
|
||
\ 000007 8C.. MOV ?V2,R4
|
||
594 byte x, y;
|
||
595
|
||
596 for ( x = 0; x < ACnt; x++ )
|
||
\ 000009 7F00 MOV R7,#0x0
|
||
\ 00000B 740C MOV A,#0xc
|
||
\ 00000D 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000010 12.... LCALL ??Subroutine253_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_463:
|
||
\ 000013 8001 SJMP ??ZDO_AnyClusterMatches_0
|
||
\ ??ZDO_AnyClusterMatches_1:
|
||
\ 000015 0F INC R7
|
||
\ ??ZDO_AnyClusterMatches_0:
|
||
\ 000016 EF MOV A,R7
|
||
\ 000017 C3 CLR C
|
||
\ 000018 9E SUBB A,R6
|
||
\ 000019 503A JNC ??ZDO_AnyClusterMatches_2
|
||
597 {
|
||
598 for ( y = 0; y < BCnt; y++ )
|
||
\ 00001B 75..00 MOV ?V3,#0x0
|
||
\ 00001E 8002 SJMP ??ZDO_AnyClusterMatches_3
|
||
\ ??ZDO_AnyClusterMatches_4:
|
||
\ 000020 05.. INC ?V3
|
||
\ ??ZDO_AnyClusterMatches_3:
|
||
\ 000022 E5.. MOV A,?V3
|
||
\ 000024 C3 CLR C
|
||
\ 000025 95.. SUBB A,?V2
|
||
\ 000027 50EC JNC ??ZDO_AnyClusterMatches_1
|
||
599 {
|
||
600 if ( AList[x] == BList[y] )
|
||
\ 000029 EF MOV A,R7
|
||
\ 00002A 12.... LCALL ??Subroutine227_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_364:
|
||
\ 00002D EA MOV A,R2
|
||
\ 00002E 2C ADD A,R4
|
||
\ 00002F F582 MOV DPL,A
|
||
\ 000031 EB MOV A,R3
|
||
\ 000032 3D ADDC A,R5
|
||
\ 000033 12.... LCALL ?Subroutine177 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_359:
|
||
\ 000036 AC.. MOV R4,?V3
|
||
\ 000038 EC MOV A,R4
|
||
\ 000039 2C ADD A,R4
|
||
\ 00003A FC MOV R4,A
|
||
\ 00003B E4 CLR A
|
||
\ 00003C 33 RLC A
|
||
\ 00003D FD MOV R5,A
|
||
\ 00003E E8 MOV A,R0
|
||
\ 00003F 2C ADD A,R4
|
||
\ 000040 F582 MOV DPL,A
|
||
\ 000042 E9 MOV A,R1
|
||
\ 000043 3D ADDC A,R5
|
||
\ 000044 F583 MOV DPH,A
|
||
\ 000046 E0 MOVX A,@DPTR
|
||
\ 000047 65.. XRL A,?V0
|
||
\ 000049 7004 JNZ ??ZDO_AnyClusterMatches_5
|
||
\ 00004B A3 INC DPTR
|
||
\ 00004C E0 MOVX A,@DPTR
|
||
\ 00004D 65.. XRL A,?V1
|
||
\ ??ZDO_AnyClusterMatches_5:
|
||
\ 00004F 70CF JNZ ??ZDO_AnyClusterMatches_4
|
||
601 {
|
||
602 return true;
|
||
\ 000051 7901 MOV R1,#0x1
|
||
\ 000053 8002 SJMP ??ZDO_AnyClusterMatches_6
|
||
603 }
|
||
604 }
|
||
605 }
|
||
606
|
||
607 return false;
|
||
\ ??ZDO_AnyClusterMatches_2:
|
||
\ 000055 7900 MOV R1,#0x0
|
||
\ ??ZDO_AnyClusterMatches_6:
|
||
\ 000057 02.... LJMP ??Subroutine222_0 & 0xFFFF
|
||
608 }
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine177:
|
||
\ 000000 F583 MOV DPH,A
|
||
\ 000002 REQUIRE ??Subroutine223_0
|
||
\ 000002 ; // Fall through to label ??Subroutine223_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine223_0:
|
||
\ 000000 E0 MOVX A,@DPTR
|
||
\ 000001 F5.. MOV ?V0,A
|
||
\ 000003 A3 INC DPTR
|
||
\ 000004 E0 MOVX A,@DPTR
|
||
\ 000005 F5.. MOV ?V1,A
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine227_0:
|
||
\ 000000 25E0 ADD A,0xE0 /* A */
|
||
\ 000002 FC MOV R4,A
|
||
\ 000003 E4 CLR A
|
||
\ 000004 33 RLC A
|
||
\ 000005 FD MOV R5,A
|
||
\ 000006 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine253_0:
|
||
\ 000000 12.... LCALL ??Subroutine283_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_649:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine220:
|
||
\ 000000 E0 MOVX A,@DPTR
|
||
\ 000001 F8 MOV R0,A
|
||
\ 000002 A3 INC DPTR
|
||
\ 000003 E0 MOVX A,@DPTR
|
||
\ 000004 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine283_0:
|
||
\ 000000 12.... LCALL ?Subroutine220 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_657:
|
||
\ 000003 F9 MOV R1,A
|
||
\ 000004 22 RET
|
||
609
|
||
610 /*********************************************************************
|
||
611 * Callback functions from ZDProfile
|
||
612 */
|
||
613
|
||
614 /*********************************************************************
|
||
615 * @fn ZDO_ProcessNodeDescReq
|
||
616 *
|
||
617 * @brief This function processes and responds to the
|
||
618 * Node_Desc_req message.
|
||
619 *
|
||
620 * @param inMsg - incoming message
|
||
621 *
|
||
622 * @return none
|
||
623 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
624 void ZDO_ProcessNodeDescReq( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ProcessNodeDescReq:
|
||
625 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 74F6 MOV A,#-0xa
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 10
|
||
\ 000005 ; Auto size: 0
|
||
\ 000005 12.... LCALL ?Subroutine60 & 0xFFFF
|
||
626 uint16 aoi = BUILD_UINT16( inMsg->asdu[0], inMsg->asdu[1] );
|
||
627 NodeDescriptorFormat_t *desc = NULL;
|
||
628
|
||
629 if ( aoi == ZDAppNwkAddr.addr.shortAddr )
|
||
\ ??CrossCallReturnLabel_89:
|
||
\ 000008 7003 JNZ ??ZDO_ProcessNodeDescReq_0
|
||
\ 00000A A3 INC DPTR
|
||
\ 00000B E0 MOVX A,@DPTR
|
||
\ 00000C 6D XRL A,R5
|
||
\ ??ZDO_ProcessNodeDescReq_0:
|
||
\ 00000D 7017 JNZ ??ZDO_ProcessNodeDescReq_1
|
||
630 {
|
||
631 desc = &ZDO_Config_Node_Descriptor;
|
||
632 }
|
||
633
|
||
634 if ( desc != NULL )
|
||
635 {
|
||
636 ZDP_NodeDescMsg( inMsg, aoi, desc );
|
||
\ 00000F ; Setup parameters for call to function ZDP_NodeDescMsg
|
||
\ 00000F 75.... MOV ?V0,#ZDO_Config_Node_Descriptor & 0xff
|
||
\ 000012 75.... MOV ?V1,#(ZDO_Config_Node_Descriptor >> 8) & 0xff
|
||
\ 000015 78.. MOV R0,#?V0
|
||
\ 000017 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 00001A EE MOV A,R6
|
||
\ 00001B FA MOV R2,A
|
||
\ 00001C 12.... LCALL `??ZDP_NodeDescMsg::?relay`; Banked call to: ZDP_NodeDescMsg
|
||
\ 00001F 7402 MOV A,#0x2
|
||
\ 000021 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 000024 801A SJMP ??ZDO_ProcessNodeDescReq_2
|
||
637 }
|
||
638 else
|
||
639 {
|
||
640 ZDP_GenericRsp( inMsg->TransSeq, &(inMsg->srcAddr),
|
||
641 ZDP_INVALID_REQTYPE, aoi, Node_Desc_rsp, inMsg->SecurityUse );
|
||
\ ??ZDO_ProcessNodeDescReq_1:
|
||
\ 000026 ; Setup parameters for call to function ZDP_GenericRsp
|
||
\ 000026 75..02 MOV ?V0,#0x2
|
||
\ 000029 75..80 MOV ?V1,#-0x80
|
||
\ 00002C 78.. MOV R0,#?V0
|
||
\ 00002E 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000031 8A.. MOV ?V0,R2
|
||
\ 000033 89.. MOV ?V1,R1
|
||
\ 000035 78.. MOV R0,#?V0
|
||
\ 000037 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 00003A 12.... LCALL ?Subroutine61 & 0xFFFF
|
||
642 }
|
||
\ ??CrossCallReturnLabel_91:
|
||
\ 00003D 12.... LCALL ?DEALLOC_XSTACK8
|
||
643 }
|
||
\ ??ZDO_ProcessNodeDescReq_2:
|
||
\ 000040 80.. SJMP ??Subroutine225_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine61:
|
||
\ 000000 12.... LCALL ?Subroutine198 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_317:
|
||
\ 000003 7C80 MOV R4,#-0x80
|
||
\ 000005 12.... LCALL ?Subroutine197 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_315:
|
||
\ 000008 12.... LCALL `??ZDP_GenericRsp::?relay`; Banked call to: ZDP_GenericRsp
|
||
\ 00000B 7404 MOV A,#0x4
|
||
\ 00000D 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine60:
|
||
\ 000000 EA MOV A,R2
|
||
\ 000001 FE MOV R6,A
|
||
\ 000002 EB MOV A,R3
|
||
\ 000003 FF MOV R7,A
|
||
\ 000004 12.... LCALL ?Subroutine204 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_456:
|
||
\ 000007 3F ADDC A,R7
|
||
\ 000008 12.... LCALL ?Subroutine176 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_292:
|
||
\ 00000B FC MOV R4,A
|
||
\ 00000C E4 CLR A
|
||
\ 00000D 39 ADDC A,R1
|
||
\ 00000E FD MOV R5,A
|
||
\ 00000F 90.... MOV DPTR,#ZDAppNwkAddr
|
||
\ 000012 E0 MOVX A,@DPTR
|
||
\ 000013 6C XRL A,R4
|
||
\ 000014 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine225_0:
|
||
\ 000000 7F02 MOV R7,#0x2
|
||
\ 000002 02.... LJMP ?BANKED_LEAVE_XDATA
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine198:
|
||
\ 000000 EE MOV A,R6
|
||
\ 000001 240E ADD A,#0xe
|
||
\ 000003 F582 MOV DPL,A
|
||
\ 000005 E4 CLR A
|
||
\ 000006 3F ADDC A,R7
|
||
\ 000007 F583 MOV DPH,A
|
||
\ 000009 E0 MOVX A,@DPTR
|
||
\ 00000A FD MOV R5,A
|
||
\ 00000B 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine197:
|
||
\ 000000 EE MOV A,R6
|
||
\ 000001 2402 ADD A,#0x2
|
||
\ 000003 FA MOV R2,A
|
||
\ 000004 E4 CLR A
|
||
\ 000005 3F ADDC A,R7
|
||
\ 000006 FB MOV R3,A
|
||
\ 000007 EE MOV A,R6
|
||
\ 000008 240F ADD A,#0xf
|
||
\ 00000A F582 MOV DPL,A
|
||
\ 00000C E4 CLR A
|
||
\ 00000D 3F ADDC A,R7
|
||
\ 00000E F583 MOV DPH,A
|
||
\ 000010 E0 MOVX A,@DPTR
|
||
\ 000011 F9 MOV R1,A
|
||
\ 000012 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine176:
|
||
\ 000000 F583 MOV DPH,A
|
||
\ 000002 12.... LCALL ?Subroutine215 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_345:
|
||
\ 000005 12.... LCALL ??Subroutine281_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_694:
|
||
\ 000008 F8 MOV R0,A
|
||
\ 000009 E4 CLR A
|
||
\ 00000A C8 XCH A,R0
|
||
\ 00000B F9 MOV R1,A
|
||
\ 00000C EA MOV A,R2
|
||
\ 00000D 28 ADD A,R0
|
||
\ 00000E 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine215:
|
||
\ 000000 12.... LCALL ?Subroutine220 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_654:
|
||
\ 000003 8882 MOV DPL,R0
|
||
\ 000005 F583 MOV DPH,A
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine204:
|
||
\ 000000 EA MOV A,R2
|
||
\ 000001 REQUIRE ??Subroutine247_0
|
||
\ 000001 ; // Fall through to label ??Subroutine247_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine247_0:
|
||
\ 000000 12.... LCALL ?Subroutine217 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_712:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine217:
|
||
\ 000000 2413 ADD A,#0x13
|
||
\ 000002 F582 MOV DPL,A
|
||
\ 000004 E4 CLR A
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine281_0:
|
||
\ 000000 E0 MOVX A,@DPTR
|
||
\ 000001 FA MOV R2,A
|
||
\ 000002 A3 INC DPTR
|
||
\ 000003 E0 MOVX A,@DPTR
|
||
\ 000004 22 RET
|
||
644
|
||
645 /*********************************************************************
|
||
646 * @fn ZDO_ProcessPowerDescReq
|
||
647 *
|
||
648 * @brief This function processes and responds to the
|
||
649 * Node_Power_req message.
|
||
650 *
|
||
651 * @param inMsg - incoming request
|
||
652 *
|
||
653 * @return none
|
||
654 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
655 void ZDO_ProcessPowerDescReq( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ProcessPowerDescReq:
|
||
656 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 74F6 MOV A,#-0xa
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 10
|
||
\ 000005 ; Auto size: 0
|
||
\ 000005 12.... LCALL ?Subroutine60 & 0xFFFF
|
||
657 uint16 aoi = BUILD_UINT16( inMsg->asdu[0], inMsg->asdu[1] );
|
||
658 NodePowerDescriptorFormat_t *desc = NULL;
|
||
659
|
||
660 if ( aoi == ZDAppNwkAddr.addr.shortAddr )
|
||
\ ??CrossCallReturnLabel_90:
|
||
\ 000008 7003 JNZ ??ZDO_ProcessPowerDescReq_0
|
||
\ 00000A A3 INC DPTR
|
||
\ 00000B E0 MOVX A,@DPTR
|
||
\ 00000C 6D XRL A,R5
|
||
\ ??ZDO_ProcessPowerDescReq_0:
|
||
\ 00000D 7017 JNZ ??ZDO_ProcessPowerDescReq_1
|
||
661 {
|
||
662 desc = &ZDO_Config_Power_Descriptor;
|
||
663 }
|
||
664
|
||
665 if ( desc != NULL )
|
||
666 {
|
||
667 ZDP_PowerDescMsg( inMsg, aoi, desc );
|
||
\ 00000F ; Setup parameters for call to function ZDP_PowerDescMsg
|
||
\ 00000F 75.... MOV ?V0,#ZDO_Config_Power_Descriptor & 0xff
|
||
\ 000012 75.... MOV ?V1,#(ZDO_Config_Power_Descriptor >> 8) & 0xff
|
||
\ 000015 78.. MOV R0,#?V0
|
||
\ 000017 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 00001A EE MOV A,R6
|
||
\ 00001B FA MOV R2,A
|
||
\ 00001C 12.... LCALL `??ZDP_PowerDescMsg::?relay`; Banked call to: ZDP_PowerDescMsg
|
||
\ 00001F 7402 MOV A,#0x2
|
||
\ 000021 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 000024 801A SJMP ??ZDO_ProcessPowerDescReq_2
|
||
668 }
|
||
669 else
|
||
670 {
|
||
671 ZDP_GenericRsp( inMsg->TransSeq, &(inMsg->srcAddr),
|
||
672 ZDP_INVALID_REQTYPE, aoi, Power_Desc_rsp, inMsg->SecurityUse );
|
||
\ ??ZDO_ProcessPowerDescReq_1:
|
||
\ 000026 ; Setup parameters for call to function ZDP_GenericRsp
|
||
\ 000026 75..03 MOV ?V0,#0x3
|
||
\ 000029 75..80 MOV ?V1,#-0x80
|
||
\ 00002C 78.. MOV R0,#?V0
|
||
\ 00002E 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000031 8A.. MOV ?V0,R2
|
||
\ 000033 89.. MOV ?V1,R1
|
||
\ 000035 78.. MOV R0,#?V0
|
||
\ 000037 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 00003A 12.... LCALL ?Subroutine61 & 0xFFFF
|
||
673 }
|
||
\ ??CrossCallReturnLabel_92:
|
||
\ 00003D 12.... LCALL ?DEALLOC_XSTACK8
|
||
674 }
|
||
\ ??ZDO_ProcessPowerDescReq_2:
|
||
\ 000040 80.. SJMP ??Subroutine225_0
|
||
675
|
||
676 /*********************************************************************
|
||
677 * @fn ZDO_ProcessSimpleDescReq
|
||
678 *
|
||
679 * @brief This function processes and responds to the
|
||
680 * Simple_Desc_req message.
|
||
681 *
|
||
682 * @param inMsg - incoming message (request)
|
||
683 *
|
||
684 * @return none
|
||
685 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine4:
|
||
\ 000000 7402 MOV A,#0x2
|
||
\ 000002 REQUIRE ??Subroutine224_0
|
||
\ 000002 ; // Fall through to label ??Subroutine224_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine224_0:
|
||
\ 000000 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 000003 REQUIRE ??Subroutine225_0
|
||
\ 000003 ; // Fall through to label ??Subroutine225_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
686 void ZDO_ProcessSimpleDescReq( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ProcessSimpleDescReq:
|
||
687 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 74F6 MOV A,#-0xa
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 10
|
||
\ 000005 ; Auto size: 2
|
||
\ 000005 74FE MOV A,#-0x2
|
||
\ 000007 12.... LCALL ?ALLOC_XSTACK8
|
||
\ 00000A EA MOV A,R2
|
||
\ 00000B FE MOV R6,A
|
||
\ 00000C EB MOV A,R3
|
||
\ 00000D FF MOV R7,A
|
||
688 SimpleDescriptionFormat_t *sDesc = NULL;
|
||
\ 00000E 85..82 MOV DPL,?XSP + 0
|
||
\ 000011 85..83 MOV DPH,?XSP + 1
|
||
\ 000014 E4 CLR A
|
||
\ 000015 F0 MOVX @DPTR,A
|
||
\ 000016 A3 INC DPTR
|
||
\ 000017 F0 MOVX @DPTR,A
|
||
689 uint16 aoi = BUILD_UINT16( inMsg->asdu[0], inMsg->asdu[1] );
|
||
\ 000018 12.... LCALL ?Subroutine136 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_362:
|
||
\ 00001B 12.... LCALL ?Subroutine85 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_138:
|
||
\ 00001E FB MOV R3,A
|
||
\ 00001F EC MOV A,R4
|
||
\ 000020 FA MOV R2,A
|
||
690 byte endPoint = inMsg->asdu[2];
|
||
\ 000021 8882 MOV DPL,R0
|
||
\ 000023 8983 MOV DPH,R1
|
||
\ 000025 A3 INC DPTR
|
||
\ 000026 A3 INC DPTR
|
||
\ 000027 E0 MOVX A,@DPTR
|
||
\ 000028 F9 MOV R1,A
|
||
691 byte free = false;
|
||
\ 000029 75..00 MOV ?V1,#0x0
|
||
692 byte stat = ZDP_SUCCESS;
|
||
\ 00002C 75..00 MOV ?V0,#0x0
|
||
693
|
||
694 if ( (endPoint == ZDO_EP) || (endPoint > MAX_ENDPOINTS) )
|
||
\ 00002F 6005 JZ ??ZDO_ProcessSimpleDescReq_0
|
||
\ 000031 C3 CLR C
|
||
\ 000032 94F1 SUBB A,#-0xf
|
||
\ 000034 4005 JC ??ZDO_ProcessSimpleDescReq_1
|
||
695 {
|
||
696 stat = ZDP_INVALID_EP;
|
||
\ ??ZDO_ProcessSimpleDescReq_0:
|
||
\ 000036 75..82 MOV ?V0,#-0x7e
|
||
\ 000039 802A SJMP ??ZDO_ProcessSimpleDescReq_2
|
||
697 }
|
||
698 else if ( aoi == ZDAppNwkAddr.addr.shortAddr )
|
||
\ ??ZDO_ProcessSimpleDescReq_1:
|
||
\ 00003B 90.... MOV DPTR,#ZDAppNwkAddr
|
||
\ 00003E E0 MOVX A,@DPTR
|
||
\ 00003F 6A XRL A,R2
|
||
\ 000040 7003 JNZ ??ZDO_ProcessSimpleDescReq_3
|
||
\ 000042 A3 INC DPTR
|
||
\ 000043 E0 MOVX A,@DPTR
|
||
\ 000044 6B XRL A,R3
|
||
\ ??ZDO_ProcessSimpleDescReq_3:
|
||
\ 000045 701B JNZ ??ZDO_ProcessSimpleDescReq_4
|
||
699 {
|
||
700 free = afFindSimpleDesc( &sDesc, endPoint );
|
||
\ 000047 ; Setup parameters for call to function afFindSimpleDesc
|
||
\ 000047 AA.. MOV R2,?XSP + 0
|
||
\ 000049 AB.. MOV R3,?XSP + 1
|
||
\ 00004B 12.... LCALL `??afFindSimpleDesc::?relay`; Banked call to: afFindSimpleDesc
|
||
\ 00004E E9 MOV A,R1
|
||
\ 00004F FA MOV R2,A
|
||
701 if ( sDesc == NULL )
|
||
\ 000050 85..82 MOV DPL,?XSP + 0
|
||
\ 000053 85..83 MOV DPH,?XSP + 1
|
||
\ 000056 12.... LCALL ??Subroutine260_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_500:
|
||
\ 000059 7003 JNZ ??ZDO_ProcessSimpleDescReq_5
|
||
702 {
|
||
703 stat = ZDP_NOT_ACTIVE;
|
||
\ 00005B 75..83 MOV ?V0,#-0x7d
|
||
\ ??ZDO_ProcessSimpleDescReq_5:
|
||
\ 00005E 8A.. MOV ?V1,R2
|
||
\ 000060 8003 SJMP ??ZDO_ProcessSimpleDescReq_2
|
||
704 }
|
||
705 }
|
||
706 else
|
||
707 {
|
||
708 if ( ZSTACK_ROUTER_BUILD )
|
||
709 {
|
||
710 stat = ZDP_DEVICE_NOT_FOUND;
|
||
\ ??ZDO_ProcessSimpleDescReq_4:
|
||
\ 000062 75..81 MOV ?V0,#-0x7f
|
||
711 }
|
||
712 else if ( ZSTACK_END_DEVICE_BUILD )
|
||
713 {
|
||
714 stat = ZDP_INVALID_REQTYPE;
|
||
715 }
|
||
716 }
|
||
717
|
||
718 ZDP_SimpleDescMsg( inMsg, stat, sDesc );
|
||
\ ??ZDO_ProcessSimpleDescReq_2:
|
||
\ 000065 ; Setup parameters for call to function ZDP_SimpleDescMsg
|
||
\ 000065 85..82 MOV DPL,?XSP + 0
|
||
\ 000068 85..83 MOV DPH,?XSP + 1
|
||
\ 00006B 12.... LCALL ?Subroutine189 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_307:
|
||
\ 00006E A9.. MOV R1,?V0
|
||
\ 000070 EE MOV A,R6
|
||
\ 000071 FA MOV R2,A
|
||
\ 000072 EF MOV A,R7
|
||
\ 000073 FB MOV R3,A
|
||
\ 000074 12.... LCALL `??ZDP_SimpleDescMsg::?relay`; Banked call to: ZDP_SimpleDescMsg
|
||
719
|
||
720 if ( free && sDesc )
|
||
\ 000077 E5.. MOV A,?V1
|
||
\ 000079 6014 JZ ??CrossCallReturnLabel_413
|
||
\ 00007B 85..82 MOV DPL,?XSP + 0
|
||
\ 00007E 85..83 MOV DPH,?XSP + 1
|
||
\ 000081 12.... LCALL ??Subroutine260_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_501:
|
||
\ 000084 6009 JZ ??CrossCallReturnLabel_413
|
||
721 {
|
||
722 osal_mem_free( sDesc );
|
||
\ 000086 ; Setup parameters for call to function osal_mem_free
|
||
\ 000086 85..82 MOV DPL,?XSP + 0
|
||
\ 000089 85..83 MOV DPH,?XSP + 1
|
||
\ 00008C 12.... LCALL ??Subroutine241_0 & 0xFFFF
|
||
723 }
|
||
724 }
|
||
\ ??CrossCallReturnLabel_413:
|
||
\ 00008F 02.... LJMP ?Subroutine4 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine136:
|
||
\ 000000 EA MOV A,R2
|
||
\ 000001 REQUIRE ??Subroutine226_0
|
||
\ 000001 ; // Fall through to label ??Subroutine226_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine226_0:
|
||
\ 000000 12.... LCALL ??Subroutine247_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_455:
|
||
\ 000003 3F ADDC A,R7
|
||
\ 000004 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine241_0:
|
||
\ 000000 12.... LCALL ?Subroutine179 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_554:
|
||
\ 000003 12.... LCALL `??osal_mem_free::?relay`; Banked call to: osal_mem_free
|
||
\ 000006 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine85:
|
||
\ 000000 12.... LCALL ?Subroutine186 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_648:
|
||
\ 000003 8882 MOV DPL,R0
|
||
\ 000005 F583 MOV DPH,A
|
||
\ 000007 E0 MOVX A,@DPTR
|
||
\ 000008 FC MOV R4,A
|
||
\ 000009 A3 INC DPTR
|
||
\ 00000A E0 MOVX A,@DPTR
|
||
\ 00000B 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine179:
|
||
\ 000000 12.... LCALL ??Subroutine281_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_697:
|
||
\ 000003 FB MOV R3,A
|
||
\ 000004 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine260_0:
|
||
\ 000000 12.... LCALL ??Subroutine283_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_650:
|
||
\ 000003 E8 MOV A,R0
|
||
\ 000004 49 ORL A,R1
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine186:
|
||
\ 000000 F583 MOV DPH,A
|
||
\ 000002 REQUIRE ??Subroutine283_0
|
||
\ 000002 ; // Fall through to label ??Subroutine283_0
|
||
725
|
||
726 /*********************************************************************
|
||
727 * @fn ZDO_ProcessActiveEPReq
|
||
728 *
|
||
729 * @brief This function processes and responds to the
|
||
730 * Active_EP_req message.
|
||
731 *
|
||
732 * @param inMsg - incoming message (request)
|
||
733 *
|
||
734 * @return none
|
||
735 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
736 void ZDO_ProcessActiveEPReq( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ProcessActiveEPReq:
|
||
737 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V5
|
||
\ 000000 74F2 MOV A,#-0xe
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 14
|
||
\ 000005 ; Auto size: 0
|
||
\ 000005 8A.. MOV ?V4,R2
|
||
\ 000007 8B.. MOV ?V5,R3
|
||
738 byte cnt = 0;
|
||
\ 000009 75..00 MOV ?V0,#0x0
|
||
739 uint16 aoi;
|
||
740 byte stat = ZDP_SUCCESS;
|
||
\ 00000C 75..00 MOV ?V1,#0x0
|
||
741
|
||
742 aoi = BUILD_UINT16( inMsg->asdu[0], inMsg->asdu[1] );
|
||
\ 00000F 12.... LCALL ??Subroutine246_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_450:
|
||
\ 000012 35.. ADDC A,?V5
|
||
\ 000014 12.... LCALL ?Subroutine72 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_114:
|
||
\ 000017 FE MOV R6,A
|
||
\ 000018 E4 CLR A
|
||
\ 000019 39 ADDC A,R1
|
||
\ 00001A FF MOV R7,A
|
||
743
|
||
744 if ( aoi == NLME_GetShortAddr() )
|
||
\ 00001B ; Setup parameters for call to function NLME_GetShortAddr
|
||
\ 00001B 12.... LCALL `??NLME_GetShortAddr::?relay`; Banked call to: NLME_GetShortAddr
|
||
\ 00001E EA MOV A,R2
|
||
\ 00001F 6E XRL A,R6
|
||
\ 000020 7002 JNZ ??ZDO_ProcessActiveEPReq_0
|
||
\ 000022 EB MOV A,R3
|
||
\ 000023 6F XRL A,R7
|
||
\ ??ZDO_ProcessActiveEPReq_0:
|
||
\ 000024 7012 JNZ ??ZDO_ProcessActiveEPReq_1
|
||
745 {
|
||
746 cnt = afNumEndPoints() - 1; // -1 for ZDO endpoint descriptor
|
||
\ 000026 ; Setup parameters for call to function afNumEndPoints
|
||
\ 000026 12.... LCALL `??afNumEndPoints::?relay`; Banked call to: afNumEndPoints
|
||
\ 000029 E9 MOV A,R1
|
||
\ 00002A 14 DEC A
|
||
\ 00002B F5.. MOV ?V0,A
|
||
747 afEndPoints( (uint8 *)ZDOBuildBuf, true );
|
||
\ 00002D ; Setup parameters for call to function afEndPoints
|
||
\ 00002D 7901 MOV R1,#0x1
|
||
\ 00002F 7A.. MOV R2,#ZDOBuildBuf & 0xff
|
||
\ 000031 7B.. MOV R3,#(ZDOBuildBuf >> 8) & 0xff
|
||
\ 000033 12.... LCALL `??afEndPoints::?relay`; Banked call to: afEndPoints
|
||
\ 000036 8003 SJMP ??ZDO_ProcessActiveEPReq_2
|
||
748 }
|
||
749 else
|
||
750 {
|
||
751 stat = ZDP_INVALID_REQTYPE;
|
||
\ ??ZDO_ProcessActiveEPReq_1:
|
||
\ 000038 75..80 MOV ?V1,#-0x80
|
||
752 }
|
||
753
|
||
754 ZDP_ActiveEPRsp( inMsg->TransSeq, &(inMsg->srcAddr), stat,
|
||
755 aoi, cnt, (uint8 *)ZDOBuildBuf, inMsg->SecurityUse );
|
||
\ ??ZDO_ProcessActiveEPReq_2:
|
||
\ 00003B ; Setup parameters for call to function ZDP_EPRsp
|
||
\ 00003B 12.... LCALL ?Subroutine148 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_625:
|
||
\ 00003E 35.. ADDC A,?V5
|
||
\ 000040 12.... LCALL ??Subroutine231_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_373:
|
||
\ 000043 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 000046 75.... MOV ?V2,#ZDOBuildBuf & 0xff
|
||
\ 000049 75.... MOV ?V3,#(ZDOBuildBuf >> 8) & 0xff
|
||
\ 00004C 78.. MOV R0,#?V2
|
||
\ 00004E 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000051 78.. MOV R0,#?V0
|
||
\ 000053 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 000056 8E.. MOV ?V2,R6
|
||
\ 000058 8F.. MOV ?V3,R7
|
||
\ 00005A 78.. MOV R0,#?V2
|
||
\ 00005C 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 00005F E5.. MOV A,?V1
|
||
\ 000061 F5.. MOV ?V0,A
|
||
\ 000063 78.. MOV R0,#?V0
|
||
\ 000065 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 000068 12.... LCALL ?Subroutine145 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_234:
|
||
\ 00006B 12.... LCALL ?Subroutine202 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_326:
|
||
\ 00006E F9 MOV R1,A
|
||
\ 00006F 7A05 MOV R2,#0x5
|
||
\ 000071 7B80 MOV R3,#-0x80
|
||
\ 000073 12.... LCALL `??ZDP_EPRsp::?relay`; Banked call to: ZDP_EPRsp
|
||
\ 000076 7407 MOV A,#0x7
|
||
\ 000078 02.... LJMP ?Subroutine5 & 0xFFFF
|
||
756 }
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine231_0:
|
||
\ 000000 F583 MOV DPH,A
|
||
\ 000002 E0 MOVX A,@DPTR
|
||
\ 000003 F5.. MOV ?V2,A
|
||
\ 000005 78.. MOV R0,#?V2
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine72:
|
||
\ 000000 12.... LCALL ?Subroutine176 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_293:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine145:
|
||
\ 000000 E5.. MOV A,?V4
|
||
\ 000002 2402 ADD A,#0x2
|
||
\ 000004 FC MOV R4,A
|
||
\ 000005 E4 CLR A
|
||
\ 000006 35.. ADDC A,?V5
|
||
\ 000008 FD MOV R5,A
|
||
\ 000009 E5.. MOV A,?V4
|
||
\ 00000B 240F ADD A,#0xf
|
||
\ 00000D 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine246_0:
|
||
\ 000000 12.... LCALL ?Subroutine204 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_457:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine202:
|
||
\ 000000 F582 MOV DPL,A
|
||
\ 000002 E4 CLR A
|
||
\ 000003 35.. ADDC A,?V5
|
||
\ 000005 F583 MOV DPH,A
|
||
\ 000007 E0 MOVX A,@DPTR
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine148:
|
||
\ 000000 E5.. MOV A,?V4
|
||
\ 000002 REQUIRE ??Subroutine276_0
|
||
\ 000002 ; // Fall through to label ??Subroutine276_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine276_0:
|
||
\ 000000 240E ADD A,#0xe
|
||
\ 000002 F582 MOV DPL,A
|
||
\ 000004 E4 CLR A
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine5:
|
||
\ 000000 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 000003 REQUIRE ??Subroutine297_0
|
||
\ 000003 ; // Fall through to label ??Subroutine297_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine297_0:
|
||
\ 000000 7F06 MOV R7,#0x6
|
||
\ 000002 02.... LJMP ?BANKED_LEAVE_XDATA
|
||
757
|
||
758 /*********************************************************************
|
||
759 * @fn ZDO_ConvertOTAClusters
|
||
760 *
|
||
761 * @brief This function will convert the over-the-air cluster list
|
||
762 * format to an internal format.
|
||
763 *
|
||
764 * @param inMsg - incoming message (request)
|
||
765 *
|
||
766 * @return pointer to incremented inBuf
|
||
767 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
768 uint8 *ZDO_ConvertOTAClusters( uint8 cnt, uint8 *inBuf, uint16 *outList )
|
||
\ ZDO_ConvertOTAClusters:
|
||
769 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 74F6 MOV A,#-0xa
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 10
|
||
\ 000005 ; Auto size: 0
|
||
\ 000005 E9 MOV A,R1
|
||
\ 000006 FF MOV R7,A
|
||
770 uint8 x;
|
||
771
|
||
772 for ( x = 0; x < cnt; x++ )
|
||
\ 000007 7E00 MOV R6,#0x0
|
||
\ 000009 802F SJMP ??ZDO_ConvertOTAClusters_0
|
||
773 {
|
||
774 // convert ota format to internal
|
||
775 outList[x] = BUILD_UINT16( inBuf[0], inBuf[1] );
|
||
\ ??ZDO_ConvertOTAClusters_1:
|
||
\ 00000B 8A82 MOV DPL,R2
|
||
\ 00000D 8B83 MOV DPH,R3
|
||
\ 00000F E0 MOVX A,@DPTR
|
||
\ 000010 F5.. MOV ?V0,A
|
||
\ 000012 A3 INC DPTR
|
||
\ 000013 E0 MOVX A,@DPTR
|
||
\ 000014 F8 MOV R0,A
|
||
\ 000015 E4 CLR A
|
||
\ 000016 C8 XCH A,R0
|
||
\ 000017 F9 MOV R1,A
|
||
\ 000018 E5.. MOV A,?V0
|
||
\ 00001A 28 ADD A,R0
|
||
\ 00001B E4 CLR A
|
||
\ 00001C 39 ADDC A,R1
|
||
\ 00001D F5.. MOV ?V1,A
|
||
\ 00001F EE MOV A,R6
|
||
\ 000020 12.... LCALL ?Subroutine199 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_320:
|
||
\ 000023 EC MOV A,R4
|
||
\ 000024 28 ADD A,R0
|
||
\ 000025 F582 MOV DPL,A
|
||
\ 000027 ED MOV A,R5
|
||
\ 000028 39 ADDC A,R1
|
||
\ 000029 F583 MOV DPH,A
|
||
\ 00002B E5.. MOV A,?V0
|
||
\ 00002D F0 MOVX @DPTR,A
|
||
\ 00002E A3 INC DPTR
|
||
\ 00002F E5.. MOV A,?V1
|
||
\ 000031 F0 MOVX @DPTR,A
|
||
776 inBuf += sizeof( uint16 );
|
||
\ 000032 EA MOV A,R2
|
||
\ 000033 2402 ADD A,#0x2
|
||
\ 000035 FA MOV R2,A
|
||
\ 000036 5001 JNC ??ZDO_ConvertOTAClusters_2
|
||
\ 000038 0B INC R3
|
||
777 }
|
||
\ ??ZDO_ConvertOTAClusters_2:
|
||
\ 000039 0E INC R6
|
||
\ ??ZDO_ConvertOTAClusters_0:
|
||
\ 00003A EE MOV A,R6
|
||
\ 00003B C3 CLR C
|
||
\ 00003C 9F SUBB A,R7
|
||
\ 00003D 40CC JC ??ZDO_ConvertOTAClusters_1
|
||
778 return ( inBuf );
|
||
\ 00003F 02.... LJMP ??Subroutine225_0 & 0xFFFF
|
||
779 }
|
||
780
|
||
781 /*********************************************************************
|
||
782 * @fn ZDO_ProcessMatchDescReq
|
||
783 *
|
||
784 * @brief This function processes and responds to the
|
||
785 * Match_Desc_req message.
|
||
786 *
|
||
787 * @param inMsg - incoming message (request)
|
||
788 *
|
||
789 * @return none
|
||
790 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
791 void ZDO_ProcessMatchDescReq( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ProcessMatchDescReq:
|
||
792 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V5
|
||
\ 000000 REQUIRE ?V6
|
||
\ 000000 REQUIRE ?V7
|
||
\ 000000 74F0 MOV A,#-0x10
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 16
|
||
\ 000005 ; Auto size: 13
|
||
\ 000005 74F3 MOV A,#-0xd
|
||
\ 000007 12.... LCALL ?ALLOC_XSTACK8
|
||
\ 00000A 7402 MOV A,#0x2
|
||
\ 00000C 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00000F 12.... LCALL ??Subroutine242_0 & 0xFFFF
|
||
793 uint8 epCnt = 0;
|
||
\ ??CrossCallReturnLabel_425:
|
||
\ 000012 7408 MOV A,#0x8
|
||
\ 000014 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000017 E4 CLR A
|
||
\ 000018 F0 MOVX @DPTR,A
|
||
794 uint8 numInClusters;
|
||
795 uint16 *inClusters = NULL;
|
||
\ 000019 740B MOV A,#0xb
|
||
\ 00001B 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00001E E4 CLR A
|
||
\ 00001F F0 MOVX @DPTR,A
|
||
\ 000020 A3 INC DPTR
|
||
\ 000021 F0 MOVX @DPTR,A
|
||
796 uint8 numOutClusters;
|
||
797 uint16 *outClusters = NULL;
|
||
\ 000022 7409 MOV A,#0x9
|
||
\ 000024 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000027 E4 CLR A
|
||
\ 000028 F0 MOVX @DPTR,A
|
||
\ 000029 A3 INC DPTR
|
||
\ 00002A F0 MOVX @DPTR,A
|
||
798 epList_t *epDesc;
|
||
799 SimpleDescriptionFormat_t *sDesc = NULL;
|
||
800 uint8 allocated;
|
||
801 uint8 *msg;
|
||
802 uint16 aoi;
|
||
803 uint16 profileID;
|
||
804
|
||
805 // Parse the incoming message
|
||
806 msg = inMsg->asdu;
|
||
\ 00002B 7402 MOV A,#0x2
|
||
\ 00002D 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000030 12.... LCALL ?Subroutine87 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_139:
|
||
\ 000033 12.... LCALL ??Subroutine223_0 & 0xFFFF
|
||
807 aoi = BUILD_UINT16( msg[0], msg[1] );
|
||
\ ??CrossCallReturnLabel_357:
|
||
\ 000036 85..82 MOV DPL,?V0
|
||
\ 000039 F583 MOV DPH,A
|
||
\ 00003B 12.... LCALL ?Subroutine116 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_368:
|
||
\ 00003E 28 ADD A,R0
|
||
\ 00003F FE MOV R6,A
|
||
\ 000040 E4 CLR A
|
||
\ 000041 39 ADDC A,R1
|
||
\ 000042 FF MOV R7,A
|
||
808 profileID = BUILD_UINT16( msg[2], msg[3] );
|
||
\ 000043 85..82 MOV DPL,?V0
|
||
\ 000046 85..83 MOV DPH,?V1
|
||
\ 000049 A3 INC DPTR
|
||
\ 00004A A3 INC DPTR
|
||
\ 00004B E0 MOVX A,@DPTR
|
||
\ 00004C FA MOV R2,A
|
||
\ 00004D 85..82 MOV DPL,?V0
|
||
\ 000050 85..83 MOV DPH,?V1
|
||
\ 000053 A3 INC DPTR
|
||
\ 000054 A3 INC DPTR
|
||
\ 000055 A3 INC DPTR
|
||
\ 000056 E0 MOVX A,@DPTR
|
||
\ 000057 F9 MOV R1,A
|
||
\ 000058 EA MOV A,R2
|
||
\ 000059 F5.. MOV ?V4,A
|
||
\ 00005B E4 CLR A
|
||
\ 00005C 39 ADDC A,R1
|
||
\ 00005D F5.. MOV ?V5,A
|
||
809 msg += 4;
|
||
810
|
||
811 if ( ADDR_BCAST_NOT_ME == NLME_IsAddressBroadcast(aoi) )
|
||
\ 00005F ; Setup parameters for call to function NLME_IsAddressBroadcast
|
||
\ 00005F EE MOV A,R6
|
||
\ 000060 FA MOV R2,A
|
||
\ 000061 EF MOV A,R7
|
||
\ 000062 FB MOV R3,A
|
||
\ 000063 12.... LCALL `??NLME_IsAddressBroadcast::?relay`; Banked call to: NLME_IsAddressBroadcast
|
||
\ 000066 E9 MOV A,R1
|
||
\ 000067 6401 XRL A,#0x1
|
||
\ 000069 6016 JZ ??ZDO_ProcessMatchDescReq_0
|
||
812 {
|
||
813 ZDP_MatchDescRsp( inMsg->TransSeq, &(inMsg->srcAddr), ZDP_INVALID_REQTYPE,
|
||
814 ZDAppNwkAddr.addr.shortAddr, 0, NULL, inMsg->SecurityUse );
|
||
815 return;
|
||
816 }
|
||
817 else if ( (ADDR_NOT_BCAST == NLME_IsAddressBroadcast(aoi)) && (aoi != ZDAppNwkAddr.addr.shortAddr) )
|
||
\ 00006B ; Setup parameters for call to function NLME_IsAddressBroadcast
|
||
\ 00006B EE MOV A,R6
|
||
\ 00006C FA MOV R2,A
|
||
\ 00006D EF MOV A,R7
|
||
\ 00006E FB MOV R3,A
|
||
\ 00006F 12.... LCALL `??NLME_IsAddressBroadcast::?relay`; Banked call to: NLME_IsAddressBroadcast
|
||
\ 000072 E9 MOV A,R1
|
||
\ 000073 7048 JNZ ??ZDO_ProcessMatchDescReq_1
|
||
\ 000075 90.... MOV DPTR,#ZDAppNwkAddr
|
||
\ 000078 E0 MOVX A,@DPTR
|
||
\ 000079 6E XRL A,R6
|
||
\ 00007A 7003 JNZ ??ZDO_ProcessMatchDescReq_2
|
||
\ 00007C A3 INC DPTR
|
||
\ 00007D E0 MOVX A,@DPTR
|
||
\ 00007E 6F XRL A,R7
|
||
\ ??ZDO_ProcessMatchDescReq_2:
|
||
\ 00007F 603C JZ ??ZDO_ProcessMatchDescReq_1
|
||
818 {
|
||
819 ZDP_MatchDescRsp( inMsg->TransSeq, &(inMsg->srcAddr), ZDP_INVALID_REQTYPE,
|
||
820 ZDAppNwkAddr.addr.shortAddr, 0, NULL, inMsg->SecurityUse );
|
||
\ ??ZDO_ProcessMatchDescReq_0:
|
||
\ 000081 ; Setup parameters for call to function ZDP_EPRsp
|
||
\ 000081 7402 MOV A,#0x2
|
||
\ 000083 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000086 12.... LCALL ?Subroutine57 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_80:
|
||
\ 000089 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 00008C E4 CLR A
|
||
\ 00008D F5.. MOV ?V0,A
|
||
\ 00008F F5.. MOV ?V1,A
|
||
\ 000091 78.. MOV R0,#?V0
|
||
\ 000093 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000096 78.. MOV R0,#?V0
|
||
\ 000098 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 00009B 90.... MOV DPTR,#ZDAppNwkAddr
|
||
\ 00009E 12.... LCALL ?PUSH_XSTACK8_X_TWO
|
||
\ 0000A1 75..80 MOV ?V0,#-0x80
|
||
\ 0000A4 78.. MOV R0,#?V0
|
||
\ 0000A6 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 0000A9 7409 MOV A,#0x9
|
||
\ 0000AB 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000AE 12.... LCALL ?Subroutine71 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_111:
|
||
\ 0000B1 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000B4 12.... LCALL ?Subroutine55 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_77:
|
||
\ 0000B7 12.... LCALL ?DEALLOC_XSTACK8
|
||
821 return;
|
||
\ 0000BA 02.... LJMP ??CrossCallReturnLabel_416 & 0xFFFF
|
||
822 }
|
||
823
|
||
824 if ((numInClusters = *msg++) &&
|
||
825 (inClusters = (uint16*)osal_mem_alloc( numInClusters * sizeof( uint16 ) )))
|
||
\ ??ZDO_ProcessMatchDescReq_1:
|
||
\ 0000BD 85..82 MOV DPL,?V0
|
||
\ 0000C0 85..83 MOV DPH,?V1
|
||
\ 0000C3 A3 INC DPTR
|
||
\ 0000C4 A3 INC DPTR
|
||
\ 0000C5 12.... LCALL ?Subroutine107 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_371:
|
||
\ 0000C8 F0 MOVX @DPTR,A
|
||
\ 0000C9 E5.. MOV A,?V0
|
||
\ 0000CB 2405 ADD A,#0x5
|
||
\ 0000CD F5.. MOV ?V0,A
|
||
\ 0000CF 5002 JNC ??ZDO_ProcessMatchDescReq_3
|
||
\ 0000D1 05.. INC ?V1
|
||
\ ??ZDO_ProcessMatchDescReq_3:
|
||
\ 0000D3 E0 MOVX A,@DPTR
|
||
\ 0000D4 602C JZ ??ZDO_ProcessMatchDescReq_4
|
||
\ 0000D6 ; Setup parameters for call to function osal_mem_alloc
|
||
\ 0000D6 12.... LCALL ?Subroutine132 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_217:
|
||
\ 0000D9 740B MOV A,#0xb
|
||
\ 0000DB 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000DE 12.... LCALL ??Subroutine242_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_426:
|
||
\ 0000E1 740B MOV A,#0xb
|
||
\ 0000E3 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000E6 12.... LCALL ??Subroutine260_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_502:
|
||
\ 0000E9 6017 JZ ??ZDO_ProcessMatchDescReq_4
|
||
826 {
|
||
827 msg = ZDO_ConvertOTAClusters( numInClusters, msg, inClusters );
|
||
\ 0000EB ; Setup parameters for call to function ZDO_ConvertOTAClusters
|
||
\ 0000EB 740B MOV A,#0xb
|
||
\ 0000ED 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000F0 12.... LCALL ?Subroutine113 & 0xFFFF
|
||
828 }
|
||
\ ??CrossCallReturnLabel_187:
|
||
\ 0000F3 85..82 MOV DPL,?XSP + 0
|
||
\ 0000F6 85..83 MOV DPH,?XSP + 1
|
||
\ 0000F9 12.... LCALL ??Subroutine270_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_571:
|
||
\ 0000FC 8A.. MOV ?V0,R2
|
||
\ 0000FE 8B.. MOV ?V1,R3
|
||
\ 000100 8008 SJMP ??ZDO_ProcessMatchDescReq_5
|
||
829 else
|
||
830 {
|
||
831 numInClusters = 0;
|
||
\ ??ZDO_ProcessMatchDescReq_4:
|
||
\ 000102 85..82 MOV DPL,?XSP + 0
|
||
\ 000105 85..83 MOV DPH,?XSP + 1
|
||
\ 000108 E4 CLR A
|
||
\ 000109 F0 MOVX @DPTR,A
|
||
832 }
|
||
833
|
||
834 if ((numOutClusters = *msg++) &&
|
||
835 (outClusters = (uint16 *)osal_mem_alloc( numOutClusters * sizeof( uint16 ) )))
|
||
\ ??ZDO_ProcessMatchDescReq_5:
|
||
\ 00010A 85..82 MOV DPL,?V0
|
||
\ 00010D 85..83 MOV DPH,?V1
|
||
\ 000110 E0 MOVX A,@DPTR
|
||
\ 000111 C0E0 PUSH A
|
||
\ 000113 7401 MOV A,#0x1
|
||
\ 000115 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000118 D0E0 POP A
|
||
\ 00011A 12.... LCALL ?Subroutine49 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_72:
|
||
\ 00011D 8582.. MOV ?V0,DPL
|
||
\ 000120 8583.. MOV ?V1,DPH
|
||
\ 000123 7401 MOV A,#0x1
|
||
\ 000125 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000128 E0 MOVX A,@DPTR
|
||
\ 000129 6027 JZ ??ZDO_ProcessMatchDescReq_6
|
||
\ 00012B ; Setup parameters for call to function osal_mem_alloc
|
||
\ 00012B 12.... LCALL ?Subroutine132 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_218:
|
||
\ 00012E 7409 MOV A,#0x9
|
||
\ 000130 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000133 12.... LCALL ??Subroutine242_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_427:
|
||
\ 000136 7409 MOV A,#0x9
|
||
\ 000138 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00013B 12.... LCALL ??Subroutine260_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_503:
|
||
\ 00013E 6012 JZ ??ZDO_ProcessMatchDescReq_6
|
||
836 {
|
||
837 msg = ZDO_ConvertOTAClusters( numOutClusters, msg, outClusters );
|
||
\ 000140 ; Setup parameters for call to function ZDO_ConvertOTAClusters
|
||
\ 000140 7409 MOV A,#0x9
|
||
\ 000142 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000145 12.... LCALL ?Subroutine113 & 0xFFFF
|
||
838 }
|
||
\ ??CrossCallReturnLabel_188:
|
||
\ 000148 7401 MOV A,#0x1
|
||
\ 00014A 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00014D 12.... LCALL ??Subroutine270_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_572:
|
||
\ 000150 8007 SJMP ??ZDO_ProcessMatchDescReq_7
|
||
839 else
|
||
840 {
|
||
841 numOutClusters = 0;
|
||
\ ??ZDO_ProcessMatchDescReq_6:
|
||
\ 000152 7401 MOV A,#0x1
|
||
\ 000154 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000157 E4 CLR A
|
||
\ 000158 F0 MOVX @DPTR,A
|
||
842 }
|
||
843
|
||
844 // First count the number of endpoints that match.
|
||
845 epDesc = epList;
|
||
\ ??ZDO_ProcessMatchDescReq_7:
|
||
\ 000159 90.... MOV DPTR,#epList
|
||
\ 00015C 805F SJMP ??CrossCallReturnLabel_141
|
||
846 while ( epDesc )
|
||
847 {
|
||
848 // Don't search endpoint 0 and check if response is allowed
|
||
849 if ( epDesc->epDesc->endPoint != ZDO_EP && (epDesc->flags&eEP_AllowMatch) )
|
||
850 {
|
||
851 if ( epDesc->pfnDescCB )
|
||
852 {
|
||
853 sDesc = (SimpleDescriptionFormat_t *)epDesc->pfnDescCB( AF_DESCRIPTOR_SIMPLE, epDesc->epDesc->endPoint );
|
||
854 allocated = TRUE;
|
||
855 }
|
||
856 else
|
||
857 {
|
||
858 sDesc = epDesc->epDesc->simpleDesc;
|
||
859 allocated = FALSE;
|
||
860 }
|
||
861
|
||
862 if ( sDesc && sDesc->AppProfId == profileID )
|
||
863 {
|
||
864 uint8 *uint8Buf = (uint8 *)ZDOBuildBuf;
|
||
865
|
||
866 // Are there matching input clusters?
|
||
867 if ((ZDO_AnyClusterMatches( numInClusters, inClusters,
|
||
868 sDesc->AppNumInClusters, sDesc->pAppInClusterList )) ||
|
||
869 // Are there matching output clusters?
|
||
870 (ZDO_AnyClusterMatches( numOutClusters, outClusters,
|
||
871 sDesc->AppNumOutClusters, sDesc->pAppOutClusterList )))
|
||
872 {
|
||
873 // Notify the endpoint of the match.
|
||
874 uint8 bufLen = sizeof( ZDO_MatchDescRspSent_t ) + (numOutClusters + numInClusters) * sizeof(uint16);
|
||
875 ZDO_MatchDescRspSent_t *pRspSent = (ZDO_MatchDescRspSent_t *) osal_msg_allocate( bufLen );
|
||
876
|
||
877 if (pRspSent)
|
||
878 {
|
||
879 pRspSent->hdr.event = ZDO_MATCH_DESC_RSP_SENT;
|
||
880 pRspSent->nwkAddr = inMsg->srcAddr.addr.shortAddr;
|
||
881 pRspSent->numInClusters = numInClusters;
|
||
882 pRspSent->numOutClusters = numOutClusters;
|
||
883
|
||
884 if (numInClusters)
|
||
885 {
|
||
886 pRspSent->pInClusters = (uint16*) (pRspSent + 1);
|
||
887 osal_memcpy(pRspSent->pInClusters, inClusters, numInClusters * sizeof(uint16));
|
||
888 }
|
||
889 else
|
||
890 {
|
||
891 pRspSent->pInClusters = NULL;
|
||
892 }
|
||
893
|
||
894 if (numOutClusters)
|
||
895 {
|
||
896 pRspSent->pOutClusters = (uint16*)(pRspSent + 1) + numInClusters;
|
||
897 osal_memcpy(pRspSent->pOutClusters, outClusters, numOutClusters * sizeof(uint16));
|
||
898 }
|
||
899 else
|
||
900 {
|
||
901 pRspSent->pOutClusters = NULL;
|
||
\ ??ZDO_ProcessMatchDescReq_8:
|
||
\ 00015E 85..82 MOV DPL,?V6
|
||
\ 000161 85..83 MOV DPH,?V7
|
||
\ 000164 A3 INC DPTR
|
||
\ 000165 A3 INC DPTR
|
||
\ 000166 A3 INC DPTR
|
||
\ 000167 A3 INC DPTR
|
||
\ 000168 A3 INC DPTR
|
||
\ 000169 A3 INC DPTR
|
||
\ 00016A A3 INC DPTR
|
||
\ 00016B A3 INC DPTR
|
||
\ 00016C E4 CLR A
|
||
\ 00016D F0 MOVX @DPTR,A
|
||
\ 00016E A3 INC DPTR
|
||
\ 00016F F0 MOVX @DPTR,A
|
||
902 }
|
||
903
|
||
904 osal_msg_send( *epDesc->epDesc->task_id, (uint8 *)pRspSent );
|
||
\ ??ZDO_ProcessMatchDescReq_9:
|
||
\ 000170 ; Setup parameters for call to function osal_msg_send
|
||
\ 000170 AA.. MOV R2,?V6
|
||
\ 000172 AB.. MOV R3,?V7
|
||
\ 000174 7404 MOV A,#0x4
|
||
\ 000176 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000179 12.... LCALL ?Subroutine73 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_116:
|
||
\ 00017C 12.... LCALL ??Subroutine237_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_397:
|
||
\ 00017F F9 MOV R1,A
|
||
\ 000180 12.... LCALL `??osal_msg_send::?relay`; Banked call to: osal_msg_send
|
||
905 }
|
||
906
|
||
907 uint8Buf[epCnt++] = sDesc->EndPoint;
|
||
\ ??ZDO_ProcessMatchDescReq_10:
|
||
\ 000183 7406 MOV A,#0x6
|
||
\ 000185 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000188 12.... LCALL ??Subroutine238_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_393:
|
||
\ 00018B C0E0 PUSH A
|
||
\ 00018D 7408 MOV A,#0x8
|
||
\ 00018F 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000192 E0 MOVX A,@DPTR
|
||
\ 000193 F8 MOV R0,A
|
||
\ 000194 74.. MOV A,#ZDOBuildBuf & 0xff
|
||
\ 000196 28 ADD A,R0
|
||
\ 000197 F582 MOV DPL,A
|
||
\ 000199 E4 CLR A
|
||
\ 00019A 34.. ADDC A,#(ZDOBuildBuf >> 8) & 0xff
|
||
\ 00019C F583 MOV DPH,A
|
||
\ 00019E D0E0 POP A
|
||
\ 0001A0 F0 MOVX @DPTR,A
|
||
\ 0001A1 7408 MOV A,#0x8
|
||
\ 0001A3 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0001A6 E0 MOVX A,@DPTR
|
||
\ 0001A7 04 INC A
|
||
\ 0001A8 F0 MOVX @DPTR,A
|
||
908 }
|
||
909 }
|
||
910
|
||
911 if ( allocated )
|
||
\ ??ZDO_ProcessMatchDescReq_11:
|
||
\ 0001A9 A2.. MOV C,?VB.0
|
||
\ 0001AB 5008 JNC ??CrossCallReturnLabel_414
|
||
912 {
|
||
913 osal_mem_free( sDesc );
|
||
\ 0001AD ; Setup parameters for call to function osal_mem_free
|
||
\ 0001AD 7406 MOV A,#0x6
|
||
\ 0001AF 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0001B2 12.... LCALL ??Subroutine241_0 & 0xFFFF
|
||
914 }
|
||
915 }
|
||
916 epDesc = epDesc->nextDesc;
|
||
\ ??CrossCallReturnLabel_414:
|
||
\ 0001B5 7404 MOV A,#0x4
|
||
\ 0001B7 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0001BA 12.... LCALL ?Subroutine88 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_141:
|
||
\ 0001BD 12.... LCALL ??Subroutine253_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_464:
|
||
\ 0001C0 7404 MOV A,#0x4
|
||
\ 0001C2 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0001C5 12.... LCALL ??Subroutine294_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_728:
|
||
\ 0001C8 7404 MOV A,#0x4
|
||
\ 0001CA 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0001CD 12.... LCALL ??Subroutine260_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_504:
|
||
\ 0001D0 7003 JNZ $+5
|
||
\ 0001D2 02.... LJMP ??ZDO_ProcessMatchDescReq_12 & 0xFFFF
|
||
\ 0001D5 7404 MOV A,#0x4
|
||
\ 0001D7 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0001DA 12.... LCALL ?Subroutine68 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_399:
|
||
\ 0001DD 60D6 JZ ??CrossCallReturnLabel_414
|
||
\ 0001DF 7404 MOV A,#0x4
|
||
\ 0001E1 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0001E4 E0 MOVX A,@DPTR
|
||
\ 0001E5 F8 MOV R0,A
|
||
\ 0001E6 2408 ADD A,#0x8
|
||
\ 0001E8 F582 MOV DPL,A
|
||
\ 0001EA E4 CLR A
|
||
\ 0001EB 39 ADDC A,R1
|
||
\ 0001EC F583 MOV DPH,A
|
||
\ 0001EE E0 MOVX A,@DPTR
|
||
\ 0001EF A2E0 MOV C,0xE0 /* A */.0
|
||
\ 0001F1 50C2 JNC ??CrossCallReturnLabel_414
|
||
\ 0001F3 7404 MOV A,#0x4
|
||
\ 0001F5 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0001F8 12.... LCALL ??Subroutine298_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_740:
|
||
\ 0001FB 12.... LCALL ??Subroutine260_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_505:
|
||
\ 0001FE 6027 JZ ??ZDO_ProcessMatchDescReq_13
|
||
\ 000200 ; Setup parameters for indirect call
|
||
\ 000200 7404 MOV A,#0x4
|
||
\ 000202 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000205 E0 MOVX A,@DPTR
|
||
\ 000206 F8 MOV R0,A
|
||
\ 000207 12.... LCALL ?Subroutine68 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_400:
|
||
\ 00020A FA MOV R2,A
|
||
\ 00020B 7901 MOV R1,#0x1
|
||
\ 00020D 7404 MOV A,#0x4
|
||
\ 00020F 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000212 12.... LCALL ?Subroutine81 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_741:
|
||
\ 000215 12.... LCALL ?Subroutine88 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_142:
|
||
\ 000218 12.... LCALL ?CALL_IND
|
||
\ 00021B 7406 MOV A,#0x6
|
||
\ 00021D 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000220 12.... LCALL ??Subroutine242_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_428:
|
||
\ 000223 D2.. SETB ?VB.0
|
||
\ 000225 8015 SJMP ??ZDO_ProcessMatchDescReq_14
|
||
\ ??ZDO_ProcessMatchDescReq_13:
|
||
\ 000227 7404 MOV A,#0x4
|
||
\ 000229 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00022C 12.... LCALL ?Subroutine73 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_117:
|
||
\ 00022F 12.... LCALL ??Subroutine250_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_476:
|
||
\ 000232 7406 MOV A,#0x6
|
||
\ 000234 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000237 12.... LCALL ??Subroutine294_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_729:
|
||
\ 00023A C2.. CLR ?VB.0
|
||
\ ??ZDO_ProcessMatchDescReq_14:
|
||
\ 00023C 7406 MOV A,#0x6
|
||
\ 00023E 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000241 12.... LCALL ??Subroutine260_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_506:
|
||
\ 000244 7003 JNZ $+5
|
||
\ 000246 02.... LJMP ??ZDO_ProcessMatchDescReq_11 & 0xFFFF
|
||
\ 000249 7406 MOV A,#0x6
|
||
\ 00024B 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00024E 12.... LCALL ?Subroutine112 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_184:
|
||
\ 000251 A3 INC DPTR
|
||
\ 000252 E0 MOVX A,@DPTR
|
||
\ 000253 65.. XRL A,?V4
|
||
\ 000255 7004 JNZ ??ZDO_ProcessMatchDescReq_15
|
||
\ 000257 A3 INC DPTR
|
||
\ 000258 E0 MOVX A,@DPTR
|
||
\ 000259 65.. XRL A,?V5
|
||
\ ??ZDO_ProcessMatchDescReq_15:
|
||
\ 00025B 6003 JZ $+5
|
||
\ 00025D 02.... LJMP ??ZDO_ProcessMatchDescReq_11 & 0xFFFF
|
||
\ 000260 ; Setup parameters for call to function ZDO_AnyClusterMatches
|
||
\ 000260 E8 MOV A,R0
|
||
\ 000261 2407 ADD A,#0x7
|
||
\ 000263 F582 MOV DPL,A
|
||
\ 000265 E4 CLR A
|
||
\ 000266 39 ADDC A,R1
|
||
\ 000267 F583 MOV DPH,A
|
||
\ 000269 12.... LCALL ?PUSH_XSTACK8_X_TWO
|
||
\ 00026C 7408 MOV A,#0x8
|
||
\ 00026E 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000271 12.... LCALL ??Subroutine275_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_587:
|
||
\ 000274 2406 ADD A,#0x6
|
||
\ 000276 12.... LCALL ?Subroutine150 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_242:
|
||
\ 000279 FC MOV R4,A
|
||
\ 00027A 740D MOV A,#0xd
|
||
\ 00027C 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00027F 12.... LCALL ??Subroutine256_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_484:
|
||
\ 000282 7402 MOV A,#0x2
|
||
\ 000284 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000287 E0 MOVX A,@DPTR
|
||
\ 000288 F9 MOV R1,A
|
||
\ 000289 12.... LCALL `??ZDO_AnyClusterMatches::?relay`; Banked call to: ZDO_AnyClusterMatches
|
||
\ 00028C 7402 MOV A,#0x2
|
||
\ 00028E 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 000291 E9 MOV A,R1
|
||
\ 000292 703A JNZ ??ZDO_ProcessMatchDescReq_16
|
||
\ 000294 ; Setup parameters for call to function ZDO_AnyClusterMatches
|
||
\ 000294 7406 MOV A,#0x6
|
||
\ 000296 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000299 12.... LCALL ??Subroutine275_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_588:
|
||
\ 00029C 240A ADD A,#0xa
|
||
\ 00029E F582 MOV DPL,A
|
||
\ 0002A0 E4 CLR A
|
||
\ 0002A1 38 ADDC A,R0
|
||
\ 0002A2 F583 MOV DPH,A
|
||
\ 0002A4 12.... LCALL ?PUSH_XSTACK8_X_TWO
|
||
\ 0002A7 7408 MOV A,#0x8
|
||
\ 0002A9 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0002AC 12.... LCALL ?Subroutine89 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_144:
|
||
\ 0002AF E0 MOVX A,@DPTR
|
||
\ 0002B0 FC MOV R4,A
|
||
\ 0002B1 740B MOV A,#0xb
|
||
\ 0002B3 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0002B6 12.... LCALL ??Subroutine256_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_485:
|
||
\ 0002B9 7403 MOV A,#0x3
|
||
\ 0002BB 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0002BE E0 MOVX A,@DPTR
|
||
\ 0002BF F9 MOV R1,A
|
||
\ 0002C0 12.... LCALL `??ZDO_AnyClusterMatches::?relay`; Banked call to: ZDO_AnyClusterMatches
|
||
\ 0002C3 7402 MOV A,#0x2
|
||
\ 0002C5 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 0002C8 E9 MOV A,R1
|
||
\ 0002C9 7003 JNZ $+5
|
||
\ 0002CB 02.... LJMP ??ZDO_ProcessMatchDescReq_11 & 0xFFFF
|
||
\ ??ZDO_ProcessMatchDescReq_16:
|
||
\ 0002CE ; Setup parameters for call to function osal_msg_allocate
|
||
\ 0002CE 85..82 MOV DPL,?XSP + 0
|
||
\ 0002D1 85..83 MOV DPH,?XSP + 1
|
||
\ 0002D4 E0 MOVX A,@DPTR
|
||
\ 0002D5 F8 MOV R0,A
|
||
\ 0002D6 7401 MOV A,#0x1
|
||
\ 0002D8 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0002DB E0 MOVX A,@DPTR
|
||
\ 0002DC 28 ADD A,R0
|
||
\ 0002DD C3 CLR C
|
||
\ 0002DE 33 RLC A
|
||
\ 0002DF 240A ADD A,#0xa
|
||
\ 0002E1 FA MOV R2,A
|
||
\ 0002E2 7B00 MOV R3,#0x0
|
||
\ 0002E4 12.... LCALL `??osal_msg_allocate::?relay`; Banked call to: osal_msg_allocate
|
||
\ 0002E7 8A.. MOV ?V6,R2
|
||
\ 0002E9 8B.. MOV ?V7,R3
|
||
\ 0002EB EA MOV A,R2
|
||
\ 0002EC 4B ORL A,R3
|
||
\ 0002ED 7003 JNZ $+5
|
||
\ 0002EF 02.... LJMP ??ZDO_ProcessMatchDescReq_10 & 0xFFFF
|
||
\ 0002F2 8A82 MOV DPL,R2
|
||
\ 0002F4 8B83 MOV DPH,R3
|
||
\ 0002F6 74D2 MOV A,#-0x2e
|
||
\ 0002F8 F0 MOVX @DPTR,A
|
||
\ 0002F9 7402 MOV A,#0x2
|
||
\ 0002FB 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0002FE 12.... LCALL ?Subroutine84 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_135:
|
||
\ 000301 8A82 MOV DPL,R2
|
||
\ 000303 8B83 MOV DPH,R3
|
||
\ 000305 A3 INC DPTR
|
||
\ 000306 A3 INC DPTR
|
||
\ 000307 12.... LCALL ?Subroutine30 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_30:
|
||
\ 00030A 8A82 MOV DPL,R2
|
||
\ 00030C 8B83 MOV DPH,R3
|
||
\ 00030E A3 INC DPTR
|
||
\ 00030F A3 INC DPTR
|
||
\ 000310 A3 INC DPTR
|
||
\ 000311 A3 INC DPTR
|
||
\ 000312 F0 MOVX @DPTR,A
|
||
\ 000313 7401 MOV A,#0x1
|
||
\ 000315 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000318 12.... LCALL ?Subroutine108 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_177:
|
||
\ 00031B A3 INC DPTR
|
||
\ 00031C 12.... LCALL ?Subroutine31 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_32:
|
||
\ 00031F 6036 JZ ??ZDO_ProcessMatchDescReq_17
|
||
\ 000321 EA MOV A,R2
|
||
\ 000322 240A ADD A,#0xa
|
||
\ 000324 F8 MOV R0,A
|
||
\ 000325 E4 CLR A
|
||
\ 000326 35.. ADDC A,?V7
|
||
\ 000328 F9 MOV R1,A
|
||
\ 000329 8A82 MOV DPL,R2
|
||
\ 00032B 8B83 MOV DPH,R3
|
||
\ 00032D A3 INC DPTR
|
||
\ 00032E A3 INC DPTR
|
||
\ 00032F A3 INC DPTR
|
||
\ 000330 A3 INC DPTR
|
||
\ 000331 A3 INC DPTR
|
||
\ 000332 12.... LCALL ?Subroutine41 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_57:
|
||
\ 000335 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000338 12.... LCALL ?Subroutine66 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_102:
|
||
\ 00033B 12.... LCALL ?PUSH_XSTACK_I_THREE
|
||
\ 00033E 7403 MOV A,#0x3
|
||
\ 000340 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000343 12.... LCALL ?Subroutine135 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_365:
|
||
\ 000346 8A82 MOV DPL,R2
|
||
\ 000348 8B83 MOV DPH,R3
|
||
\ 00034A A3 INC DPTR
|
||
\ 00034B A3 INC DPTR
|
||
\ 00034C A3 INC DPTR
|
||
\ 00034D A3 INC DPTR
|
||
\ 00034E A3 INC DPTR
|
||
\ 00034F 12.... LCALL ??Subroutine266_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_548:
|
||
\ 000352 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 000355 800D SJMP ??ZDO_ProcessMatchDescReq_18
|
||
\ ??ZDO_ProcessMatchDescReq_17:
|
||
\ 000357 8A82 MOV DPL,R2
|
||
\ 000359 8B83 MOV DPH,R3
|
||
\ 00035B A3 INC DPTR
|
||
\ 00035C A3 INC DPTR
|
||
\ 00035D A3 INC DPTR
|
||
\ 00035E A3 INC DPTR
|
||
\ 00035F A3 INC DPTR
|
||
\ 000360 E4 CLR A
|
||
\ 000361 F0 MOVX @DPTR,A
|
||
\ 000362 A3 INC DPTR
|
||
\ 000363 F0 MOVX @DPTR,A
|
||
\ ??ZDO_ProcessMatchDescReq_18:
|
||
\ 000364 7401 MOV A,#0x1
|
||
\ 000366 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000369 E0 MOVX A,@DPTR
|
||
\ 00036A 7003 JNZ $+5
|
||
\ 00036C 02.... LJMP ??ZDO_ProcessMatchDescReq_8 & 0xFFFF
|
||
\ 00036F 85..82 MOV DPL,?XSP + 0
|
||
\ 000372 85..83 MOV DPH,?XSP + 1
|
||
\ 000375 E0 MOVX A,@DPTR
|
||
\ 000376 12.... LCALL ?Subroutine134 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_221:
|
||
\ 000379 F8 MOV R0,A
|
||
\ 00037A E5.. MOV A,?V7
|
||
\ 00037C 39 ADDC A,R1
|
||
\ 00037D F9 MOV R1,A
|
||
\ 00037E E8 MOV A,R0
|
||
\ 00037F 240A ADD A,#0xa
|
||
\ 000381 5001 JNC ??ZDO_ProcessMatchDescReq_19
|
||
\ 000383 09 INC R1
|
||
\ ??ZDO_ProcessMatchDescReq_19:
|
||
\ 000384 85..82 MOV DPL,?V6
|
||
\ 000387 85..83 MOV DPH,?V7
|
||
\ 00038A A3 INC DPTR
|
||
\ 00038B A3 INC DPTR
|
||
\ 00038C A3 INC DPTR
|
||
\ 00038D A3 INC DPTR
|
||
\ 00038E A3 INC DPTR
|
||
\ 00038F A3 INC DPTR
|
||
\ 000390 A3 INC DPTR
|
||
\ 000391 A3 INC DPTR
|
||
\ 000392 12.... LCALL ??Subroutine295_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_718:
|
||
\ 000395 ; Setup parameters for call to function osal_memcpy
|
||
\ 000395 7409 MOV A,#0x9
|
||
\ 000397 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00039A 12.... LCALL ?Subroutine66 & 0xFFFF
|
||
917 }
|
||
\ ??CrossCallReturnLabel_103:
|
||
\ 00039D 12.... LCALL ?PUSH_XSTACK_I_THREE
|
||
\ 0003A0 7404 MOV A,#0x4
|
||
\ 0003A2 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0003A5 12.... LCALL ?Subroutine135 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_366:
|
||
\ 0003A8 85..82 MOV DPL,?V6
|
||
\ 0003AB 85..83 MOV DPH,?V7
|
||
\ 0003AE A3 INC DPTR
|
||
\ 0003AF A3 INC DPTR
|
||
\ 0003B0 A3 INC DPTR
|
||
\ 0003B1 A3 INC DPTR
|
||
\ 0003B2 A3 INC DPTR
|
||
\ 0003B3 A3 INC DPTR
|
||
\ 0003B4 A3 INC DPTR
|
||
\ 0003B5 A3 INC DPTR
|
||
\ 0003B6 12.... LCALL ??Subroutine266_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_549:
|
||
\ 0003B9 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 0003BC 02.... LJMP ??ZDO_ProcessMatchDescReq_9 & 0xFFFF
|
||
918
|
||
919 if ( epCnt )
|
||
\ ??ZDO_ProcessMatchDescReq_12:
|
||
\ 0003BF 7408 MOV A,#0x8
|
||
\ 0003C1 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0003C4 E0 MOVX A,@DPTR
|
||
\ 0003C5 6049 JZ ??ZDO_ProcessMatchDescReq_20
|
||
920 {
|
||
921 // Send the message if at least one match found.
|
||
922 if ( ZSuccess == ZDP_MatchDescRsp( inMsg->TransSeq, &(inMsg->srcAddr), ZDP_SUCCESS,
|
||
923 ZDAppNwkAddr.addr.shortAddr, epCnt, (uint8 *)ZDOBuildBuf, inMsg->SecurityUse ) )
|
||
\ 0003C7 ; Setup parameters for call to function ZDP_EPRsp
|
||
\ 0003C7 7402 MOV A,#0x2
|
||
\ 0003C9 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0003CC 12.... LCALL ?Subroutine57 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_81:
|
||
\ 0003CF 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 0003D2 75.... MOV ?V0,#ZDOBuildBuf & 0xff
|
||
\ 0003D5 75.... MOV ?V1,#(ZDOBuildBuf >> 8) & 0xff
|
||
\ 0003D8 78.. MOV R0,#?V0
|
||
\ 0003DA 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 0003DD 740B MOV A,#0xb
|
||
\ 0003DF 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0003E2 12.... LCALL ??Subroutine249_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_458:
|
||
\ 0003E5 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 0003E8 90.... MOV DPTR,#ZDAppNwkAddr
|
||
\ 0003EB 12.... LCALL ?PUSH_XSTACK8_X_TWO
|
||
\ 0003EE 75..00 MOV ?V0,#0x0
|
||
\ 0003F1 78.. MOV R0,#?V0
|
||
\ 0003F3 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 0003F6 7409 MOV A,#0x9
|
||
\ 0003F8 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0003FB 12.... LCALL ?Subroutine71 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_112:
|
||
\ 0003FE 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000401 12.... LCALL ?Subroutine55 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_78:
|
||
\ 000404 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 000407 E9 MOV A,R1
|
||
\ 000408 705B JNZ ??ZDO_ProcessMatchDescReq_21
|
||
924 {
|
||
925 #if defined( LCD_SUPPORTED )
|
||
926 HalLcdWriteScreen( "Match Desc Req", "Rsp Sent" );
|
||
\ 00040A ; Setup parameters for call to function HalLcdWriteScreen
|
||
\ 00040A 7C.. MOV R4,#`?<Constant "Rsp Sent">` & 0xff
|
||
\ 00040C 7D.. MOV R5,#(`?<Constant "Rsp Sent">` >> 8) & 0xff
|
||
\ 00040E 804E SJMP ??ZDO_ProcessMatchDescReq_22
|
||
927 #endif
|
||
928 }
|
||
929 }
|
||
930 else
|
||
931 {
|
||
932 // No match found
|
||
933 if (ADDR_NOT_BCAST == NLME_IsAddressBroadcast(aoi))
|
||
\ ??ZDO_ProcessMatchDescReq_20:
|
||
\ 000410 ; Setup parameters for call to function NLME_IsAddressBroadcast
|
||
\ 000410 EE MOV A,R6
|
||
\ 000411 FA MOV R2,A
|
||
\ 000412 EF MOV A,R7
|
||
\ 000413 FB MOV R3,A
|
||
\ 000414 12.... LCALL `??NLME_IsAddressBroadcast::?relay`; Banked call to: NLME_IsAddressBroadcast
|
||
\ 000417 E9 MOV A,R1
|
||
\ 000418 7040 JNZ ??ZDO_ProcessMatchDescReq_23
|
||
934 {
|
||
935 // send response message with match length = 0
|
||
936 ZDP_MatchDescRsp( inMsg->TransSeq, &(inMsg->srcAddr), ZDP_SUCCESS,
|
||
937 ZDAppNwkAddr.addr.shortAddr, 0, (uint8 *)ZDOBuildBuf, inMsg->SecurityUse );
|
||
\ 00041A ; Setup parameters for call to function ZDP_EPRsp
|
||
\ 00041A 7402 MOV A,#0x2
|
||
\ 00041C 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00041F 12.... LCALL ?Subroutine57 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_82:
|
||
\ 000422 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 000425 75.... MOV ?V0,#ZDOBuildBuf & 0xff
|
||
\ 000428 75.... MOV ?V1,#(ZDOBuildBuf >> 8) & 0xff
|
||
\ 00042B 78.. MOV R0,#?V0
|
||
\ 00042D 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000430 75..00 MOV ?V0,#0x0
|
||
\ 000433 78.. MOV R0,#?V0
|
||
\ 000435 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 000438 90.... MOV DPTR,#ZDAppNwkAddr
|
||
\ 00043B 12.... LCALL ?PUSH_XSTACK8_X_TWO
|
||
\ 00043E 78.. MOV R0,#?V0
|
||
\ 000440 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 000443 7409 MOV A,#0x9
|
||
\ 000445 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000448 12.... LCALL ?Subroutine71 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_113:
|
||
\ 00044B 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00044E 12.... LCALL ?Subroutine55 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_79:
|
||
\ 000451 12.... LCALL ?DEALLOC_XSTACK8
|
||
938 #if defined( LCD_SUPPORTED )
|
||
939 HalLcdWriteScreen( "Match Desc Req", "Rsp Non Matched" );
|
||
\ 000454 ; Setup parameters for call to function HalLcdWriteScreen
|
||
\ 000454 7C.. MOV R4,#`?<Constant "Rsp Non Matched">` & 0xff
|
||
\ 000456 7D.. MOV R5,#(`?<Constant "Rsp Non Matched">` >> 8) & 0xff
|
||
\ 000458 8004 SJMP ??ZDO_ProcessMatchDescReq_22
|
||
940 #endif
|
||
941 }
|
||
942 else
|
||
943 {
|
||
944 // no response mesage for broadcast message
|
||
945 #if defined( LCD_SUPPORTED )
|
||
946 HalLcdWriteScreen( "Match Desc Req", "Non Matched" );
|
||
\ ??ZDO_ProcessMatchDescReq_23:
|
||
\ 00045A ; Setup parameters for call to function HalLcdWriteScreen
|
||
\ 00045A 7C.. MOV R4,#`?<Constant "Non Matched">` & 0xff
|
||
\ 00045C 7D.. MOV R5,#(`?<Constant "Non Matched">` >> 8) & 0xff
|
||
\ ??ZDO_ProcessMatchDescReq_22:
|
||
\ 00045E 7A.. MOV R2,#`?<Constant "Match Desc Req">` & 0xff
|
||
\ 000460 7B.. MOV R3,#(`?<Constant "Match Desc Req">` >> 8) & 0xff
|
||
\ 000462 12.... LCALL `??HalLcdWriteScreen::?relay`; Banked call to: HalLcdWriteScreen
|
||
947 #endif
|
||
948 }
|
||
949 }
|
||
950
|
||
951 if ( inClusters != NULL )
|
||
\ ??ZDO_ProcessMatchDescReq_21:
|
||
\ 000465 740B MOV A,#0xb
|
||
\ 000467 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00046A 12.... LCALL ??Subroutine260_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_507:
|
||
\ 00046D 6008 JZ ??CrossCallReturnLabel_415
|
||
952 {
|
||
953 osal_mem_free( inClusters );
|
||
\ 00046F ; Setup parameters for call to function osal_mem_free
|
||
\ 00046F 740B MOV A,#0xb
|
||
\ 000471 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000474 12.... LCALL ??Subroutine241_0 & 0xFFFF
|
||
954 }
|
||
955
|
||
956 if ( outClusters != NULL )
|
||
\ ??CrossCallReturnLabel_415:
|
||
\ 000477 7409 MOV A,#0x9
|
||
\ 000479 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00047C 12.... LCALL ??Subroutine260_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_508:
|
||
\ 00047F 6008 JZ ??CrossCallReturnLabel_416
|
||
957 {
|
||
958 osal_mem_free( outClusters );
|
||
\ 000481 ; Setup parameters for call to function osal_mem_free
|
||
\ 000481 7409 MOV A,#0x9
|
||
\ 000483 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000486 12.... LCALL ??Subroutine241_0 & 0xFFFF
|
||
959 }
|
||
960 }
|
||
\ ??CrossCallReturnLabel_416:
|
||
\ 000489 740D MOV A,#0xd
|
||
\ 00048B 02.... LJMP ?Subroutine7 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine135:
|
||
\ 000000 E0 MOVX A,@DPTR
|
||
\ 000001 REQUIRE ??Subroutine227_0
|
||
\ 000001 ; // Fall through to label ??Subroutine227_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine116:
|
||
\ 000000 E0 MOVX A,@DPTR
|
||
\ 000001 FA MOV R2,A
|
||
\ 000002 REQUIRE ??Subroutine228_0
|
||
\ 000002 ; // Fall through to label ??Subroutine228_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine228_0:
|
||
\ 000000 A3 INC DPTR
|
||
\ 000001 E0 MOVX A,@DPTR
|
||
\ 000002 F8 MOV R0,A
|
||
\ 000003 E4 CLR A
|
||
\ 000004 C8 XCH A,R0
|
||
\ 000005 F9 MOV R1,A
|
||
\ 000006 EA MOV A,R2
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine113:
|
||
\ 000000 12.... LCALL ?Subroutine189 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_309:
|
||
\ 000003 AA.. MOV R2,?V0
|
||
\ 000005 AB.. MOV R3,?V1
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine107:
|
||
\ 000000 A3 INC DPTR
|
||
\ 000001 A3 INC DPTR
|
||
\ 000002 REQUIRE ??Subroutine229_0
|
||
\ 000002 ; // Fall through to label ??Subroutine229_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine229_0:
|
||
\ 000000 E0 MOVX A,@DPTR
|
||
\ 000001 85..82 MOV DPL,?XSP + 0
|
||
\ 000004 85..83 MOV DPH,?XSP + 1
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine73:
|
||
\ 000000 12.... LCALL ?Subroutine180 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_296:
|
||
\ 000003 F583 MOV DPH,A
|
||
\ 000005 8882 MOV DPL,R0
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine71:
|
||
\ 000000 E0 MOVX A,@DPTR
|
||
\ 000001 2402 ADD A,#0x2
|
||
\ 000003 FC MOV R4,A
|
||
\ 000004 A3 INC DPTR
|
||
\ 000005 E0 MOVX A,@DPTR
|
||
\ 000006 3400 ADDC A,#0x0
|
||
\ 000008 FD MOV R5,A
|
||
\ 000009 7409 MOV A,#0x9
|
||
\ 00000B 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine57:
|
||
\ 000000 12.... LCALL ??Subroutine258_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_604:
|
||
\ 000003 240E ADD A,#0xe
|
||
\ 000005 12.... LCALL ?Subroutine216 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_346:
|
||
\ 000008 F5.. MOV ?V0,A
|
||
\ 00000A 78.. MOV R0,#?V0
|
||
\ 00000C 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine55:
|
||
\ 000000 12.... LCALL ?Subroutine178 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_294:
|
||
\ 000003 7A06 MOV R2,#0x6
|
||
\ 000005 7B80 MOV R3,#-0x80
|
||
\ 000007 12.... LCALL `??ZDP_EPRsp::?relay`; Banked call to: ZDP_EPRsp
|
||
\ 00000A 7407 MOV A,#0x7
|
||
\ 00000C 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine87:
|
||
\ 000000 12.... LCALL ??Subroutine258_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_605:
|
||
\ 000003 12.... LCALL ??Subroutine247_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_454:
|
||
\ 000006 38 ADDC A,R0
|
||
\ 000007 F583 MOV DPH,A
|
||
\ 000009 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine68:
|
||
\ 000000 12.... LCALL ?Subroutine192 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_744:
|
||
\ 000003 REQUIRE ??Subroutine236_0
|
||
\ 000003 ; // Fall through to label ??Subroutine236_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine49:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 85..82 MOV DPL,?V0
|
||
\ 000004 85..83 MOV DPH,?V1
|
||
\ 000007 A3 INC DPTR
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine7:
|
||
\ 000000 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 000003 02.... LJMP ??Subroutine230_0 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine178:
|
||
\ 000000 12.... LCALL ?Subroutine213 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_616:
|
||
\ 000003 240F ADD A,#0xf
|
||
\ 000005 12.... LCALL ?Subroutine216 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_349:
|
||
\ 000008 F9 MOV R1,A
|
||
\ 000009 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine249_0:
|
||
\ 000000 E0 MOVX A,@DPTR
|
||
\ 000001 F5.. MOV ?V0,A
|
||
\ 000003 78.. MOV R0,#?V0
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine250_0:
|
||
\ 000000 A3 INC DPTR
|
||
\ 000001 REQUIRE ??Subroutine251_0
|
||
\ 000001 ; // Fall through to label ??Subroutine251_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine251_0:
|
||
\ 000000 A3 INC DPTR
|
||
\ 000001 REQUIRE ??Subroutine252_0
|
||
\ 000001 ; // Fall through to label ??Subroutine252_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine252_0:
|
||
\ 000000 A3 INC DPTR
|
||
\ 000001 REQUIRE ??Subroutine253_0
|
||
\ 000001 ; // Fall through to label ??Subroutine253_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine41:
|
||
\ 000000 E8 MOV A,R0
|
||
\ 000001 F0 MOVX @DPTR,A
|
||
\ 000002 A3 INC DPTR
|
||
\ 000003 E9 MOV A,R1
|
||
\ 000004 F0 MOVX @DPTR,A
|
||
\ 000005 ; Setup parameters for call to function osal_memcpy
|
||
\ 000005 ; Setup parameters for call to function AddrMgrEntryLookupNwk
|
||
\ 000005 ; Setup parameters for call to function AddrMgrEntryUpdate
|
||
\ 000005 740B MOV A,#0xb
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine31:
|
||
\ 000000 12.... LCALL ??Subroutine299_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_750:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine254_0:
|
||
\ 000000 E0 MOVX A,@DPTR
|
||
\ 000001 8A82 MOV DPL,R2
|
||
\ 000003 8B83 MOV DPH,R3
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine108:
|
||
\ 000000 12.... LCALL ??Subroutine254_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_479:
|
||
\ 000003 A3 INC DPTR
|
||
\ 000004 A3 INC DPTR
|
||
\ 000005 A3 INC DPTR
|
||
\ 000006 A3 INC DPTR
|
||
\ 000007 A3 INC DPTR
|
||
\ 000008 A3 INC DPTR
|
||
\ 000009 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine256_0:
|
||
\ 000000 12.... LCALL ?Subroutine179 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_555:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine258_0:
|
||
\ 000000 12.... LCALL ?Subroutine213 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_620:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine213:
|
||
\ 000000 12.... LCALL ?Subroutine220 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_656:
|
||
\ 000003 C8 XCH A,R0
|
||
\ 000004 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine266_0:
|
||
\ 000000 12.... LCALL ?Subroutine179 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_556:
|
||
\ 000003 12.... LCALL `??osal_memcpy::?relay`; Banked call to: osal_memcpy
|
||
\ 000006 7403 MOV A,#0x3
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine150:
|
||
\ 000000 12.... LCALL ?Subroutine216 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_348:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine84:
|
||
\ 000000 12.... LCALL ?Subroutine180 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_297:
|
||
\ 000003 F9 MOV R1,A
|
||
\ 000004 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine180:
|
||
\ 000000 12.... LCALL ?Subroutine220 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_652:
|
||
\ 000003 F583 MOV DPH,A
|
||
\ 000005 8882 MOV DPL,R0
|
||
\ 000007 A3 INC DPTR
|
||
\ 000008 A3 INC DPTR
|
||
\ 000009 12.... LCALL ?Subroutine220 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_653:
|
||
\ 00000C 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine216:
|
||
\ 000000 F582 MOV DPL,A
|
||
\ 000002 E4 CLR A
|
||
\ 000003 38 ADDC A,R0
|
||
\ 000004 F583 MOV DPH,A
|
||
\ 000006 E0 MOVX A,@DPTR
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine270_0:
|
||
\ 000000 E0 MOVX A,@DPTR
|
||
\ 000001 F9 MOV R1,A
|
||
\ 000002 12.... LCALL `??ZDO_ConvertOTAClusters::?relay`; Banked call to: ZDO_ConvertOTAClusters
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine275_0:
|
||
\ 000000 12.... LCALL ??Subroutine258_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_615:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine294_0:
|
||
\ 000000 E8 MOV A,R0
|
||
\ 000001 REQUIRE ??Subroutine295_0
|
||
\ 000001 ; // Fall through to label ??Subroutine295_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine295_0:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 A3 INC DPTR
|
||
\ 000002 E9 MOV A,R1
|
||
\ 000003 F0 MOVX @DPTR,A
|
||
\ 000004 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine132:
|
||
\ 000000 12.... LCALL ?Subroutine196 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_568:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine196:
|
||
\ 000000 25E0 ADD A,0xE0 /* A */
|
||
\ 000002 FA MOV R2,A
|
||
\ 000003 E4 CLR A
|
||
\ 000004 33 RLC A
|
||
\ 000005 FB MOV R3,A
|
||
\ 000006 12.... LCALL `??osal_mem_alloc::?relay`; Banked call to: osal_mem_alloc
|
||
\ 000009 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine89:
|
||
\ 000000 12.... LCALL ??Subroutine258_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_606:
|
||
\ 000003 2409 ADD A,#0x9
|
||
\ 000005 F582 MOV DPL,A
|
||
\ 000007 E4 CLR A
|
||
\ 000008 38 ADDC A,R0
|
||
\ 000009 F583 MOV DPH,A
|
||
\ 00000B 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine88:
|
||
\ 000000 E0 MOVX A,@DPTR
|
||
\ 000001 F8 MOV R0,A
|
||
\ 000002 12.... LCALL ?Subroutine192 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_745:
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine81:
|
||
\ 000000 E0 MOVX A,@DPTR
|
||
\ 000001 F8 MOV R0,A
|
||
\ 000002 REQUIRE ??Subroutine298_0
|
||
\ 000002 ; // Fall through to label ??Subroutine298_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine298_0:
|
||
\ 000000 12.... LCALL ?Subroutine192 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_747:
|
||
\ 000003 A3 INC DPTR
|
||
\ 000004 A3 INC DPTR
|
||
\ 000005 A3 INC DPTR
|
||
\ 000006 A3 INC DPTR
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine66:
|
||
\ 000000 12.... LCALL ??Subroutine223_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_358:
|
||
\ 000003 75..00 MOV ?V2,#0x0
|
||
\ 000006 78.. MOV R0,#?V0
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine30:
|
||
\ 000000 12.... LCALL ?Subroutine164 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_748:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine164:
|
||
\ 000000 E8 MOV A,R0
|
||
\ 000001 F0 MOVX @DPTR,A
|
||
\ 000002 A3 INC DPTR
|
||
\ 000003 E9 MOV A,R1
|
||
\ 000004 REQUIRE ??Subroutine299_0
|
||
\ 000004 ; // Fall through to label ??Subroutine299_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine299_0:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 85..82 MOV DPL,?XSP + 0
|
||
\ 000004 85..83 MOV DPH,?XSP + 1
|
||
\ 000007 E0 MOVX A,@DPTR
|
||
\ 000008 22 RET
|
||
961
|
||
962 /*********************************************************************
|
||
963 * @fn ZDO_ProcessBindUnbindReq()
|
||
964 *
|
||
965 * @brief Called to process a Bind or Unbind Request message.
|
||
966 *
|
||
967 * @param inMsg - incoming message (request)
|
||
968 * @param pReq - place to put parsed information
|
||
969 *
|
||
970 * @return none
|
||
971 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine2:
|
||
\ 000000 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 000003 REQUIRE ??Subroutine222_0
|
||
\ 000003 ; // Fall through to label ??Subroutine222_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
972 void ZDO_ProcessBindUnbindReq( zdoIncomingMsg_t *inMsg, ZDO_BindUnbindReq_t *pReq )
|
||
\ ZDO_ProcessBindUnbindReq:
|
||
973 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 74F4 MOV A,#-0xc
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 12
|
||
\ 000005 ; Auto size: 12
|
||
\ 000005 74F4 MOV A,#-0xc
|
||
\ 000007 12.... LCALL ?ALLOC_XSTACK8
|
||
\ 00000A 8A.. MOV ?V0,R2
|
||
\ 00000C 8B.. MOV ?V1,R3
|
||
\ 00000E EC MOV A,R4
|
||
\ 00000F FE MOV R6,A
|
||
\ 000010 ED MOV A,R5
|
||
\ 000011 FF MOV R7,A
|
||
974 zAddrType_t SourceAddr; // Binding Source addres
|
||
975 byte bindStat;
|
||
976
|
||
977 SourceAddr.addrMode = Addr64Bit;
|
||
\ 000012 740B MOV A,#0xb
|
||
\ 000014 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000017 7403 MOV A,#0x3
|
||
\ 000019 F0 MOVX @DPTR,A
|
||
978 osal_cpyExtAddr( SourceAddr.addr.extAddr, pReq->srcAddress );
|
||
\ 00001A ; Setup parameters for call to function sAddrExtCpy
|
||
\ 00001A 12.... LCALL ?XSTACK_DISP101_8
|
||
\ 00001D 12.... LCALL `??sAddrExtCpy::?relay`; Banked call to: sAddrExtCpy
|
||
979
|
||
980 // If the local device is not the primary binding cache
|
||
981 // check the src address of the bind request.
|
||
982 // If it is not the local device's extended address
|
||
983 // discard the request.
|
||
984 if ( !osal_ExtAddrEqual( SourceAddr.addr.extAddr, NLME_GetExtAddr()) ||
|
||
985 (pReq->dstAddress.addrMode != Addr64Bit &&
|
||
986 pReq->dstAddress.addrMode != AddrGroup) )
|
||
\ 000020 ; Setup parameters for call to function NLME_GetExtAddr
|
||
\ 000020 12.... LCALL ?Subroutine126 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_208:
|
||
\ 000023 ; Setup parameters for call to function sAddrExtCmp
|
||
\ 000023 7403 MOV A,#0x3
|
||
\ 000025 12.... LCALL ?XSTACK_DISP101_8
|
||
\ 000028 12.... LCALL `??sAddrExtCmp::?relay`; Banked call to: sAddrExtCmp
|
||
\ 00002B E9 MOV A,R1
|
||
\ 00002C 600A JZ ??ZDO_ProcessBindUnbindReq_0
|
||
\ 00002E 12.... LCALL ?Subroutine129 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_212:
|
||
\ 000031 6010 JZ ??ZDO_ProcessBindUnbindReq_1
|
||
\ 000033 E0 MOVX A,@DPTR
|
||
\ 000034 6401 XRL A,#0x1
|
||
\ 000036 600B JZ ??ZDO_ProcessBindUnbindReq_1
|
||
987 {
|
||
988 bindStat = ZDP_NOT_SUPPORTED;
|
||
\ ??ZDO_ProcessBindUnbindReq_0:
|
||
\ 000038 85..82 MOV DPL,?XSP + 0
|
||
\ 00003B 85..83 MOV DPH,?XSP + 1
|
||
\ 00003E 7484 MOV A,#-0x7c
|
||
\ 000040 02.... LJMP ??ZDO_ProcessBindUnbindReq_2 & 0xFFFF
|
||
989 }
|
||
990 else
|
||
991 {
|
||
992 // Check source & destination endpoints
|
||
993 if ( (pReq->srcEndpoint == 0 || pReq->srcEndpoint > MAX_ENDPOINTS)
|
||
994 || (( pReq->dstAddress.addrMode == Addr64Bit ) &&
|
||
995 (pReq->dstEndpoint == 0 || pReq->dstEndpoint > MAX_ENDPOINTS)) )
|
||
\ ??ZDO_ProcessBindUnbindReq_1:
|
||
\ 000043 8E82 MOV DPL,R6
|
||
\ 000045 8F83 MOV DPH,R7
|
||
\ 000047 A3 INC DPTR
|
||
\ 000048 A3 INC DPTR
|
||
\ 000049 A3 INC DPTR
|
||
\ 00004A A3 INC DPTR
|
||
\ 00004B A3 INC DPTR
|
||
\ 00004C A3 INC DPTR
|
||
\ 00004D A3 INC DPTR
|
||
\ 00004E A3 INC DPTR
|
||
\ 00004F E0 MOVX A,@DPTR
|
||
\ 000050 6016 JZ ??ZDO_ProcessBindUnbindReq_3
|
||
\ 000052 C3 CLR C
|
||
\ 000053 94F1 SUBB A,#-0xf
|
||
\ 000055 5011 JNC ??ZDO_ProcessBindUnbindReq_3
|
||
\ 000057 12.... LCALL ?Subroutine129 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_213:
|
||
\ 00005A 7017 JNZ ??ZDO_ProcessBindUnbindReq_4
|
||
\ 00005C EE MOV A,R6
|
||
\ 00005D 12.... LCALL ?Subroutine158 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_265:
|
||
\ 000060 E0 MOVX A,@DPTR
|
||
\ 000061 6005 JZ ??ZDO_ProcessBindUnbindReq_3
|
||
\ 000063 C3 CLR C
|
||
\ 000064 94F1 SUBB A,#-0xf
|
||
\ 000066 400B JC ??ZDO_ProcessBindUnbindReq_4
|
||
996 {
|
||
997 bindStat = ZDP_INVALID_EP;
|
||
\ ??ZDO_ProcessBindUnbindReq_3:
|
||
\ 000068 85..82 MOV DPL,?XSP + 0
|
||
\ 00006B 85..83 MOV DPH,?XSP + 1
|
||
\ 00006E 7482 MOV A,#-0x7e
|
||
\ 000070 02.... LJMP ??ZDO_ProcessBindUnbindReq_2 & 0xFFFF
|
||
998 }
|
||
999 else
|
||
1000 {
|
||
1001 if ( inMsg->clusterID == Bind_req )
|
||
\ ??ZDO_ProcessBindUnbindReq_4:
|
||
\ 000073 12.... LCALL ?Subroutine157 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_663:
|
||
\ 000076 E0 MOVX A,@DPTR
|
||
\ 000077 6421 XRL A,#0x21
|
||
\ 000079 7002 JNZ ??ZDO_ProcessBindUnbindReq_5
|
||
\ 00007B A3 INC DPTR
|
||
\ 00007C E0 MOVX A,@DPTR
|
||
\ ??ZDO_ProcessBindUnbindReq_5:
|
||
\ 00007D 7051 JNZ ??ZDO_ProcessBindUnbindReq_6
|
||
1002 {
|
||
1003 // Assume the table is full
|
||
1004 bindStat = ZDP_TABLE_FULL;
|
||
\ 00007F 85..82 MOV DPL,?XSP + 0
|
||
\ 000082 85..83 MOV DPH,?XSP + 1
|
||
\ 000085 748C MOV A,#-0x74
|
||
\ 000087 F0 MOVX @DPTR,A
|
||
1005
|
||
1006 #if defined( APP_TP ) || defined( APP_TP2 )
|
||
1007 // For ZigBee Conformance Testing
|
||
1008 if ( bindNumOfEntries() < gNWK_MAX_BINDING_ENTRIES )
|
||
1009 #endif
|
||
1010 {
|
||
1011 if ( APSME_BindRequest( pReq->srcEndpoint, pReq->clusterID,
|
||
1012 &(pReq->dstAddress), pReq->dstEndpoint ) == ZSuccess )
|
||
\ 000088 ; Setup parameters for call to function APSME_BindRequest
|
||
\ 000088 12.... LCALL ?Subroutine114 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_375:
|
||
\ 00008B 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 00008E 12.... LCALL ?Subroutine69 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_107:
|
||
\ 000091 12.... LCALL `??APSME_BindRequest::?relay`; Banked call to: APSME_BindRequest
|
||
\ 000094 7401 MOV A,#0x1
|
||
\ 000096 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 000099 E9 MOV A,R1
|
||
\ 00009A 7058 JNZ ??ZDO_ProcessBindUnbindReq_7
|
||
1013 {
|
||
1014 uint16 nwkAddr;
|
||
1015
|
||
1016 // valid entry
|
||
1017 bindStat = ZDP_SUCCESS;
|
||
\ 00009C 85..82 MOV DPL,?XSP + 0
|
||
\ 00009F 85..83 MOV DPH,?XSP + 1
|
||
\ 0000A2 E4 CLR A
|
||
\ 0000A3 F0 MOVX @DPTR,A
|
||
1018
|
||
1019 // Notify to save info into NV
|
||
1020 ZDApp_NVUpdate();
|
||
\ 0000A4 ; Setup parameters for call to function ZDApp_NVUpdate
|
||
\ 0000A4 12.... LCALL `??ZDApp_NVUpdate::?relay`; Banked call to: ZDApp_NVUpdate
|
||
1021
|
||
1022 // Check for the destination address
|
||
1023 if ( pReq->dstAddress.addrMode == Addr64Bit )
|
||
\ 0000A7 12.... LCALL ?Subroutine129 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_214:
|
||
\ 0000AA 7048 JNZ ??ZDO_ProcessBindUnbindReq_7
|
||
1024 {
|
||
1025 if ( APSME_LookupNwkAddr( pReq->dstAddress.addr.extAddr, &nwkAddr ) == FALSE )
|
||
\ 0000AC ; Setup parameters for call to function APSME_LookupNwkAddr
|
||
\ 0000AC 7401 MOV A,#0x1
|
||
\ 0000AE 12.... LCALL ?XSTACK_DISP102_8
|
||
\ 0000B1 EE MOV A,R6
|
||
\ 0000B2 240B ADD A,#0xb
|
||
\ 0000B4 FA MOV R2,A
|
||
\ 0000B5 E4 CLR A
|
||
\ 0000B6 3F ADDC A,R7
|
||
\ 0000B7 FB MOV R3,A
|
||
\ 0000B8 12.... LCALL `??APSME_LookupNwkAddr::?relay`; Banked call to: APSME_LookupNwkAddr
|
||
\ 0000BB E9 MOV A,R1
|
||
\ 0000BC 7036 JNZ ??ZDO_ProcessBindUnbindReq_7
|
||
1026 {
|
||
1027 ZDP_NwkAddrReq( pReq->dstAddress.addr.extAddr, ZDP_ADDR_REQTYPE_SINGLE, 0, 0 );
|
||
\ 0000BE ; Setup parameters for call to function ZDP_NwkAddrReq
|
||
\ 0000BE 7D00 MOV R5,#0x0
|
||
\ 0000C0 7C00 MOV R4,#0x0
|
||
\ 0000C2 7900 MOV R1,#0x0
|
||
\ 0000C4 EE MOV A,R6
|
||
\ 0000C5 240B ADD A,#0xb
|
||
\ 0000C7 FA MOV R2,A
|
||
\ 0000C8 E4 CLR A
|
||
\ 0000C9 3F ADDC A,R7
|
||
\ 0000CA FB MOV R3,A
|
||
\ 0000CB 12.... LCALL `??ZDP_NwkAddrReq::?relay`; Banked call to: ZDP_NwkAddrReq
|
||
\ 0000CE 8024 SJMP ??ZDO_ProcessBindUnbindReq_7
|
||
1028 }
|
||
1029 }
|
||
1030 }
|
||
1031 }
|
||
1032 }
|
||
1033 else // Unbind_req
|
||
1034 {
|
||
1035 if ( APSME_UnBindRequest( pReq->srcEndpoint, pReq->clusterID,
|
||
1036 &(pReq->dstAddress), pReq->dstEndpoint ) == ZSuccess )
|
||
\ ??ZDO_ProcessBindUnbindReq_6:
|
||
\ 0000D0 ; Setup parameters for call to function APSME_UnBindRequest
|
||
\ 0000D0 12.... LCALL ?Subroutine114 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_376:
|
||
\ 0000D3 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 0000D6 12.... LCALL ?Subroutine69 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_108:
|
||
\ 0000D9 12.... LCALL `??APSME_UnBindRequest::?relay`; Banked call to: APSME_UnBindRequest
|
||
\ 0000DC 7401 MOV A,#0x1
|
||
\ 0000DE 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 0000E1 E9 MOV A,R1
|
||
\ 0000E2 85..82 MOV DPL,?XSP + 0
|
||
\ 0000E5 85..83 MOV DPH,?XSP + 1
|
||
\ 0000E8 7007 JNZ ??ZDO_ProcessBindUnbindReq_8
|
||
1037 {
|
||
1038 bindStat = ZDP_SUCCESS;
|
||
\ 0000EA E4 CLR A
|
||
\ 0000EB F0 MOVX @DPTR,A
|
||
1039
|
||
1040 // Notify to save info into NV
|
||
1041 ZDApp_NVUpdate();
|
||
\ 0000EC ; Setup parameters for call to function ZDApp_NVUpdate
|
||
\ 0000EC 12.... LCALL `??ZDApp_NVUpdate::?relay`; Banked call to: ZDApp_NVUpdate
|
||
\ 0000EF 8003 SJMP ??ZDO_ProcessBindUnbindReq_7
|
||
1042 }
|
||
1043 else
|
||
1044 bindStat = ZDP_NO_ENTRY;
|
||
\ ??ZDO_ProcessBindUnbindReq_8:
|
||
\ 0000F1 7488 MOV A,#-0x78
|
||
\ ??ZDO_ProcessBindUnbindReq_2:
|
||
\ 0000F3 F0 MOVX @DPTR,A
|
||
1045 }
|
||
1046 }
|
||
1047 }
|
||
1048
|
||
1049 // Send back a response message
|
||
1050 ZDP_SendData( &(inMsg->TransSeq), &(inMsg->srcAddr),
|
||
1051 (inMsg->clusterID | ZDO_RESPONSE_BIT), 1, &bindStat,
|
||
1052 inMsg->SecurityUse );
|
||
\ ??ZDO_ProcessBindUnbindReq_7:
|
||
\ 0000F4 ; Setup parameters for call to function ZDP_SendData
|
||
\ 0000F4 E5.. MOV A,?V0
|
||
\ 0000F6 12.... LCALL ??Subroutine276_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_621:
|
||
\ 0000F9 35.. ADDC A,?V1
|
||
\ 0000FB 12.... LCALL ??Subroutine231_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_374:
|
||
\ 0000FE 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 000101 7401 MOV A,#0x1
|
||
\ 000103 12.... LCALL ?XSTACK_DISP100_8
|
||
\ 000106 88.. MOV ?V2,R0
|
||
\ 000108 89.. MOV ?V3,R1
|
||
\ 00010A 78.. MOV R0,#?V2
|
||
\ 00010C 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 00010F 12.... LCALL ?Subroutine157 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_664:
|
||
\ 000112 E0 MOVX A,@DPTR
|
||
\ 000113 F5.. MOV ?V2,A
|
||
\ 000115 A3 INC DPTR
|
||
\ 000116 E0 MOVX A,@DPTR
|
||
\ 000117 4480 ORL A,#0x80
|
||
\ 000119 F5.. MOV ?V3,A
|
||
\ 00011B 78.. MOV R0,#?V2
|
||
\ 00011D 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000120 12.... LCALL ?Subroutine143 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_229:
|
||
\ 000123 12.... LCALL ?DEALLOC_XSTACK8
|
||
1053 }
|
||
\ 000126 740C MOV A,#0xc
|
||
\ 000128 02.... LJMP ?Subroutine2 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine129:
|
||
\ 000000 EE MOV A,R6
|
||
\ 000001 12.... LCALL ?Subroutine203 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_442:
|
||
\ 000004 E0 MOVX A,@DPTR
|
||
\ 000005 6403 XRL A,#0x3
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine114:
|
||
\ 000000 EE MOV A,R6
|
||
\ 000001 2414 ADD A,#0x14
|
||
\ 000003 F582 MOV DPL,A
|
||
\ 000005 E4 CLR A
|
||
\ 000006 3F ADDC A,R7
|
||
\ 000007 REQUIRE ??Subroutine231_0
|
||
\ 000007 ; // Fall through to label ??Subroutine231_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine69:
|
||
\ 000000 EE MOV A,R6
|
||
\ 000001 240B ADD A,#0xb
|
||
\ 000003 FC MOV R4,A
|
||
\ 000004 E4 CLR A
|
||
\ 000005 3F ADDC A,R7
|
||
\ 000006 FD MOV R5,A
|
||
\ 000007 8E82 MOV DPL,R6
|
||
\ 000009 8F83 MOV DPH,R7
|
||
\ 00000B A3 INC DPTR
|
||
\ 00000C A3 INC DPTR
|
||
\ 00000D A3 INC DPTR
|
||
\ 00000E A3 INC DPTR
|
||
\ 00000F A3 INC DPTR
|
||
\ 000010 A3 INC DPTR
|
||
\ 000011 A3 INC DPTR
|
||
\ 000012 A3 INC DPTR
|
||
\ 000013 A3 INC DPTR
|
||
\ 000014 12.... LCALL ?Subroutine179 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_550:
|
||
\ 000017 8E82 MOV DPL,R6
|
||
\ 000019 8F83 MOV DPH,R7
|
||
\ 00001B A3 INC DPTR
|
||
\ 00001C A3 INC DPTR
|
||
\ 00001D A3 INC DPTR
|
||
\ 00001E A3 INC DPTR
|
||
\ 00001F A3 INC DPTR
|
||
\ 000020 A3 INC DPTR
|
||
\ 000021 A3 INC DPTR
|
||
\ 000022 A3 INC DPTR
|
||
\ 000023 E0 MOVX A,@DPTR
|
||
\ 000024 F9 MOV R1,A
|
||
\ 000025 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine158:
|
||
\ 000000 2414 ADD A,#0x14
|
||
\ 000002 F582 MOV DPL,A
|
||
\ 000004 E4 CLR A
|
||
\ 000005 3F ADDC A,R7
|
||
\ 000006 F583 MOV DPH,A
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine203:
|
||
\ 000000 12.... LCALL ?Subroutine217 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_711:
|
||
\ 000003 3F ADDC A,R7
|
||
\ 000004 F583 MOV DPH,A
|
||
\ 000006 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine143:
|
||
\ 000000 7901 MOV R1,#0x1
|
||
\ 000002 E5.. MOV A,?V0
|
||
\ 000004 2402 ADD A,#0x2
|
||
\ 000006 FC MOV R4,A
|
||
\ 000007 E4 CLR A
|
||
\ 000008 35.. ADDC A,?V1
|
||
\ 00000A FD MOV R5,A
|
||
\ 00000B E5.. MOV A,?V0
|
||
\ 00000D 240F ADD A,#0xf
|
||
\ 00000F FA MOV R2,A
|
||
\ 000010 E4 CLR A
|
||
\ 000011 35.. ADDC A,?V1
|
||
\ 000013 12.... LCALL ?Subroutine207 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_444:
|
||
\ 000016 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine126:
|
||
\ 000000 12.... LCALL `??NLME_GetExtAddr::?relay`; Banked call to: NLME_GetExtAddr
|
||
\ 000003 8A.. MOV ?V2,R2
|
||
\ 000005 8B.. MOV ?V3,R3
|
||
\ 000007 AC.. MOV R4,?V2
|
||
\ 000009 AD.. MOV R5,?V3
|
||
\ 00000B 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine207:
|
||
\ 000000 FB MOV R3,A
|
||
\ 000001 REQUIRE ??Subroutine245_0
|
||
\ 000001 ; // Fall through to label ??Subroutine245_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine245_0:
|
||
\ 000000 12.... LCALL `??ZDP_SendData::?relay`; Banked call to: ZDP_SendData
|
||
\ 000003 7405 MOV A,#0x5
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine157:
|
||
\ 000000 E5.. MOV A,?V0
|
||
\ 000002 240C ADD A,#0xc
|
||
\ 000004 REQUIRE ??Subroutine284_0
|
||
\ 000004 ; // Fall through to label ??Subroutine284_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine284_0:
|
||
\ 000000 12.... LCALL ?Subroutine205 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_675:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine205:
|
||
\ 000000 F582 MOV DPL,A
|
||
\ 000002 E4 CLR A
|
||
\ 000003 REQUIRE ??Subroutine285_0
|
||
\ 000003 ; // Fall through to label ??Subroutine285_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine285_0:
|
||
\ 000000 35.. ADDC A,?V1
|
||
\ 000002 F583 MOV DPH,A
|
||
\ 000004 22 RET
|
||
1054
|
||
1055 /*********************************************************************
|
||
1056 * @fn ZDO_UpdateAddrManager
|
||
1057 *
|
||
1058 * @brief Update the Address Manager.
|
||
1059 *
|
||
1060 * @param nwkAddr - network address
|
||
1061 * @param extAddr - extended address
|
||
1062 *
|
||
1063 * @return none
|
||
1064 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
1065 void ZDO_UpdateAddrManager( uint16 nwkAddr, uint8 *extAddr )
|
||
\ ZDO_UpdateAddrManager:
|
||
1066 {
|
||
\ 000000 C082 PUSH DPL
|
||
\ 000002 C083 PUSH DPH
|
||
\ 000004 ; Saved register size: 2
|
||
\ 000004 ; Auto size: 13
|
||
\ 000004 74F3 MOV A,#-0xd
|
||
\ 000006 12.... LCALL ?ALLOC_XSTACK8
|
||
1067 AddrMgrEntry_t addrEntry;
|
||
1068
|
||
1069 // Update the address manager
|
||
1070 addrEntry.user = ADDRMGR_USER_DEFAULT;
|
||
\ 000009 85..82 MOV DPL,?XSP + 0
|
||
\ 00000C 85..83 MOV DPH,?XSP + 1
|
||
\ 00000F E4 CLR A
|
||
\ 000010 F0 MOVX @DPTR,A
|
||
1071 addrEntry.nwkAddr = nwkAddr;
|
||
\ 000011 04 INC A
|
||
\ 000012 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000015 12.... LCALL ??Subroutine242_0 & 0xFFFF
|
||
1072 AddrMgrExtAddrSet( addrEntry.extAddr, extAddr );
|
||
\ ??CrossCallReturnLabel_429:
|
||
\ 000018 ; Setup parameters for call to function AddrMgrExtAddrSet
|
||
\ 000018 7403 MOV A,#0x3
|
||
\ 00001A 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00001D AA82 MOV R2,DPL
|
||
\ 00001F AB83 MOV R3,DPH
|
||
\ 000021 12.... LCALL `??AddrMgrExtAddrSet::?relay`; Banked call to: AddrMgrExtAddrSet
|
||
1073 AddrMgrEntryUpdate( &addrEntry );
|
||
\ 000024 ; Setup parameters for call to function AddrMgrEntryUpdate
|
||
\ 000024 AA.. MOV R2,?XSP + 0
|
||
\ 000026 AB.. MOV R3,?XSP + 1
|
||
\ 000028 12.... LCALL `??AddrMgrEntryUpdate::?relay`; Banked call to: AddrMgrEntryUpdate
|
||
1074 }
|
||
\ 00002B 740D MOV A,#0xd
|
||
\ 00002D 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 000030 02.... LJMP ?Subroutine0 & 0xFFFF
|
||
1075
|
||
1076 /*********************************************************************
|
||
1077 * @fn ZDO_ProcessServerDiscReq
|
||
1078 *
|
||
1079 * @brief Process the Server_Discovery_req message.
|
||
1080 *
|
||
1081 * @param inMsg - incoming message (request)
|
||
1082 *
|
||
1083 * @return none
|
||
1084 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
1085 void ZDO_ProcessServerDiscReq( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ProcessServerDiscReq:
|
||
1086 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 74F6 MOV A,#-0xa
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 10
|
||
\ 000005 ; Auto size: 0
|
||
\ 000005 12.... LCALL ?Subroutine130 & 0xFFFF
|
||
1087 uint16 serverMask = BUILD_UINT16( inMsg->asdu[0], inMsg->asdu[1] );
|
||
1088 uint16 matchMask = serverMask & ZDO_Config_Node_Descriptor.ServerMask;
|
||
\ ??CrossCallReturnLabel_438:
|
||
\ 000008 12.... LCALL ?Subroutine215 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_344:
|
||
\ 00000B 12.... LCALL ?Subroutine190 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_310:
|
||
\ 00000E F8 MOV R0,A
|
||
\ 00000F 90.... MOV DPTR,#ZDO_Config_Node_Descriptor + 8
|
||
\ 000012 E0 MOVX A,@DPTR
|
||
\ 000013 58 ANL A,R0
|
||
\ 000014 F5.. MOV ?V0,A
|
||
\ 000016 A3 INC DPTR
|
||
\ 000017 E0 MOVX A,@DPTR
|
||
\ 000018 59 ANL A,R1
|
||
\ 000019 F5.. MOV ?V1,A
|
||
1089
|
||
1090 if ( matchMask )
|
||
\ 00001B E5.. MOV A,?V0
|
||
\ 00001D 45.. ORL A,?V1
|
||
\ 00001F 601B JZ ??ZDO_ProcessServerDiscReq_0
|
||
1091 {
|
||
1092 ZDP_ServerDiscRsp( inMsg->TransSeq, &(inMsg->srcAddr), ZSUCCESS,
|
||
1093 ZDAppNwkAddr.addr.shortAddr, matchMask, inMsg->SecurityUse );
|
||
\ 000021 ; Setup parameters for call to function ZDP_ServerDiscRsp
|
||
\ 000021 78.. MOV R0,#?V0
|
||
\ 000023 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000026 90.... MOV DPTR,#ZDAppNwkAddr
|
||
\ 000029 12.... LCALL ?PUSH_XSTACK8_X_TWO
|
||
\ 00002C 12.... LCALL ?Subroutine146 & 0xFFFF
|
||
1094 }
|
||
\ ??CrossCallReturnLabel_236:
|
||
\ 00002F 7C00 MOV R4,#0x0
|
||
\ 000031 12.... LCALL ?Subroutine138 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_222:
|
||
\ 000034 12.... LCALL `??ZDP_ServerDiscRsp::?relay`; Banked call to: ZDP_ServerDiscRsp
|
||
\ 000037 7404 MOV A,#0x4
|
||
\ 000039 12.... LCALL ?DEALLOC_XSTACK8
|
||
1095 }
|
||
\ ??ZDO_ProcessServerDiscReq_0:
|
||
\ 00003C 02.... LJMP ??Subroutine225_0 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine130:
|
||
\ 000000 EA MOV A,R2
|
||
\ 000001 FE MOV R6,A
|
||
\ 000002 EB MOV A,R3
|
||
\ 000003 FF MOV R7,A
|
||
\ 000004 ; Setup parameters for call to function NLME_PermitJoiningRequest
|
||
\ 000004 REQUIRE ??Subroutine244_0
|
||
\ 000004 ; // Fall through to label ??Subroutine244_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine244_0:
|
||
\ 000000 EA MOV A,R2
|
||
\ 000001 12.... LCALL ?Subroutine203 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_443:
|
||
\ 000004 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine146:
|
||
\ 000000 12.... LCALL ?Subroutine198 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_318:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine138:
|
||
\ 000000 12.... LCALL ?Subroutine197 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_316:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine190:
|
||
\ 000000 12.... LCALL ??Subroutine289_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_689:
|
||
\ 000003 EA MOV A,R2
|
||
\ 000004 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine289_0:
|
||
\ 000000 12.... LCALL ??Subroutine281_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_698:
|
||
\ 000003 F9 MOV R1,A
|
||
\ 000004 22 RET
|
||
1096
|
||
1097 /*********************************************************************
|
||
1098 * Call Back Functions from APS - API
|
||
1099 */
|
||
1100
|
||
1101 /*********************************************************************
|
||
1102 * @fn ZDO_EndDeviceTimeoutCB
|
||
1103 *
|
||
1104 * @brief This function handles the binding timer for the End
|
||
1105 * Device Bind command.
|
||
1106 *
|
||
1107 * @param none
|
||
1108 *
|
||
1109 * @return none
|
||
1110 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
1111 void ZDO_EndDeviceTimeoutCB( void )
|
||
\ ZDO_EndDeviceTimeoutCB:
|
||
1112 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 74F6 MOV A,#-0xa
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 10
|
||
\ 000005 ; Auto size: 2
|
||
\ 000005 74FE MOV A,#-0x2
|
||
\ 000007 12.... LCALL ?ALLOC_XSTACK8
|
||
1113 #if defined ( REFLECTOR )
|
||
1114 byte stat;
|
||
1115 if ( ZDO_EDBind )
|
||
\ 00000A 90.... MOV DPTR,#ZDO_EDBind
|
||
\ 00000D 12.... LCALL ??Subroutine260_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_509:
|
||
\ 000010 7003 JNZ $+5
|
||
\ 000012 02.... LJMP ??ZDO_EndDeviceTimeoutCB_0 & 0xFFFF
|
||
1116 {
|
||
1117 stat = ZDO_EDBind->status;
|
||
1118
|
||
1119 // Send the response message to the first sent
|
||
1120 ZDO_SendEDBindRsp( ZDO_EDBind->SrcTransSeq, &(ZDO_EDBind->SrcAddr),
|
||
1121 stat, ZDO_EDBind->SecurityUse );
|
||
\ 000015 E8 MOV A,R0
|
||
\ 000016 2416 ADD A,#0x16
|
||
\ 000018 F582 MOV DPL,A
|
||
\ 00001A E4 CLR A
|
||
\ 00001B 39 ADDC A,R1
|
||
\ 00001C F583 MOV DPH,A
|
||
\ 00001E 12.... LCALL ??Subroutine229_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_370:
|
||
\ 000021 12.... LCALL ?Subroutine50 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_74:
|
||
\ 000024 F583 MOV DPH,A
|
||
\ 000026 8882 MOV DPL,R0
|
||
\ 000028 E0 MOVX A,@DPTR
|
||
\ 000029 C0E0 PUSH A
|
||
\ 00002B 7401 MOV A,#0x1
|
||
\ 00002D 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000030 D0E0 POP A
|
||
\ 000032 12.... LCALL ?Subroutine50 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_73:
|
||
\ 000035 C8 XCH A,R0
|
||
\ 000036 2415 ADD A,#0x15
|
||
\ 000038 12.... LCALL ?Subroutine99 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_461:
|
||
\ 00003B 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 00003E 7401 MOV A,#0x1
|
||
\ 000040 12.... LCALL ?XSTACK_DISP100_8
|
||
\ 000043 88.. MOV ?V0,R0
|
||
\ 000045 89.. MOV ?V1,R1
|
||
\ 000047 78.. MOV R0,#?V0
|
||
\ 000049 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 00004C 75..20 MOV ?V0,#0x20
|
||
\ 00004F 75..80 MOV ?V1,#-0x80
|
||
\ 000052 78.. MOV R0,#?V0
|
||
\ 000054 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000057 7901 MOV R1,#0x1
|
||
\ 000059 90.... MOV DPTR,#ZDO_EDBind
|
||
\ 00005C E0 MOVX A,@DPTR
|
||
\ 00005D 29 ADD A,R1
|
||
\ 00005E FC MOV R4,A
|
||
\ 00005F A3 INC DPTR
|
||
\ 000060 E0 MOVX A,@DPTR
|
||
\ 000061 3400 ADDC A,#0x0
|
||
\ 000063 FD MOV R5,A
|
||
\ 000064 7406 MOV A,#0x6
|
||
\ 000066 12.... LCALL ?XSTACK_DISP101_8
|
||
\ 000069 12.... LCALL ?Subroutine161 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_267:
|
||
\ 00006C 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 00006F ; Setup parameters for call to function HalLcdWriteString
|
||
\ 00006F 7901 MOV R1,#0x1
|
||
\ 000071 7A.. MOV R2,#`?<Constant "End Device Bind">` & 0xff
|
||
\ 000073 7B.. MOV R3,#(`?<Constant "End Device Bind">` >> 8) & 0xff
|
||
\ 000075 12.... LCALL `??HalLcdWriteString::?relay`; Banked call to: HalLcdWriteString
|
||
\ 000078 85..82 MOV DPL,?XSP + 0
|
||
\ 00007B 85..83 MOV DPH,?XSP + 1
|
||
\ 00007E E0 MOVX A,@DPTR
|
||
\ 00007F 7902 MOV R1,#0x2
|
||
\ 000081 7006 JNZ ??ZDO_EndDeviceTimeoutCB_1
|
||
\ 000083 ; Setup parameters for call to function HalLcdWriteString
|
||
\ 000083 7A.. MOV R2,#`?<Constant "Success Sent">` & 0xff
|
||
\ 000085 7B.. MOV R3,#(`?<Constant "Success Sent">` >> 8) & 0xff
|
||
\ 000087 8004 SJMP ??ZDO_EndDeviceTimeoutCB_2
|
||
\ ??ZDO_EndDeviceTimeoutCB_1:
|
||
\ 000089 ; Setup parameters for call to function HalLcdWriteString
|
||
\ 000089 7A.. MOV R2,#`?<Constant "Timeout">` & 0xff
|
||
\ 00008B 7B.. MOV R3,#(`?<Constant "Timeout">` >> 8) & 0xff
|
||
\ ??ZDO_EndDeviceTimeoutCB_2:
|
||
\ 00008D 12.... LCALL `??HalLcdWriteString::?relay`; Banked call to: HalLcdWriteString
|
||
1122
|
||
1123 ZDO_RemoveEndDeviceBind();
|
||
\ 000090 90.... MOV DPTR,#ZDO_EDBind
|
||
\ 000093 12.... LCALL ??Subroutine260_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_510:
|
||
\ 000096 603C JZ ??ZDO_EndDeviceTimeoutCB_0
|
||
\ 000098 E8 MOV A,R0
|
||
\ 000099 2410 ADD A,#0x10
|
||
\ 00009B F582 MOV DPL,A
|
||
\ 00009D E4 CLR A
|
||
\ 00009E 39 ADDC A,R1
|
||
\ 00009F 12.... LCALL ??Subroutine259_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_518:
|
||
\ 0000A2 600B JZ ??CrossCallReturnLabel_420
|
||
\ 0000A4 ; Setup parameters for call to function osal_mem_free
|
||
\ 0000A4 90.... MOV DPTR,#ZDO_EDBind
|
||
\ 0000A7 12.... LCALL ??Subroutine275_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_589:
|
||
\ 0000AA 2410 ADD A,#0x10
|
||
\ 0000AC 12.... LCALL ?Subroutine54 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_420:
|
||
\ 0000AF 90.... MOV DPTR,#ZDO_EDBind
|
||
\ 0000B2 12.... LCALL ??Subroutine275_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_590:
|
||
\ 0000B5 2413 ADD A,#0x13
|
||
\ 0000B7 12.... LCALL ?Subroutine53 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_522:
|
||
\ 0000BA 600B JZ ??CrossCallReturnLabel_421
|
||
\ 0000BC ; Setup parameters for call to function osal_mem_free
|
||
\ 0000BC 90.... MOV DPTR,#ZDO_EDBind
|
||
\ 0000BF 12.... LCALL ??Subroutine275_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_591:
|
||
\ 0000C2 2413 ADD A,#0x13
|
||
\ 0000C4 12.... LCALL ?Subroutine54 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_421:
|
||
\ 0000C7 ; Setup parameters for call to function osal_mem_free
|
||
\ 0000C7 90.... MOV DPTR,#ZDO_EDBind
|
||
\ 0000CA 12.... LCALL ??Subroutine241_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_419:
|
||
\ 0000CD 90.... MOV DPTR,#ZDO_EDBind
|
||
\ 0000D0 E4 CLR A
|
||
\ 0000D1 F0 MOVX @DPTR,A
|
||
\ 0000D2 A3 INC DPTR
|
||
\ 0000D3 F0 MOVX @DPTR,A
|
||
1124 }
|
||
1125 #endif // REFLECTOR
|
||
1126 }
|
||
\ ??ZDO_EndDeviceTimeoutCB_0:
|
||
\ 0000D4 02.... LJMP ?Subroutine4 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine50:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 ; Setup parameters for call to function ZDP_SendData
|
||
\ 000001 90.... MOV DPTR,#ZDO_EDBind
|
||
\ 000004 12.... LCALL ?Subroutine220 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_651:
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine54:
|
||
\ 000000 F582 MOV DPL,A
|
||
\ 000002 E4 CLR A
|
||
\ 000003 38 ADDC A,R0
|
||
\ 000004 REQUIRE ??Subroutine240_0
|
||
\ 000004 ; // Fall through to label ??Subroutine240_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine240_0:
|
||
\ 000000 F583 MOV DPH,A
|
||
\ 000002 REQUIRE ??Subroutine241_0
|
||
\ 000002 ; // Fall through to label ??Subroutine241_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine53:
|
||
\ 000000 F582 MOV DPL,A
|
||
\ 000002 E4 CLR A
|
||
\ 000003 38 ADDC A,R0
|
||
\ 000004 REQUIRE ??Subroutine259_0
|
||
\ 000004 ; // Fall through to label ??Subroutine259_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine259_0:
|
||
\ 000000 F583 MOV DPH,A
|
||
\ 000002 REQUIRE ??Subroutine260_0
|
||
\ 000002 ; // Fall through to label ??Subroutine260_0
|
||
1127
|
||
1128 /*********************************************************************
|
||
1129 * Optional Management Messages
|
||
1130 */
|
||
1131
|
||
1132 /*********************************************************************
|
||
1133 * @fn ZDO_ProcessMgmtLqiReq
|
||
1134 *
|
||
1135 * @brief This function handles parsing the incoming Management
|
||
1136 * LQI request and generate the response.
|
||
1137 *
|
||
1138 * Note: This function will limit the number of items returned
|
||
1139 * to ZDO_MAX_LQI_ITEMS items.
|
||
1140 *
|
||
1141 * @param inMsg - incoming message (request)
|
||
1142 *
|
||
1143 * @return none
|
||
1144 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
1145 void ZDO_ProcessMgmtLqiReq( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ProcessMgmtLqiReq:
|
||
1146 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V5
|
||
\ 000000 REQUIRE ?V6
|
||
\ 000000 REQUIRE ?V7
|
||
\ 000000 74F0 MOV A,#-0x10
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 16
|
||
\ 000005 ; Auto size: 42
|
||
\ 000005 74D6 MOV A,#-0x2a
|
||
\ 000007 12.... LCALL ?ALLOC_XSTACK8
|
||
\ 00000A 7404 MOV A,#0x4
|
||
\ 00000C 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00000F 12.... LCALL ??Subroutine242_0 & 0xFFFF
|
||
1147 byte x;
|
||
1148 byte index;
|
||
1149 byte numItems;
|
||
1150 byte maxItems;
|
||
1151 ZDP_MgmtLqiItem_t* table = NULL;
|
||
\ ??CrossCallReturnLabel_430:
|
||
\ 000012 7402 MOV A,#0x2
|
||
\ 000014 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000017 E4 CLR A
|
||
\ 000018 F0 MOVX @DPTR,A
|
||
\ 000019 A3 INC DPTR
|
||
\ 00001A F0 MOVX @DPTR,A
|
||
1152 ZDP_MgmtLqiItem_t* item;
|
||
1153 neighborEntry_t entry;
|
||
1154 byte aItems;
|
||
1155 associated_devices_t *aDevice;
|
||
1156 AddrMgrEntry_t nwkEntry;
|
||
1157 uint8 StartIndex = inMsg->asdu[0];
|
||
\ 00001B 7404 MOV A,#0x4
|
||
\ 00001D 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000020 12.... LCALL ?Subroutine87 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_140:
|
||
\ 000023 12.... LCALL ??Subroutine238_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_394:
|
||
\ 000026 F5.. MOV ?V7,A
|
||
1158
|
||
1159 // Get the number of neighbor items
|
||
1160 NLME_GetRequest( nwkNumNeighborTableEntries, 0, &maxItems );
|
||
\ 000028 ; Setup parameters for call to function NLME_GetRequest
|
||
\ 000028 AC.. MOV R4,?XSP + 0
|
||
\ 00002A AD.. MOV R5,?XSP + 1
|
||
\ 00002C 7A00 MOV R2,#0x0
|
||
\ 00002E 7B00 MOV R3,#0x0
|
||
\ 000030 799C MOV R1,#-0x64
|
||
\ 000032 12.... LCALL `??NLME_GetRequest::?relay`; Banked call to: NLME_GetRequest
|
||
1161
|
||
1162 // Get the number of associated items
|
||
1163 aItems = (uint8)AssocCount( PARENT, CHILD_FFD_RX_IDLE );
|
||
\ 000035 ; Setup parameters for call to function AssocCount
|
||
\ 000035 7A04 MOV R2,#0x4
|
||
\ 000037 7900 MOV R1,#0x0
|
||
\ 000039 12.... LCALL `??AssocCount::?relay`; Banked call to: AssocCount
|
||
\ 00003C 7401 MOV A,#0x1
|
||
\ 00003E 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000041 EA MOV A,R2
|
||
\ 000042 12.... LCALL ?Subroutine31 & 0xFFFF
|
||
1164
|
||
1165 // Total number of items
|
||
1166 maxItems += aItems;
|
||
\ ??CrossCallReturnLabel_33:
|
||
\ 000045 2A ADD A,R2
|
||
\ 000046 F0 MOVX @DPTR,A
|
||
1167
|
||
1168 // Start with the supplied index
|
||
1169 if ( maxItems > StartIndex )
|
||
\ 000047 F8 MOV R0,A
|
||
\ 000048 E5.. MOV A,?V7
|
||
\ 00004A C3 CLR C
|
||
\ 00004B 98 SUBB A,R0
|
||
\ 00004C 4003 JC $+5
|
||
\ 00004E 02.... LJMP ??ZDO_ProcessMgmtLqiReq_0 & 0xFFFF
|
||
1170 {
|
||
1171 numItems = maxItems - StartIndex;
|
||
\ 000051 E0 MOVX A,@DPTR
|
||
\ 000052 C3 CLR C
|
||
\ 000053 95.. SUBB A,?V7
|
||
\ 000055 F5.. MOV ?V1,A
|
||
1172
|
||
1173 // limit the size of the list
|
||
1174 if ( numItems > ZDO_MAX_LQI_ITEMS )
|
||
\ 000057 C3 CLR C
|
||
\ 000058 9404 SUBB A,#0x4
|
||
\ 00005A 4003 JC ??ZDO_ProcessMgmtLqiReq_1
|
||
1175 numItems = ZDO_MAX_LQI_ITEMS;
|
||
\ 00005C 75..03 MOV ?V1,#0x3
|
||
1176
|
||
1177 // Allocate the memory to build the table
|
||
1178 table = (ZDP_MgmtLqiItem_t*)osal_mem_alloc( (short)
|
||
1179 ( numItems * sizeof( ZDP_MgmtLqiItem_t ) ) );
|
||
\ ??ZDO_ProcessMgmtLqiReq_1:
|
||
\ 00005F ; Setup parameters for call to function osal_mem_alloc
|
||
\ 00005F E5.. MOV A,?V1
|
||
\ 000061 75F01A MOV B,#0x1a
|
||
\ 000064 A4 MUL AB
|
||
\ 000065 FA MOV R2,A
|
||
\ 000066 ABF0 MOV R3,B
|
||
\ 000068 12.... LCALL `??osal_mem_alloc::?relay`; Banked call to: osal_mem_alloc
|
||
\ 00006B 7402 MOV A,#0x2
|
||
\ 00006D 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000070 12.... LCALL ??Subroutine242_0 & 0xFFFF
|
||
1180
|
||
1181 if ( table != NULL )
|
||
\ ??CrossCallReturnLabel_431:
|
||
\ 000073 7402 MOV A,#0x2
|
||
\ 000075 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000078 12.... LCALL ??Subroutine260_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_511:
|
||
\ 00007B 7003 JNZ $+5
|
||
\ 00007D 02.... LJMP ??ZDO_ProcessMgmtLqiReq_2 & 0xFFFF
|
||
1182 {
|
||
1183 x = 0;
|
||
\ 000080 75..00 MOV ?V6,#0x0
|
||
1184 item = table;
|
||
\ 000083 7402 MOV A,#0x2
|
||
\ 000085 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000088 12.... LCALL ??Subroutine235_0 & 0xFFFF
|
||
1185 index = StartIndex;
|
||
\ ??CrossCallReturnLabel_389:
|
||
\ 00008B 85.... MOV ?V0,?V7
|
||
\ 00008E 807B SJMP ??ZDO_ProcessMgmtLqiReq_3
|
||
1186
|
||
1187 // Loop through associated items and build list
|
||
1188 for ( ; x < numItems; x++ )
|
||
1189 {
|
||
1190 if ( index < aItems )
|
||
1191 {
|
||
1192 // get next associated device
|
||
1193 aDevice = AssocFindDevice( index++ );
|
||
1194
|
||
1195 // set basic fields
|
||
1196 item->panID = _NIB.nwkPanId;
|
||
1197 osal_cpyExtAddr( item->extPanID, _NIB.extendedPANID );
|
||
1198 item->nwkAddr = aDevice->shortAddr;
|
||
1199 item->permit = ZDP_MGMT_BOOL_UNKNOWN;
|
||
1200 item->depth = 0xFF;
|
||
1201 item->lqi = aDevice->linkInfo.rxLqi;
|
||
1202
|
||
1203 // set extented address
|
||
1204 nwkEntry.user = ADDRMGR_USER_DEFAULT;
|
||
1205 nwkEntry.nwkAddr = aDevice->shortAddr;
|
||
1206
|
||
1207 if ( AddrMgrEntryLookupNwk( &nwkEntry ) == TRUE )
|
||
1208 {
|
||
1209 osal_cpyExtAddr( item->extAddr, nwkEntry.extAddr );
|
||
1210 }
|
||
1211 else
|
||
1212 {
|
||
1213 osal_memset( item->extAddr, 0xFF, Z_EXTADDR_LEN );
|
||
\ ??ZDO_ProcessMgmtLqiReq_4:
|
||
\ 000090 ; Setup parameters for call to function osal_memset
|
||
\ 000090 12.... LCALL ?Subroutine154 & 0xFFFF
|
||
1214 }
|
||
1215
|
||
1216 // use association info to set other fields
|
||
1217 if ( aDevice->nodeRelation == PARENT )
|
||
\ ??CrossCallReturnLabel_253:
|
||
\ 000093 85..82 MOV DPL,?V4
|
||
\ 000096 85..83 MOV DPH,?V5
|
||
\ 000099 A3 INC DPTR
|
||
\ 00009A A3 INC DPTR
|
||
\ 00009B A3 INC DPTR
|
||
\ 00009C A3 INC DPTR
|
||
\ 00009D E0 MOVX A,@DPTR
|
||
\ 00009E 702D JNZ ??ZDO_ProcessMgmtLqiReq_5
|
||
1218 {
|
||
1219 if ( aDevice->shortAddr == 0 )
|
||
\ 0000A0 85..82 MOV DPL,?V4
|
||
\ 0000A3 85..83 MOV DPH,?V5
|
||
\ 0000A6 12.... LCALL ??Subroutine260_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_512:
|
||
\ 0000A9 700C JNZ ??ZDO_ProcessMgmtLqiReq_6
|
||
1220 {
|
||
1221 item->devType = ZDP_MGMT_DT_COORD;
|
||
\ 0000AB 12.... LCALL ?Subroutine142 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_542:
|
||
\ 0000AE F0 MOVX @DPTR,A
|
||
1222 item->depth = 0;
|
||
\ 0000AF EE MOV A,R6
|
||
\ 0000B0 2418 ADD A,#0x18
|
||
\ 0000B2 12.... LCALL ??Subroutine264_0 & 0xFFFF
|
||
1223 }
|
||
\ ??CrossCallReturnLabel_538:
|
||
\ 0000B5 8010 SJMP ??ZDO_ProcessMgmtLqiReq_7
|
||
1224 else
|
||
1225 {
|
||
1226 item->devType = ZDP_MGMT_DT_ROUTER;
|
||
\ ??ZDO_ProcessMgmtLqiReq_6:
|
||
\ 0000B7 12.... LCALL ?Subroutine140 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_385:
|
||
\ 0000BA F0 MOVX @DPTR,A
|
||
1227 item->depth = _NIB.nodeDepth - 1;
|
||
\ 0000BB 90.... MOV DPTR,#_NIB + 52
|
||
\ 0000BE E0 MOVX A,@DPTR
|
||
\ 0000BF 14 DEC A
|
||
\ 0000C0 C0E0 PUSH A
|
||
\ 0000C2 12.... LCALL ?Subroutine162 & 0xFFFF
|
||
1228 }
|
||
1229
|
||
1230 item->rxOnIdle = ZDP_MGMT_BOOL_UNKNOWN;
|
||
1231 item->relation = ZDP_MGMT_REL_PARENT;
|
||
1232 }
|
||
\ ??CrossCallReturnLabel_271:
|
||
\ 0000C5 D0E0 POP A
|
||
\ ??ZDO_ProcessMgmtLqiReq_7:
|
||
\ 0000C7 12.... LCALL ?Subroutine13 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_8:
|
||
\ 0000CA E4 CLR A
|
||
\ 0000CB 8034 SJMP ??CrossCallReturnLabel_383
|
||
1233 else
|
||
1234 {
|
||
1235 // If not parent, then it's a child
|
||
1236 item->depth = _NIB.nodeDepth + 1;
|
||
\ ??ZDO_ProcessMgmtLqiReq_5:
|
||
\ 0000CD 90.... MOV DPTR,#_NIB + 52
|
||
\ 0000D0 E0 MOVX A,@DPTR
|
||
\ 0000D1 04 INC A
|
||
\ 0000D2 C0E0 PUSH A
|
||
\ 0000D4 12.... LCALL ?Subroutine162 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_272:
|
||
\ 0000D7 D0E0 POP A
|
||
\ 0000D9 12.... LCALL ?Subroutine15 & 0xFFFF
|
||
1237
|
||
1238 if ( aDevice->nodeRelation < CHILD_FFD )
|
||
\ ??CrossCallReturnLabel_12:
|
||
\ 0000DC C3 CLR C
|
||
\ 0000DD 9403 SUBB A,#0x3
|
||
\ 0000DF EE MOV A,R6
|
||
\ 0000E0 4003 JC $+5
|
||
\ 0000E2 02.... LJMP ??ZDO_ProcessMgmtLqiReq_8 & 0xFFFF
|
||
1239 {
|
||
1240 item->devType = ZDP_MGMT_DT_ENDDEV;
|
||
\ 0000E5 12.... LCALL ?Subroutine158 & 0xFFFF
|
||
1241
|
||
1242 if ( aDevice->nodeRelation == CHILD_RFD )
|
||
1243 {
|
||
1244 item->rxOnIdle = FALSE;
|
||
1245 }
|
||
1246 else
|
||
1247 {
|
||
1248 item->rxOnIdle = TRUE;
|
||
1249 }
|
||
1250 }
|
||
\ ??CrossCallReturnLabel_266:
|
||
\ 0000E8 7402 MOV A,#0x2
|
||
\ 0000EA 12.... LCALL ?Subroutine15 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_13:
|
||
\ 0000ED 6401 XRL A,#0x1
|
||
\ 0000EF 7003 JNZ $+5
|
||
\ 0000F1 02.... LJMP ??ZDO_ProcessMgmtLqiReq_9 & 0xFFFF
|
||
1251 else
|
||
1252 {
|
||
1253 item->devType = ZDP_MGMT_DT_ROUTER;
|
||
1254
|
||
1255 if ( aDevice->nodeRelation == CHILD_FFD )
|
||
1256 {
|
||
1257 item->rxOnIdle = FALSE;
|
||
1258 }
|
||
1259 else
|
||
1260 {
|
||
1261 item->rxOnIdle = TRUE;
|
||
\ ??ZDO_ProcessMgmtLqiReq_10:
|
||
\ 0000F4 EE MOV A,R6
|
||
\ 0000F5 2415 ADD A,#0x15
|
||
\ 0000F7 12.... LCALL ??Subroutine234_0 & 0xFFFF
|
||
1262 }
|
||
\ ??CrossCallReturnLabel_382:
|
||
\ 0000FA F0 MOVX @DPTR,A
|
||
1263 }
|
||
1264
|
||
1265 item->relation = ZDP_MGMT_REL_CHILD;
|
||
\ 0000FB EE MOV A,R6
|
||
\ 0000FC 2416 ADD A,#0x16
|
||
\ 0000FE 12.... LCALL ??Subroutine234_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_383:
|
||
\ 000101 F0 MOVX @DPTR,A
|
||
1266 }
|
||
1267
|
||
1268 item++;
|
||
\ 000102 EE MOV A,R6
|
||
\ 000103 241A ADD A,#0x1a
|
||
\ 000105 FE MOV R6,A
|
||
\ 000106 5001 JNC ??ZDO_ProcessMgmtLqiReq_11
|
||
\ 000108 0F INC R7
|
||
\ ??ZDO_ProcessMgmtLqiReq_11:
|
||
\ 000109 05.. INC ?V6
|
||
\ ??ZDO_ProcessMgmtLqiReq_3:
|
||
\ 00010B E5.. MOV A,?V6
|
||
\ 00010D C3 CLR C
|
||
\ 00010E 95.. SUBB A,?V1
|
||
\ 000110 4003 JC $+5
|
||
\ 000112 02.... LJMP ??ZDO_ProcessMgmtLqiReq_12 & 0xFFFF
|
||
\ 000115 7401 MOV A,#0x1
|
||
\ 000117 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00011A E0 MOVX A,@DPTR
|
||
\ 00011B F8 MOV R0,A
|
||
\ 00011C E5.. MOV A,?V0
|
||
\ 00011E C3 CLR C
|
||
\ 00011F 98 SUBB A,R0
|
||
\ 000120 4003 JC $+5
|
||
\ 000122 02.... LJMP ??ZDO_ProcessMgmtLqiReq_13 & 0xFFFF
|
||
\ 000125 ; Setup parameters for call to function AssocFindDevice
|
||
\ 000125 A9.. MOV R1,?V0
|
||
\ 000127 12.... LCALL `??AssocFindDevice::?relay`; Banked call to: AssocFindDevice
|
||
\ 00012A 8A.. MOV ?V4,R2
|
||
\ 00012C 8B.. MOV ?V5,R3
|
||
\ 00012E 05.. INC ?V0
|
||
\ 000130 90.... MOV DPTR,#_NIB + 33
|
||
\ 000133 12.... LCALL ?Subroutine16 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_15:
|
||
\ 000136 85..82 MOV DPL,?V4
|
||
\ 000139 85..83 MOV DPH,?V5
|
||
\ 00013C 12.... LCALL ??Subroutine253_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_465:
|
||
\ 00013F 12.... LCALL ?Subroutine159 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_379:
|
||
\ 000142 F583 MOV DPH,A
|
||
\ 000144 E8 MOV A,R0
|
||
\ 000145 F0 MOVX @DPTR,A
|
||
\ 000146 A3 INC DPTR
|
||
\ 000147 E9 MOV A,R1
|
||
\ 000148 12.... LCALL ?Subroutine12 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_6:
|
||
\ 00014B 85..82 MOV DPL,?V4
|
||
\ 00014E 85..83 MOV DPH,?V5
|
||
\ 000151 A3 INC DPTR
|
||
\ 000152 A3 INC DPTR
|
||
\ 000153 A3 INC DPTR
|
||
\ 000154 A3 INC DPTR
|
||
\ 000155 A3 INC DPTR
|
||
\ 000156 A3 INC DPTR
|
||
\ 000157 A3 INC DPTR
|
||
\ 000158 A3 INC DPTR
|
||
\ 000159 A3 INC DPTR
|
||
\ 00015A A3 INC DPTR
|
||
\ 00015B E0 MOVX A,@DPTR
|
||
\ 00015C C0E0 PUSH A
|
||
\ 00015E 12.... LCALL ?Subroutine163 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_273:
|
||
\ 000161 D0E0 POP A
|
||
\ 000163 F0 MOVX @DPTR,A
|
||
\ 000164 7406 MOV A,#0x6
|
||
\ 000166 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000169 E4 CLR A
|
||
\ 00016A 12.... LCALL ?Subroutine166 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_275:
|
||
\ 00016D 12.... LCALL ??Subroutine253_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_466:
|
||
\ 000170 7407 MOV A,#0x7
|
||
\ 000172 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000175 12.... LCALL ??Subroutine294_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_730:
|
||
\ 000178 ; Setup parameters for call to function AddrMgrEntryLookupNwk
|
||
\ 000178 7406 MOV A,#0x6
|
||
\ 00017A 12.... LCALL ?XSTACK_DISP101_8
|
||
\ 00017D 12.... LCALL `??AddrMgrEntryLookupNwk::?relay`; Banked call to: AddrMgrEntryLookupNwk
|
||
\ 000180 E9 MOV A,R1
|
||
\ 000181 6401 XRL A,#0x1
|
||
\ 000183 6003 JZ $+5
|
||
\ 000185 02.... LJMP ??ZDO_ProcessMgmtLqiReq_4 & 0xFFFF
|
||
\ 000188 ; Setup parameters for call to function sAddrExtCpy
|
||
\ 000188 7409 MOV A,#0x9
|
||
\ 00018A 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00018D AC82 MOV R4,DPL
|
||
\ 00018F AD83 MOV R5,DPH
|
||
\ 000191 EE MOV A,R6
|
||
\ 000192 240A ADD A,#0xa
|
||
\ 000194 FA MOV R2,A
|
||
\ 000195 E4 CLR A
|
||
\ 000196 3F ADDC A,R7
|
||
\ 000197 FB MOV R3,A
|
||
\ 000198 12.... LCALL `??sAddrExtCpy::?relay`; Banked call to: sAddrExtCpy
|
||
\ 00019B 02.... LJMP ??CrossCallReturnLabel_253 & 0xFFFF
|
||
\ ??ZDO_ProcessMgmtLqiReq_8:
|
||
\ 00019E 12.... LCALL ??Subroutine233_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_384:
|
||
\ 0001A1 12.... LCALL ?Subroutine15 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_14:
|
||
\ 0001A4 6403 XRL A,#0x3
|
||
\ 0001A6 6003 JZ $+5
|
||
\ 0001A8 02.... LJMP ??ZDO_ProcessMgmtLqiReq_10 & 0xFFFF
|
||
\ ??ZDO_ProcessMgmtLqiReq_9:
|
||
\ 0001AB EE MOV A,R6
|
||
\ 0001AC 2415 ADD A,#0x15
|
||
\ 0001AE 12.... LCALL ??Subroutine264_0 & 0xFFFF
|
||
1269 }
|
||
\ ??CrossCallReturnLabel_539:
|
||
\ 0001B1 02.... LJMP ??CrossCallReturnLabel_382 & 0xFFFF
|
||
1270 else
|
||
1271 {
|
||
1272 if ( StartIndex <= aItems )
|
||
\ ??ZDO_ProcessMgmtLqiReq_13:
|
||
\ 0001B4 E0 MOVX A,@DPTR
|
||
\ 0001B5 C3 CLR C
|
||
\ 0001B6 95.. SUBB A,?V7
|
||
\ 0001B8 4005 JC ??ZDO_ProcessMgmtLqiReq_14
|
||
1273 // Start with 1st neighbor
|
||
1274 index = 0;
|
||
\ 0001BA 75..00 MOV ?V0,#0x0
|
||
\ 0001BD 801C SJMP ??ZDO_ProcessMgmtLqiReq_15
|
||
1275 else
|
||
1276 // Start with >1st neighbor
|
||
1277 index = StartIndex - aItems;
|
||
\ ??ZDO_ProcessMgmtLqiReq_14:
|
||
\ 0001BF E5.. MOV A,?V7
|
||
\ 0001C1 C3 CLR C
|
||
\ 0001C2 98 SUBB A,R0
|
||
\ 0001C3 F5.. MOV ?V0,A
|
||
\ 0001C5 8014 SJMP ??ZDO_ProcessMgmtLqiReq_15
|
||
1278 break;
|
||
1279 }
|
||
1280 }
|
||
1281
|
||
1282 // Loop through neighbor items and finish list
|
||
1283 for ( ; x < numItems; x++ )
|
||
1284 {
|
||
1285 // Add next neighbor table item
|
||
1286 NLME_GetRequest( nwkNeighborTable, index++, &entry );
|
||
1287
|
||
1288 // set ZDP_MgmtLqiItem_t fields
|
||
1289 item->panID = entry.panId;
|
||
1290 osal_cpyExtAddr( item->extPanID, _NIB.extendedPANID );
|
||
1291 osal_memset( item->extAddr, 0xFF, Z_EXTADDR_LEN );
|
||
1292 item->nwkAddr = entry.neighborAddress;
|
||
1293 item->rxOnIdle = ZDP_MGMT_BOOL_UNKNOWN;
|
||
1294 item->relation = ZDP_MGMT_REL_UNKNOWN;
|
||
1295 item->permit = ZDP_MGMT_BOOL_UNKNOWN;
|
||
1296 item->depth = 0xFF;
|
||
1297 item->lqi = entry.linkInfo.rxLqi;
|
||
1298
|
||
1299 if ( item->nwkAddr == 0 )
|
||
1300 {
|
||
1301 item->devType = ZDP_MGMT_DT_COORD;
|
||
1302 }
|
||
1303 else
|
||
1304 {
|
||
1305 item->devType = ZDP_MGMT_DT_ROUTER;
|
||
\ ??ZDO_ProcessMgmtLqiReq_16:
|
||
\ 0001C7 12.... LCALL ?Subroutine140 & 0xFFFF
|
||
1306 }
|
||
\ ??CrossCallReturnLabel_386:
|
||
\ 0001CA F0 MOVX @DPTR,A
|
||
1307
|
||
1308 item++;
|
||
\ 0001CB EE MOV A,R6
|
||
\ 0001CC 241A ADD A,#0x1a
|
||
\ 0001CE FE MOV R6,A
|
||
\ 0001CF 5001 JNC ??ZDO_ProcessMgmtLqiReq_17
|
||
\ 0001D1 0F INC R7
|
||
\ ??ZDO_ProcessMgmtLqiReq_17:
|
||
\ 0001D2 05.. INC ?V6
|
||
\ ??ZDO_ProcessMgmtLqiReq_12:
|
||
\ 0001D4 E5.. MOV A,?V6
|
||
\ 0001D6 C3 CLR C
|
||
\ 0001D7 95.. SUBB A,?V1
|
||
\ 0001D9 5056 JNC ??ZDO_ProcessMgmtLqiReq_2
|
||
\ ??ZDO_ProcessMgmtLqiReq_15:
|
||
\ 0001DB ; Setup parameters for call to function NLME_GetRequest
|
||
\ 0001DB 7413 MOV A,#0x13
|
||
\ 0001DD 12.... LCALL ?XSTACK_DISP102_8
|
||
\ 0001E0 AA.. MOV R2,?V0
|
||
\ 0001E2 7B00 MOV R3,#0x0
|
||
\ 0001E4 7987 MOV R1,#-0x79
|
||
\ 0001E6 12.... LCALL `??NLME_GetRequest::?relay`; Banked call to: NLME_GetRequest
|
||
\ 0001E9 05.. INC ?V0
|
||
\ 0001EB 741D MOV A,#0x1d
|
||
\ 0001ED 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0001F0 12.... LCALL ?Subroutine16 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_16:
|
||
\ 0001F3 ; Setup parameters for call to function osal_memset
|
||
\ 0001F3 12.... LCALL ?Subroutine154 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_254:
|
||
\ 0001F6 EE MOV A,R6
|
||
\ 0001F7 2412 ADD A,#0x12
|
||
\ 0001F9 F8 MOV R0,A
|
||
\ 0001FA E4 CLR A
|
||
\ 0001FB 3F ADDC A,R7
|
||
\ 0001FC F9 MOV R1,A
|
||
\ 0001FD 7413 MOV A,#0x13
|
||
\ 0001FF 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000202 12.... LCALL ??Subroutine256_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_486:
|
||
\ 000205 8882 MOV DPL,R0
|
||
\ 000207 8983 MOV DPH,R1
|
||
\ 000209 EA MOV A,R2
|
||
\ 00020A F0 MOVX @DPTR,A
|
||
\ 00020B A3 INC DPTR
|
||
\ 00020C EB MOV A,R3
|
||
\ 00020D 12.... LCALL ?Subroutine13 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_9:
|
||
\ 000210 7403 MOV A,#0x3
|
||
\ 000212 12.... LCALL ?Subroutine12 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_7:
|
||
\ 000215 7422 MOV A,#0x22
|
||
\ 000217 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00021A E0 MOVX A,@DPTR
|
||
\ 00021B C0E0 PUSH A
|
||
\ 00021D 12.... LCALL ?Subroutine163 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_274:
|
||
\ 000220 D0E0 POP A
|
||
\ 000222 12.... LCALL ?Subroutine36 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_46:
|
||
\ 000225 E8 MOV A,R0
|
||
\ 000226 49 ORL A,R1
|
||
\ 000227 709E JNZ ??ZDO_ProcessMgmtLqiReq_16
|
||
\ 000229 12.... LCALL ?Subroutine142 & 0xFFFF
|
||
1309 }
|
||
1310 }
|
||
1311 }
|
||
\ ??CrossCallReturnLabel_543:
|
||
\ 00022C 809C SJMP ??CrossCallReturnLabel_386
|
||
1312 else
|
||
1313 {
|
||
1314 numItems = 0;
|
||
\ ??ZDO_ProcessMgmtLqiReq_0:
|
||
\ 00022E 75..00 MOV ?V1,#0x0
|
||
1315 }
|
||
1316
|
||
1317 // Send response
|
||
1318 ZDP_MgmtLqiRsp( inMsg->TransSeq, &(inMsg->srcAddr), ZSuccess, maxItems,
|
||
1319 StartIndex, numItems, table, false );
|
||
\ ??ZDO_ProcessMgmtLqiReq_2:
|
||
\ 000231 ; Setup parameters for call to function ZDP_MgmtLqiRsp
|
||
\ 000231 75..00 MOV ?V2,#0x0
|
||
\ 000234 78.. MOV R0,#?V2
|
||
\ 000236 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 000239 7403 MOV A,#0x3
|
||
\ 00023B 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00023E 12.... LCALL ?PUSH_XSTACK8_X_TWO
|
||
\ 000241 78.. MOV R0,#?V1
|
||
\ 000243 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 000246 E5.. MOV A,?V7
|
||
\ 000248 F5.. MOV ?V1,A
|
||
\ 00024A 78.. MOV R0,#?V1
|
||
\ 00024C 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 00024F 7405 MOV A,#0x5
|
||
\ 000251 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000254 E0 MOVX A,@DPTR
|
||
\ 000255 FD MOV R5,A
|
||
\ 000256 7C00 MOV R4,#0x0
|
||
\ 000258 7409 MOV A,#0x9
|
||
\ 00025A 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00025D 12.... LCALL ?Subroutine120 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_195:
|
||
\ 000260 7409 MOV A,#0x9
|
||
\ 000262 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000265 12.... LCALL ?Subroutine82 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_131:
|
||
\ 000268 12.... LCALL `??ZDP_MgmtLqiRsp::?relay`; Banked call to: ZDP_MgmtLqiRsp
|
||
\ 00026B 7405 MOV A,#0x5
|
||
\ 00026D 12.... LCALL ?DEALLOC_XSTACK8
|
||
1320
|
||
1321 if ( table )
|
||
\ 000270 7402 MOV A,#0x2
|
||
\ 000272 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000275 12.... LCALL ??Subroutine260_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_513:
|
||
\ 000278 6008 JZ ??CrossCallReturnLabel_417
|
||
1322 {
|
||
1323 osal_mem_free( table );
|
||
\ 00027A ; Setup parameters for call to function osal_mem_free
|
||
\ 00027A 7402 MOV A,#0x2
|
||
\ 00027C 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00027F 12.... LCALL ??Subroutine241_0 & 0xFFFF
|
||
1324 }
|
||
1325 }
|
||
\ ??CrossCallReturnLabel_417:
|
||
\ 000282 742A MOV A,#0x2a
|
||
\ 000284 02.... LJMP ?Subroutine7 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine163:
|
||
\ 000000 EE MOV A,R6
|
||
\ 000001 2419 ADD A,#0x19
|
||
\ 000003 F582 MOV DPL,A
|
||
\ 000005 E4 CLR A
|
||
\ 000006 3F ADDC A,R7
|
||
\ 000007 F583 MOV DPH,A
|
||
\ 000009 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine162:
|
||
\ 000000 12.... LCALL ?Subroutine206 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_331:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine206:
|
||
\ 000000 EE MOV A,R6
|
||
\ 000001 2418 ADD A,#0x18
|
||
\ 000003 F582 MOV DPL,A
|
||
\ 000005 E4 CLR A
|
||
\ 000006 3F ADDC A,R7
|
||
\ 000007 F583 MOV DPH,A
|
||
\ 000009 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine159:
|
||
\ 000000 EE MOV A,R6
|
||
\ 000001 REQUIRE ??Subroutine232_0
|
||
\ 000001 ; // Fall through to label ??Subroutine232_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine232_0:
|
||
\ 000000 2412 ADD A,#0x12
|
||
\ 000002 F582 MOV DPL,A
|
||
\ 000004 E4 CLR A
|
||
\ 000005 3F ADDC A,R7
|
||
\ 000006 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine154:
|
||
\ 000000 7C08 MOV R4,#0x8
|
||
\ 000002 7D00 MOV R5,#0x0
|
||
\ 000004 79FF MOV R1,#-0x1
|
||
\ 000006 EE MOV A,R6
|
||
\ 000007 240A ADD A,#0xa
|
||
\ 000009 FA MOV R2,A
|
||
\ 00000A E4 CLR A
|
||
\ 00000B 3F ADDC A,R7
|
||
\ 00000C FB MOV R3,A
|
||
\ 00000D 12.... LCALL `??osal_memset::?relay`; Banked call to: osal_memset
|
||
\ 000010 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine140:
|
||
\ 000000 EE MOV A,R6
|
||
\ 000001 REQUIRE ??Subroutine233_0
|
||
\ 000001 ; // Fall through to label ??Subroutine233_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine233_0:
|
||
\ 000000 2414 ADD A,#0x14
|
||
\ 000002 REQUIRE ??Subroutine234_0
|
||
\ 000002 ; // Fall through to label ??Subroutine234_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine234_0:
|
||
\ 000000 F582 MOV DPL,A
|
||
\ 000002 E4 CLR A
|
||
\ 000003 3F ADDC A,R7
|
||
\ 000004 F583 MOV DPH,A
|
||
\ 000006 7401 MOV A,#0x1
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine16:
|
||
\ 000000 12.... LCALL ??Subroutine283_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_645:
|
||
\ 000003 8E82 MOV DPL,R6
|
||
\ 000005 8F83 MOV DPH,R7
|
||
\ 000007 E8 MOV A,R0
|
||
\ 000008 F0 MOVX @DPTR,A
|
||
\ 000009 A3 INC DPTR
|
||
\ 00000A E9 MOV A,R1
|
||
\ 00000B F0 MOVX @DPTR,A
|
||
\ 00000C ; Setup parameters for call to function sAddrExtCpy
|
||
\ 00000C ; Setup parameters for call to function sAddrExtCpy
|
||
\ 00000C 7C.. MOV R4,#(_NIB + 53) & 0xff
|
||
\ 00000E 7D.. MOV R5,#((_NIB + 53) >> 8) & 0xff
|
||
\ 000010 EE MOV A,R6
|
||
\ 000011 2402 ADD A,#0x2
|
||
\ 000013 FA MOV R2,A
|
||
\ 000014 E4 CLR A
|
||
\ 000015 3F ADDC A,R7
|
||
\ 000016 FB MOV R3,A
|
||
\ 000017 12.... LCALL `??sAddrExtCpy::?relay`; Banked call to: sAddrExtCpy
|
||
\ 00001A 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine15:
|
||
\ 000000 12.... LCALL ?Subroutine166 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_276:
|
||
\ 000003 A3 INC DPTR
|
||
\ 000004 A3 INC DPTR
|
||
\ 000005 A3 INC DPTR
|
||
\ 000006 A3 INC DPTR
|
||
\ 000007 E0 MOVX A,@DPTR
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine166:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 85..82 MOV DPL,?V4
|
||
\ 000004 85..83 MOV DPH,?V5
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine13:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 EE MOV A,R6
|
||
\ 000002 2415 ADD A,#0x15
|
||
\ 000004 F582 MOV DPL,A
|
||
\ 000006 E4 CLR A
|
||
\ 000007 3F ADDC A,R7
|
||
\ 000008 F583 MOV DPH,A
|
||
\ 00000A 7402 MOV A,#0x2
|
||
\ 00000C F0 MOVX @DPTR,A
|
||
\ 00000D EE MOV A,R6
|
||
\ 00000E 2416 ADD A,#0x16
|
||
\ 000010 F582 MOV DPL,A
|
||
\ 000012 E4 CLR A
|
||
\ 000013 3F ADDC A,R7
|
||
\ 000014 F583 MOV DPH,A
|
||
\ 000016 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine12:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 EE MOV A,R6
|
||
\ 000002 2417 ADD A,#0x17
|
||
\ 000004 F582 MOV DPL,A
|
||
\ 000006 E4 CLR A
|
||
\ 000007 3F ADDC A,R7
|
||
\ 000008 F583 MOV DPH,A
|
||
\ 00000A 7402 MOV A,#0x2
|
||
\ 00000C F0 MOVX @DPTR,A
|
||
\ 00000D 12.... LCALL ?Subroutine206 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_330:
|
||
\ 000010 74FF MOV A,#-0x1
|
||
\ 000012 F0 MOVX @DPTR,A
|
||
\ 000013 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine120:
|
||
\ 000000 E0 MOVX A,@DPTR
|
||
\ 000001 2402 ADD A,#0x2
|
||
\ 000003 FA MOV R2,A
|
||
\ 000004 A3 INC DPTR
|
||
\ 000005 E0 MOVX A,@DPTR
|
||
\ 000006 3400 ADDC A,#0x0
|
||
\ 000008 FB MOV R3,A
|
||
\ 000009 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine82:
|
||
\ 000000 12.... LCALL ?Subroutine178 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_295:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine142:
|
||
\ 000000 EE MOV A,R6
|
||
\ 000001 2414 ADD A,#0x14
|
||
\ 000003 REQUIRE ??Subroutine264_0
|
||
\ 000003 ; // Fall through to label ??Subroutine264_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine264_0:
|
||
\ 000000 F582 MOV DPL,A
|
||
\ 000002 E4 CLR A
|
||
\ 000003 3F ADDC A,R7
|
||
\ 000004 F583 MOV DPH,A
|
||
\ 000006 E4 CLR A
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine36:
|
||
\ 000000 12.... LCALL ?Subroutine211 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_339:
|
||
\ 000003 12.... LCALL ??Subroutine283_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_646:
|
||
\ 000006 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine211:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 8882 MOV DPL,R0
|
||
\ 000003 8983 MOV DPH,R1
|
||
\ 000005 22 RET
|
||
1326
|
||
1327 /*********************************************************************
|
||
1328 * @fn ZDO_ProcessMgmtNwkDiscReq
|
||
1329 *
|
||
1330 * @brief This function handles parsing the incoming Management
|
||
1331 * Network Discover request and starts the request.
|
||
1332 *
|
||
1333 * @param inMsg - incoming message (request)
|
||
1334 *
|
||
1335 * @return none
|
||
1336 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
1337 void ZDO_ProcessMgmtNwkDiscReq( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ProcessMgmtNwkDiscReq:
|
||
1338 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 74F6 MOV A,#-0xa
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 10
|
||
\ 000005 ; Auto size: 7
|
||
\ 000005 74F9 MOV A,#-0x7
|
||
\ 000007 12.... LCALL ?ALLOC_XSTACK8
|
||
\ 00000A 12.... LCALL ?Subroutine137 & 0xFFFF
|
||
1339 NLME_ScanFields_t scan;
|
||
1340 uint8 index;
|
||
1341 uint8 *msg;
|
||
1342
|
||
1343 msg = inMsg->asdu;
|
||
\ ??CrossCallReturnLabel_448:
|
||
\ 00000D 35.. ADDC A,?V1
|
||
\ 00000F 12.... LCALL ?Subroutine65 & 0xFFFF
|
||
1344 scan.channels = osal_build_uint32( msg, 4 );
|
||
\ ??CrossCallReturnLabel_100:
|
||
\ 000012 85..82 MOV DPL,?XSP + 0
|
||
\ 000015 85..83 MOV DPH,?XSP + 1
|
||
\ 000018 12.... LCALL ?XSTORE_R0123
|
||
1345 msg += 4;
|
||
1346 scan.duration = *msg++;
|
||
\ 00001B 8E82 MOV DPL,R6
|
||
\ 00001D 8F83 MOV DPH,R7
|
||
\ 00001F A3 INC DPTR
|
||
\ 000020 A3 INC DPTR
|
||
\ 000021 A3 INC DPTR
|
||
\ 000022 A3 INC DPTR
|
||
\ 000023 E0 MOVX A,@DPTR
|
||
\ 000024 C0E0 PUSH A
|
||
\ 000026 7404 MOV A,#0x4
|
||
\ 000028 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00002B D0E0 POP A
|
||
\ 00002D 12.... LCALL ?Subroutine35 & 0xFFFF
|
||
1347 index = *msg;
|
||
\ ??CrossCallReturnLabel_44:
|
||
\ 000030 F8 MOV R0,A
|
||
1348 scan.scanType = ZMAC_ACTIVE_SCAN;
|
||
\ 000031 7405 MOV A,#0x5
|
||
\ 000033 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000036 7401 MOV A,#0x1
|
||
\ 000038 F0 MOVX @DPTR,A
|
||
1349 scan.scanApp = NLME_DISC_SCAN;
|
||
\ 000039 7406 MOV A,#0x6
|
||
\ 00003B 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00003E 7401 MOV A,#0x1
|
||
\ 000040 F0 MOVX @DPTR,A
|
||
1350
|
||
1351 // Save off the information to be used for the response
|
||
1352 zdappMgmtNwkDiscReqInProgress = true;
|
||
\ 000041 90.... MOV DPTR,#zdappMgmtNwkDiscReqInProgress
|
||
\ 000044 F0 MOVX @DPTR,A
|
||
1353 zdappMgmtNwkDiscRspAddr.addrMode = Addr16Bit;
|
||
\ 000045 90.... MOV DPTR,#zdappMgmtNwkDiscRspAddr + 8
|
||
\ 000048 04 INC A
|
||
\ 000049 12.... LCALL ?Subroutine49 & 0xFFFF
|
||
1354 zdappMgmtNwkDiscRspAddr.addr.shortAddr = inMsg->srcAddr.addr.shortAddr;
|
||
\ ??CrossCallReturnLabel_71:
|
||
\ 00004C A3 INC DPTR
|
||
\ 00004D 12.... LCALL ??Subroutine256_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_487:
|
||
\ 000050 90.... MOV DPTR,#zdappMgmtNwkDiscRspAddr
|
||
\ 000053 12.... LCALL ??Subroutine242_0 & 0xFFFF
|
||
1355 zdappMgmtNwkDiscStartIndex = index;
|
||
\ ??CrossCallReturnLabel_432:
|
||
\ 000056 E8 MOV A,R0
|
||
\ 000057 90.... MOV DPTR,#zdappMgmtNwkDiscStartIndex
|
||
\ 00005A F0 MOVX @DPTR,A
|
||
1356 zdappMgmtNwkDiscRspTransSeq = inMsg->TransSeq;
|
||
\ 00005B 12.... LCALL ?Subroutine144 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_231:
|
||
\ 00005E E0 MOVX A,@DPTR
|
||
\ 00005F 90.... MOV DPTR,#zdappMgmtNwkDiscRspTransSeq
|
||
\ 000062 F0 MOVX @DPTR,A
|
||
1357
|
||
1358 if ( NLME_NwkDiscReq2( &scan ) != ZSuccess )
|
||
\ 000063 ; Setup parameters for call to function NLME_NwkDiscReq2
|
||
\ 000063 AA.. MOV R2,?XSP + 0
|
||
\ 000065 AB.. MOV R3,?XSP + 1
|
||
\ 000067 12.... LCALL `??NLME_NwkDiscReq2::?relay`; Banked call to: NLME_NwkDiscReq2
|
||
\ 00006A E9 MOV A,R1
|
||
\ 00006B 6003 JZ ??ZDO_ProcessMgmtNwkDiscReq_0
|
||
1359 {
|
||
1360 NLME_NwkDiscTerm();
|
||
\ 00006D ; Setup parameters for call to function NLME_NwkDiscTerm
|
||
\ 00006D 12.... LCALL `??NLME_NwkDiscTerm::?relay`; Banked call to: NLME_NwkDiscTerm
|
||
1361
|
||
1362 // zdappMgmtNwkDiscReqInProgress will be reset in the confirm callback
|
||
1363 }
|
||
1364 }
|
||
\ ??ZDO_ProcessMgmtNwkDiscReq_0:
|
||
\ 000070 7407 MOV A,#0x7
|
||
\ 000072 02.... LJMP ??Subroutine224_0 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine137:
|
||
\ 000000 8A.. MOV ?V0,R2
|
||
\ 000002 8B.. MOV ?V1,R3
|
||
\ 000004 REQUIRE ??Subroutine246_0
|
||
\ 000004 ; // Fall through to label ??Subroutine246_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine144:
|
||
\ 000000 E5.. MOV A,?V0
|
||
\ 000002 12.... LCALL ?Subroutine201 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_325:
|
||
\ 000005 12.... LCALL ??Subroutine285_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_668:
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine201:
|
||
\ 000000 240F ADD A,#0xf
|
||
\ 000002 F582 MOV DPL,A
|
||
\ 000004 E4 CLR A
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine35:
|
||
\ 000000 12.... LCALL ?Subroutine169 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_282:
|
||
\ 000003 E0 MOVX A,@DPTR
|
||
\ 000004 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine169:
|
||
\ 000000 12.... LCALL ?Subroutine212 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_342:
|
||
\ 000003 A3 INC DPTR
|
||
\ 000004 A3 INC DPTR
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine219:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 ; Setup parameters for call to function osal_memcpy
|
||
\ 000001 8E82 MOV DPL,R6
|
||
\ 000003 8F83 MOV DPH,R7
|
||
\ 000005 A3 INC DPTR
|
||
\ 000006 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine193:
|
||
\ 000000 F583 MOV DPH,A
|
||
\ 000002 REQUIRE ??Subroutine293_0
|
||
\ 000002 ; // Fall through to label ??Subroutine293_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine212:
|
||
\ 000000 12.... LCALL ?Subroutine219 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_355:
|
||
\ 000003 A3 INC DPTR
|
||
\ 000004 A3 INC DPTR
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine65:
|
||
\ 000000 12.... LCALL ?Subroutine193 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_716:
|
||
\ 000003 ; Setup parameters for call to function osal_build_uint32
|
||
\ 000003 ; Setup parameters for call to function osal_build_uint32
|
||
\ 000003 7904 MOV R1,#0x4
|
||
\ 000005 EE MOV A,R6
|
||
\ 000006 FA MOV R2,A
|
||
\ 000007 EF MOV A,R7
|
||
\ 000008 FB MOV R3,A
|
||
\ 000009 12.... LCALL `??osal_build_uint32::?relay`; Banked call to: osal_build_uint32
|
||
\ 00000C EA MOV A,R2
|
||
\ 00000D F8 MOV R0,A
|
||
\ 00000E EB MOV A,R3
|
||
\ 00000F F9 MOV R1,A
|
||
\ 000010 EC MOV A,R4
|
||
\ 000011 FA MOV R2,A
|
||
\ 000012 ED MOV A,R5
|
||
\ 000013 FB MOV R3,A
|
||
\ 000014 22 RET
|
||
1365
|
||
1366 #if defined ( ZDO_MGMT_NWKDISC_RESPONSE )
|
||
1367 /*********************************************************************
|
||
1368 * @fn ZDO_FinishProcessingMgmtNwkDiscReq
|
||
1369 *
|
||
1370 * @brief This function finishes the processing of the Management
|
||
1371 * Network Discover Request and generates the response.
|
||
1372 *
|
||
1373 * Note: This function will limit the number of items returned
|
||
1374 * to ZDO_MAX_NWKDISC_ITEMS items.
|
||
1375 *
|
||
1376 * @param ResultCountSrcAddr - source of the request
|
||
1377 * @param msg - pointer to incoming message
|
||
1378 * @param SecurityUse -
|
||
1379 *
|
||
1380 * @return none
|
||
1381 */
|
||
1382 void ZDO_FinishProcessingMgmtNwkDiscReq( void )
|
||
1383 {
|
||
1384 byte count, i, ResultCount = 0;
|
||
1385 networkDesc_t *newDesc = NULL, *pList, *NetworkList;
|
||
1386
|
||
1387 NetworkList = nwk_getNwkDescList();
|
||
1388
|
||
1389 // Count the number of nwk descriptors in the list
|
||
1390 pList = nwk_getNwkDescList();
|
||
1391 while (pList)
|
||
1392 {
|
||
1393 ResultCount++;
|
||
1394 pList = pList->nextDesc;
|
||
1395 }
|
||
1396
|
||
1397 if ( ZSTACK_ROUTER_BUILD )
|
||
1398 {
|
||
1399 // Look for my PanID.
|
||
1400 pList = nwk_getNwkDescList();
|
||
1401 while ( pList )
|
||
1402 {
|
||
1403 if ( pList->panId == _NIB.nwkPanId )
|
||
1404 {
|
||
1405 break;
|
||
1406 }
|
||
1407
|
||
1408
|
||
1409 if ( !pList->nextDesc )
|
||
1410 {
|
||
1411 break;
|
||
1412 }
|
||
1413 pList = pList->nextDesc;
|
||
1414 }
|
||
1415
|
||
1416
|
||
1417 // If my Pan not present (query to a star network ZC or an isolated ZR?),
|
||
1418 // prepend it.
|
||
1419 if ( !pList || (pList->panId != _NIB.nwkPanId) )
|
||
1420 {
|
||
1421 newDesc = (networkDesc_t *)osal_mem_alloc( sizeof( networkDesc_t ) );
|
||
1422 if ( newDesc )
|
||
1423 {
|
||
1424 byte pJoin;
|
||
1425
|
||
1426 newDesc->panId = _NIB.nwkPanId;
|
||
1427 newDesc->logicalChannel = _NIB.nwkLogicalChannel;
|
||
1428 newDesc->version = NLME_GetProtocolVersion();
|
||
1429 newDesc->stackProfile = zgStackProfile;
|
||
1430
|
||
1431 //Extended PanID
|
||
1432 osal_cpyExtAddr( newDesc->extendedPANID, _NIB.extendedPANID);
|
||
1433
|
||
1434 ZMacGetReq( ZMacAssociationPermit, &pJoin );
|
||
1435 newDesc->chosenRouter = ((pJoin) ? ZDAppNwkAddr.addr.shortAddr :
|
||
1436 INVALID_NODE_ADDR);
|
||
1437
|
||
1438 newDesc->nextDesc = NetworkList;
|
||
1439 NetworkList = newDesc;
|
||
1440 ResultCount++;
|
||
1441 }
|
||
1442 }
|
||
1443 }
|
||
1444
|
||
1445 // Calc the count and apply a max count.
|
||
1446 if ( zdappMgmtNwkDiscStartIndex > ResultCount )
|
||
1447 {
|
||
1448 count = 0;
|
||
1449 }
|
||
1450 else
|
||
1451 {
|
||
1452 count = ResultCount - zdappMgmtNwkDiscStartIndex;
|
||
1453 if ( count > ZDO_MAX_NWKDISC_ITEMS )
|
||
1454 {
|
||
1455 count = ZDO_MAX_NWKDISC_ITEMS;
|
||
1456 }
|
||
1457
|
||
1458 // Move the list pointer up to the start index.
|
||
1459 for ( i = 0; i < zdappMgmtNwkDiscStartIndex; i++ )
|
||
1460 {
|
||
1461 NetworkList = NetworkList->nextDesc;
|
||
1462 }
|
||
1463 }
|
||
1464
|
||
1465 ZDP_MgmtNwkDiscRsp( zdappMgmtNwkDiscRspTransSeq,
|
||
1466 &zdappMgmtNwkDiscRspAddr, ZSuccess, ResultCount,
|
||
1467 zdappMgmtNwkDiscStartIndex,
|
||
1468 count,
|
||
1469 NetworkList,
|
||
1470 false );
|
||
1471
|
||
1472 if ( ZSTACK_ROUTER_BUILD )
|
||
1473 {
|
||
1474 if ( newDesc != NULL )
|
||
1475 {
|
||
1476 osal_mem_free( newDesc );
|
||
1477 }
|
||
1478 }
|
||
1479
|
||
1480 NLME_NwkDiscTerm();
|
||
1481 }
|
||
1482 #endif
|
||
1483
|
||
1484 /*********************************************************************
|
||
1485 * @fn ZDO_ProcessMgmtRtgReq
|
||
1486 *
|
||
1487 * @brief This function finishes the processing of the Management
|
||
1488 * Routing Request and generates the response.
|
||
1489 *
|
||
1490 * Note: This function will limit the number of items returned
|
||
1491 * to ZDO_MAX_RTG_ITEMS items.
|
||
1492 *
|
||
1493 * @param inMsg - incoming message (request)
|
||
1494 *
|
||
1495 * @return none
|
||
1496 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
1497 void ZDO_ProcessMgmtRtgReq( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ProcessMgmtRtgReq:
|
||
1498 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V5
|
||
\ 000000 REQUIRE ?V6
|
||
\ 000000 REQUIRE ?V7
|
||
\ 000000 74F0 MOV A,#-0x10
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 16
|
||
\ 000005 ; Auto size: 1
|
||
\ 000005 74FF MOV A,#-0x1
|
||
\ 000007 12.... LCALL ?ALLOC_XSTACK8
|
||
\ 00000A 8A.. MOV ?V6,R2
|
||
\ 00000C 8B.. MOV ?V7,R3
|
||
1499 byte x;
|
||
1500 byte maxNumItems;
|
||
1501 byte numItems = 0;
|
||
\ 00000E 7E00 MOV R6,#0x0
|
||
1502 uint8 *pBuf = NULL;
|
||
\ 000010 8E.. MOV ?V4,R6
|
||
\ 000012 8E.. MOV ?V5,R6
|
||
1503 rtgItem_t *pList;
|
||
1504 uint8 StartIndex = inMsg->asdu[0];
|
||
\ 000014 12.... LCALL ??Subroutine246_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_451:
|
||
\ 000017 35.. ADDC A,?V7
|
||
\ 000019 12.... LCALL ?Subroutine67 & 0xFFFF
|
||
1505
|
||
1506 // Get the number of table items
|
||
1507 NLME_GetRequest( nwkNumRoutingTableEntries, 0, &maxNumItems );
|
||
\ ??CrossCallReturnLabel_105:
|
||
\ 00001C 799D MOV R1,#-0x63
|
||
\ 00001E 12.... LCALL `??NLME_GetRequest::?relay`; Banked call to: NLME_GetRequest
|
||
1508
|
||
1509 if ( maxNumItems > StartIndex )
|
||
\ 000021 85..82 MOV DPL,?XSP + 0
|
||
\ 000024 85..83 MOV DPH,?XSP + 1
|
||
\ 000027 E0 MOVX A,@DPTR
|
||
\ 000028 F8 MOV R0,A
|
||
\ 000029 E5.. MOV A,?V2
|
||
\ 00002B C3 CLR C
|
||
\ 00002C 98 SUBB A,R0
|
||
\ 00002D 4003 JC $+5
|
||
\ 00002F 02.... LJMP ??ZDO_ProcessMgmtRtgReq_0 & 0xFFFF
|
||
1510 {
|
||
1511 numItems = maxNumItems - StartIndex; // Start at the passed in index
|
||
\ 000032 E0 MOVX A,@DPTR
|
||
\ 000033 C3 CLR C
|
||
\ 000034 95.. SUBB A,?V2
|
||
\ 000036 FE MOV R6,A
|
||
1512
|
||
1513 // limit the size of the list
|
||
1514 if ( numItems > ZDO_MAX_RTG_ITEMS )
|
||
\ 000037 C3 CLR C
|
||
\ 000038 940B SUBB A,#0xb
|
||
\ 00003A 4002 JC ??ZDO_ProcessMgmtRtgReq_1
|
||
1515 {
|
||
1516 numItems = ZDO_MAX_RTG_ITEMS;
|
||
\ 00003C 7E0A MOV R6,#0xa
|
||
1517 }
|
||
1518
|
||
1519 // Allocate the memory to build the table
|
||
1520 pBuf = osal_mem_alloc( (short)(sizeof( rtgItem_t ) * numItems) );
|
||
\ ??ZDO_ProcessMgmtRtgReq_1:
|
||
\ 00003E ; Setup parameters for call to function osal_mem_alloc
|
||
\ 00003E EE MOV A,R6
|
||
\ 00003F 75F007 MOV B,#0x7
|
||
\ 000042 A4 MUL AB
|
||
\ 000043 FA MOV R2,A
|
||
\ 000044 ABF0 MOV R3,B
|
||
\ 000046 12.... LCALL `??osal_mem_alloc::?relay`; Banked call to: osal_mem_alloc
|
||
\ 000049 8A.. MOV ?V0,R2
|
||
\ 00004B 8B.. MOV ?V1,R3
|
||
\ 00004D 8A.. MOV ?V4,R2
|
||
\ 00004F 8B.. MOV ?V5,R3
|
||
1521
|
||
1522 if ( pBuf != NULL )
|
||
\ 000051 EA MOV A,R2
|
||
\ 000052 4B ORL A,R3
|
||
\ 000053 6077 JZ ??ZDO_ProcessMgmtRtgReq_2
|
||
1523 {
|
||
1524 // Convert buffer to list
|
||
1525 pList = (rtgItem_t *)pBuf;
|
||
1526
|
||
1527 // Loop through items and build list
|
||
1528 for ( x = 0; x < numItems; x++ )
|
||
\ 000055 7F00 MOV R7,#0x0
|
||
\ 000057 8019 SJMP ??ZDO_ProcessMgmtRtgReq_3
|
||
1529 {
|
||
1530 NLME_GetRequest( nwkRoutingTable, (uint16)(x + StartIndex), (void*)pList );
|
||
1531
|
||
1532 // Remap the status to the RoutingTableList Record Format defined in the ZigBee spec
|
||
1533 switch( pList->status )
|
||
1534 {
|
||
1535 case RT_ACTIVE:
|
||
1536 pList->status = ZDO_MGMT_RTG_ENTRY_ACTIVE;
|
||
1537 break;
|
||
1538
|
||
1539 case RT_DISC:
|
||
1540 pList->status = ZDO_MGMT_RTG_ENTRY_DISCOVERY_UNDERWAY;
|
||
1541 break;
|
||
1542
|
||
1543 case RT_LINK_FAIL:
|
||
1544 pList->status = ZDO_MGMT_RTG_ENTRY_DISCOVERY_FAILED;
|
||
1545 break;
|
||
1546
|
||
1547 case RT_INIT:
|
||
1548 case RT_REPAIR:
|
||
1549 default:
|
||
1550 pList->status = ZDO_MGMT_RTG_ENTRY_INACTIVE;
|
||
\ ??ZDO_ProcessMgmtRtgReq_4:
|
||
\ 000059 85..82 MOV DPL,?V0
|
||
\ 00005C 85..83 MOV DPH,?V1
|
||
\ 00005F A3 INC DPTR
|
||
\ 000060 A3 INC DPTR
|
||
\ 000061 A3 INC DPTR
|
||
\ 000062 A3 INC DPTR
|
||
\ 000063 A3 INC DPTR
|
||
\ 000064 7403 MOV A,#0x3
|
||
\ ??ZDO_ProcessMgmtRtgReq_5:
|
||
\ 000066 F0 MOVX @DPTR,A
|
||
1551 break;
|
||
1552 }
|
||
1553
|
||
1554 // Increment pointer to next record
|
||
1555 pList++;
|
||
\ 000067 E5.. MOV A,?V0
|
||
\ 000069 2407 ADD A,#0x7
|
||
\ 00006B F5.. MOV ?V0,A
|
||
\ 00006D 5002 JNC ??ZDO_ProcessMgmtRtgReq_6
|
||
\ 00006F 05.. INC ?V1
|
||
\ ??ZDO_ProcessMgmtRtgReq_6:
|
||
\ 000071 0F INC R7
|
||
\ ??ZDO_ProcessMgmtRtgReq_3:
|
||
\ 000072 EF MOV A,R7
|
||
\ 000073 C3 CLR C
|
||
\ 000074 9E SUBB A,R6
|
||
\ 000075 5057 JNC ??ZDO_ProcessMgmtRtgReq_0
|
||
\ 000077 ; Setup parameters for call to function NLME_GetRequest
|
||
\ 000077 AC.. MOV R4,?V0
|
||
\ 000079 AD.. MOV R5,?V1
|
||
\ 00007B EF MOV A,R7
|
||
\ 00007C A8.. MOV R0,?V2
|
||
\ 00007E 28 ADD A,R0
|
||
\ 00007F FA MOV R2,A
|
||
\ 000080 E4 CLR A
|
||
\ 000081 3400 ADDC A,#0x0
|
||
\ 000083 FB MOV R3,A
|
||
\ 000084 798B MOV R1,#-0x75
|
||
\ 000086 12.... LCALL `??NLME_GetRequest::?relay`; Banked call to: NLME_GetRequest
|
||
\ 000089 85..82 MOV DPL,?V0
|
||
\ 00008C 85..83 MOV DPH,?V1
|
||
\ 00008F A3 INC DPTR
|
||
\ 000090 A3 INC DPTR
|
||
\ 000091 A3 INC DPTR
|
||
\ 000092 A3 INC DPTR
|
||
\ 000093 A3 INC DPTR
|
||
\ 000094 E0 MOVX A,@DPTR
|
||
\ 000095 14 DEC A
|
||
\ 000096 6008 JZ ??ZDO_ProcessMgmtRtgReq_7
|
||
\ 000098 14 DEC A
|
||
\ 000099 6013 JZ ??ZDO_ProcessMgmtRtgReq_8
|
||
\ 00009B 14 DEC A
|
||
\ 00009C 601F JZ ??ZDO_ProcessMgmtRtgReq_9
|
||
\ 00009E 80B9 SJMP ??ZDO_ProcessMgmtRtgReq_4
|
||
\ ??ZDO_ProcessMgmtRtgReq_7:
|
||
\ 0000A0 85..82 MOV DPL,?V0
|
||
\ 0000A3 85..83 MOV DPH,?V1
|
||
\ 0000A6 A3 INC DPTR
|
||
\ 0000A7 A3 INC DPTR
|
||
\ 0000A8 A3 INC DPTR
|
||
\ 0000A9 A3 INC DPTR
|
||
\ 0000AA A3 INC DPTR
|
||
\ 0000AB E4 CLR A
|
||
\ 0000AC 80B8 SJMP ??ZDO_ProcessMgmtRtgReq_5
|
||
\ ??ZDO_ProcessMgmtRtgReq_8:
|
||
\ 0000AE 85..82 MOV DPL,?V0
|
||
\ 0000B1 85..83 MOV DPH,?V1
|
||
\ 0000B4 A3 INC DPTR
|
||
\ 0000B5 A3 INC DPTR
|
||
\ 0000B6 A3 INC DPTR
|
||
\ 0000B7 A3 INC DPTR
|
||
\ 0000B8 A3 INC DPTR
|
||
\ 0000B9 7401 MOV A,#0x1
|
||
\ 0000BB 80A9 SJMP ??ZDO_ProcessMgmtRtgReq_5
|
||
\ ??ZDO_ProcessMgmtRtgReq_9:
|
||
\ 0000BD 85..82 MOV DPL,?V0
|
||
\ 0000C0 85..83 MOV DPH,?V1
|
||
\ 0000C3 A3 INC DPTR
|
||
\ 0000C4 A3 INC DPTR
|
||
\ 0000C5 A3 INC DPTR
|
||
\ 0000C6 A3 INC DPTR
|
||
\ 0000C7 A3 INC DPTR
|
||
\ 0000C8 7402 MOV A,#0x2
|
||
\ 0000CA 809A SJMP ??ZDO_ProcessMgmtRtgReq_5
|
||
1556 }
|
||
1557 }
|
||
1558 else
|
||
1559 {
|
||
1560 numItems = 0;
|
||
\ ??ZDO_ProcessMgmtRtgReq_2:
|
||
\ 0000CC 7E00 MOV R6,#0x0
|
||
1561 }
|
||
1562 }
|
||
1563
|
||
1564 // Send response
|
||
1565 ZDP_MgmtRtgRsp( inMsg->TransSeq, &(inMsg->srcAddr), ZSuccess, maxNumItems, StartIndex, numItems,
|
||
1566 (rtgItem_t *)pBuf, false );
|
||
\ ??ZDO_ProcessMgmtRtgReq_0:
|
||
\ 0000CE ; Setup parameters for call to function ZDP_MgmtRtgRsp
|
||
\ 0000CE 75..00 MOV ?V0,#0x0
|
||
\ 0000D1 78.. MOV R0,#?V0
|
||
\ 0000D3 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 0000D6 78.. MOV R0,#?V4
|
||
\ 0000D8 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 0000DB EE MOV A,R6
|
||
\ 0000DC F5.. MOV ?V0,A
|
||
\ 0000DE 78.. MOV R0,#?V0
|
||
\ 0000E0 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 0000E3 E5.. MOV A,?V2
|
||
\ 0000E5 F5.. MOV ?V0,A
|
||
\ 0000E7 78.. MOV R0,#?V0
|
||
\ 0000E9 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 0000EC 7405 MOV A,#0x5
|
||
\ 0000EE 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000F1 E0 MOVX A,@DPTR
|
||
\ 0000F2 FD MOV R5,A
|
||
\ 0000F3 7C00 MOV R4,#0x0
|
||
\ 0000F5 E5.. MOV A,?V6
|
||
\ 0000F7 2402 ADD A,#0x2
|
||
\ 0000F9 FA MOV R2,A
|
||
\ 0000FA E4 CLR A
|
||
\ 0000FB 35.. ADDC A,?V7
|
||
\ 0000FD FB MOV R3,A
|
||
\ 0000FE E5.. MOV A,?V6
|
||
\ 000100 12.... LCALL ?Subroutine201 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_322:
|
||
\ 000103 35.. ADDC A,?V7
|
||
\ 000105 F583 MOV DPH,A
|
||
\ 000107 E0 MOVX A,@DPTR
|
||
\ 000108 F9 MOV R1,A
|
||
\ 000109 12.... LCALL `??ZDP_MgmtRtgRsp::?relay`; Banked call to: ZDP_MgmtRtgRsp
|
||
\ 00010C 7405 MOV A,#0x5
|
||
\ 00010E 12.... LCALL ?DEALLOC_XSTACK8
|
||
1567
|
||
1568 if ( pBuf != NULL )
|
||
\ 000111 E5.. MOV A,?V4
|
||
\ 000113 45.. ORL A,?V5
|
||
\ 000115 6007 JZ ??ZDO_ProcessMgmtRtgReq_10
|
||
1569 {
|
||
1570 osal_mem_free( pBuf );
|
||
\ 000117 ; Setup parameters for call to function osal_mem_free
|
||
\ 000117 AA.. MOV R2,?V4
|
||
\ 000119 AB.. MOV R3,?V5
|
||
\ 00011B 12.... LCALL `??osal_mem_free::?relay`; Banked call to: osal_mem_free
|
||
1571 }
|
||
1572 }
|
||
\ ??ZDO_ProcessMgmtRtgReq_10:
|
||
\ 00011E 7401 MOV A,#0x1
|
||
\ 000120 REQUIRE ?Subroutine7
|
||
\ 000120 ; // Fall through to label ?Subroutine7
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine67:
|
||
\ 000000 F583 MOV DPH,A
|
||
\ 000002 E0 MOVX A,@DPTR
|
||
\ 000003 12.... LCALL ?Subroutine191 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_402:
|
||
\ 000006 F5.. MOV ?V2,A
|
||
\ 000008 ; Setup parameters for call to function NLME_GetRequest
|
||
\ 000008 ; Setup parameters for call to function APSME_GetRequest
|
||
\ 000008 AC.. MOV R4,?XSP + 0
|
||
\ 00000A AD.. MOV R5,?XSP + 1
|
||
\ 00000C 7A00 MOV R2,#0x0
|
||
\ 00000E 7B00 MOV R3,#0x0
|
||
\ 000010 22 RET
|
||
1573
|
||
1574 /*********************************************************************
|
||
1575 * @fn ZDO_ProcessMgmtBindReq
|
||
1576 *
|
||
1577 * @brief This function finishes the processing of the Management
|
||
1578 * Bind Request and generates the response.
|
||
1579 *
|
||
1580 * Note: This function will limit the number of items returned
|
||
1581 * to ZDO_MAX_BIND_ITEMS items.
|
||
1582 *
|
||
1583 * @param inMsg - incoming message (request)
|
||
1584 *
|
||
1585 * @return none
|
||
1586 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
1587 void ZDO_ProcessMgmtBindReq( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ProcessMgmtBindReq:
|
||
1588 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V5
|
||
\ 000000 REQUIRE ?V6
|
||
\ 000000 REQUIRE ?V7
|
||
\ 000000 74F0 MOV A,#-0x10
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 16
|
||
\ 000005 ; Auto size: 4
|
||
\ 000005 74FC MOV A,#-0x4
|
||
\ 000007 12.... LCALL ?ALLOC_XSTACK8
|
||
\ 00000A 7402 MOV A,#0x2
|
||
\ 00000C 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00000F 12.... LCALL ??Subroutine242_0 & 0xFFFF
|
||
1589 #if defined ( REFLECTOR )
|
||
1590 byte x;
|
||
1591 uint16 maxNumItems;
|
||
1592 uint16 numItems;
|
||
1593 uint8 *pBuf = NULL;
|
||
\ ??CrossCallReturnLabel_433:
|
||
\ 000012 75..00 MOV ?V4,#0x0
|
||
\ 000015 75..00 MOV ?V5,#0x0
|
||
1594 apsBindingItem_t *pList;
|
||
1595 uint8 StartIndex = inMsg->asdu[0];
|
||
\ 000018 7402 MOV A,#0x2
|
||
\ 00001A 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00001D E0 MOVX A,@DPTR
|
||
\ 00001E 12.... LCALL ??Subroutine273_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_579:
|
||
\ 000021 12.... LCALL ?Subroutine67 & 0xFFFF
|
||
1596 uint8 status;
|
||
1597
|
||
1598 // Get the number of table items
|
||
1599 APSME_GetRequest( apsNumBindingTableEntries, 0, (byte*)(&maxNumItems) );
|
||
\ ??CrossCallReturnLabel_106:
|
||
\ 000024 79A3 MOV R1,#-0x5d
|
||
\ 000026 12.... LCALL `??APSME_GetRequest::?relay`; Banked call to: APSME_GetRequest
|
||
1600
|
||
1601 if ( maxNumItems > StartIndex )
|
||
\ 000029 85..82 MOV DPL,?XSP + 0
|
||
\ 00002C 85..83 MOV DPH,?XSP + 1
|
||
\ 00002F 12.... LCALL ??Subroutine253_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_467:
|
||
\ 000032 C3 CLR C
|
||
\ 000033 E5.. MOV A,?V2
|
||
\ 000035 98 SUBB A,R0
|
||
\ 000036 E4 CLR A
|
||
\ 000037 99 SUBB A,R1
|
||
\ 000038 5079 JNC ??ZDO_ProcessMgmtBindReq_0
|
||
1602 {
|
||
1603 numItems = maxNumItems - StartIndex; // Start at the passed in index
|
||
\ 00003A 85..82 MOV DPL,?XSP + 0
|
||
\ 00003D 85..83 MOV DPH,?XSP + 1
|
||
\ 000040 A8.. MOV R0,?V2
|
||
\ 000042 E0 MOVX A,@DPTR
|
||
\ 000043 C3 CLR C
|
||
\ 000044 98 SUBB A,R0
|
||
\ 000045 FE MOV R6,A
|
||
\ 000046 A3 INC DPTR
|
||
\ 000047 E0 MOVX A,@DPTR
|
||
\ 000048 9400 SUBB A,#0x0
|
||
\ 00004A FF MOV R7,A
|
||
1604 }
|
||
1605 else
|
||
1606 {
|
||
1607 numItems = 0;
|
||
1608 }
|
||
1609
|
||
1610 // limit the size of the list
|
||
1611 if ( numItems > ZDO_MAX_BIND_ITEMS )
|
||
\ 00004B C3 CLR C
|
||
\ 00004C EE MOV A,R6
|
||
\ 00004D 9404 SUBB A,#0x4
|
||
\ 00004F EF MOV A,R7
|
||
\ 000050 9400 SUBB A,#0x0
|
||
\ 000052 4006 JC ??ZDO_ProcessMgmtBindReq_1
|
||
1612 {
|
||
1613 numItems = ZDO_MAX_BIND_ITEMS;
|
||
\ 000054 7E03 MOV R6,#0x3
|
||
\ 000056 7F00 MOV R7,#0x0
|
||
\ 000058 8004 SJMP ??ZDO_ProcessMgmtBindReq_2
|
||
1614 }
|
||
1615
|
||
1616 // Allocate the memory to build the table
|
||
1617 if ( numItems && (pBuf = osal_mem_alloc( sizeof( apsBindingItem_t ) * numItems )) )
|
||
\ ??ZDO_ProcessMgmtBindReq_1:
|
||
\ 00005A EE MOV A,R6
|
||
\ 00005B 4F ORL A,R7
|
||
\ 00005C 6055 JZ ??ZDO_ProcessMgmtBindReq_0
|
||
\ ??ZDO_ProcessMgmtBindReq_2:
|
||
\ 00005E ; Setup parameters for call to function osal_mem_alloc
|
||
\ 00005E EE MOV A,R6
|
||
\ 00005F FA MOV R2,A
|
||
\ 000060 EF MOV A,R7
|
||
\ 000061 FB MOV R3,A
|
||
\ 000062 EA MOV A,R2
|
||
\ 000063 75F015 MOV B,#0x15
|
||
\ 000066 A4 MUL AB
|
||
\ 000067 FA MOV R2,A
|
||
\ 000068 A8F0 MOV R0,B
|
||
\ 00006A 75F015 MOV B,#0x15
|
||
\ 00006D EB MOV A,R3
|
||
\ 00006E A4 MUL AB
|
||
\ 00006F 28 ADD A,R0
|
||
\ 000070 FB MOV R3,A
|
||
\ 000071 12.... LCALL `??osal_mem_alloc::?relay`; Banked call to: osal_mem_alloc
|
||
\ 000074 8A.. MOV ?V4,R2
|
||
\ 000076 8B.. MOV ?V5,R3
|
||
\ 000078 EA MOV A,R2
|
||
\ 000079 4B ORL A,R3
|
||
\ 00007A 6037 JZ ??ZDO_ProcessMgmtBindReq_0
|
||
1618 {
|
||
1619 status = ZSuccess;
|
||
\ 00007C 75..00 MOV ?V1,#0x0
|
||
1620
|
||
1621 // Convert buffer to list
|
||
1622 pList = (apsBindingItem_t *)pBuf;
|
||
\ 00007F 8A.. MOV ?V6,R2
|
||
\ 000081 8B.. MOV ?V7,R3
|
||
1623
|
||
1624 // Loop through items and build list
|
||
1625 for ( x = 0; x < numItems; x++ )
|
||
\ 000083 75..00 MOV ?V0,#0x0
|
||
\ 000086 801F SJMP ??ZDO_ProcessMgmtBindReq_3
|
||
1626 {
|
||
1627 APSME_GetRequest( apsBindingTable, (x + StartIndex), (void*)pList );
|
||
\ ??ZDO_ProcessMgmtBindReq_4:
|
||
\ 000088 ; Setup parameters for call to function APSME_GetRequest
|
||
\ 000088 AC.. MOV R4,?V6
|
||
\ 00008A AD.. MOV R5,?V7
|
||
\ 00008C A8.. MOV R0,?V2
|
||
\ 00008E E5.. MOV A,?V0
|
||
\ 000090 28 ADD A,R0
|
||
\ 000091 FA MOV R2,A
|
||
\ 000092 E4 CLR A
|
||
\ 000093 3400 ADDC A,#0x0
|
||
\ 000095 FB MOV R3,A
|
||
\ 000096 79A2 MOV R1,#-0x5e
|
||
\ 000098 12.... LCALL `??APSME_GetRequest::?relay`; Banked call to: APSME_GetRequest
|
||
1628 pList++;
|
||
\ 00009B E5.. MOV A,?V6
|
||
\ 00009D 2415 ADD A,#0x15
|
||
\ 00009F F5.. MOV ?V6,A
|
||
\ 0000A1 5002 JNC ??ZDO_ProcessMgmtBindReq_5
|
||
\ 0000A3 05.. INC ?V7
|
||
1629 }
|
||
\ ??ZDO_ProcessMgmtBindReq_5:
|
||
\ 0000A5 05.. INC ?V0
|
||
\ ??ZDO_ProcessMgmtBindReq_3:
|
||
\ 0000A7 C3 CLR C
|
||
\ 0000A8 E5.. MOV A,?V0
|
||
\ 0000AA 9E SUBB A,R6
|
||
\ 0000AB E4 CLR A
|
||
\ 0000AC 9F SUBB A,R7
|
||
\ 0000AD 40D9 JC ??ZDO_ProcessMgmtBindReq_4
|
||
\ 0000AF EE MOV A,R6
|
||
\ 0000B0 F9 MOV R1,A
|
||
\ 0000B1 8005 SJMP ??ZDO_ProcessMgmtBindReq_6
|
||
1630
|
||
1631 }
|
||
1632 else
|
||
1633 {
|
||
1634 status = ZDP_NOT_PERMITTED;
|
||
\ ??ZDO_ProcessMgmtBindReq_0:
|
||
\ 0000B3 75..8B MOV ?V1,#-0x75
|
||
1635 numItems = 0;
|
||
\ 0000B6 7900 MOV R1,#0x0
|
||
1636 }
|
||
1637
|
||
1638 // Send response
|
||
1639 ZDP_MgmtBindRsp( inMsg->TransSeq, &(inMsg->srcAddr), status, (byte)maxNumItems, StartIndex,
|
||
1640 (byte)numItems, (apsBindingItem_t *)pBuf, false );
|
||
\ ??ZDO_ProcessMgmtBindReq_6:
|
||
\ 0000B8 ; Setup parameters for call to function ZDP_MgmtBindRsp
|
||
\ 0000B8 75..00 MOV ?V0,#0x0
|
||
\ 0000BB 78.. MOV R0,#?V0
|
||
\ 0000BD 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 0000C0 78.. MOV R0,#?V4
|
||
\ 0000C2 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 0000C5 E9 MOV A,R1
|
||
\ 0000C6 F5.. MOV ?V0,A
|
||
\ 0000C8 78.. MOV R0,#?V0
|
||
\ 0000CA 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 0000CD E5.. MOV A,?V2
|
||
\ 0000CF F5.. MOV ?V0,A
|
||
\ 0000D1 78.. MOV R0,#?V0
|
||
\ 0000D3 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 0000D6 7405 MOV A,#0x5
|
||
\ 0000D8 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000DB E0 MOVX A,@DPTR
|
||
\ 0000DC FD MOV R5,A
|
||
\ 0000DD AC.. MOV R4,?V1
|
||
\ 0000DF 7407 MOV A,#0x7
|
||
\ 0000E1 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000E4 12.... LCALL ?Subroutine120 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_196:
|
||
\ 0000E7 7407 MOV A,#0x7
|
||
\ 0000E9 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000EC 12.... LCALL ?Subroutine82 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_132:
|
||
\ 0000EF 12.... LCALL `??ZDP_MgmtBindRsp::?relay`; Banked call to: ZDP_MgmtBindRsp
|
||
\ 0000F2 7405 MOV A,#0x5
|
||
\ 0000F4 12.... LCALL ?DEALLOC_XSTACK8
|
||
1641
|
||
1642 if ( pBuf )
|
||
\ 0000F7 E5.. MOV A,?V4
|
||
\ 0000F9 45.. ORL A,?V5
|
||
\ 0000FB 6007 JZ ??ZDO_ProcessMgmtBindReq_7
|
||
1643 {
|
||
1644 osal_mem_free( pBuf );
|
||
\ 0000FD ; Setup parameters for call to function osal_mem_free
|
||
\ 0000FD AA.. MOV R2,?V4
|
||
\ 0000FF AB.. MOV R3,?V5
|
||
\ 000101 12.... LCALL `??osal_mem_free::?relay`; Banked call to: osal_mem_free
|
||
1645 }
|
||
1646 #else
|
||
1647 (void)inMsg;
|
||
1648 #endif
|
||
1649 }
|
||
\ ??ZDO_ProcessMgmtBindReq_7:
|
||
\ 000104 7404 MOV A,#0x4
|
||
\ 000106 02.... LJMP ?Subroutine7 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine273_0:
|
||
\ 000000 12.... LCALL ??Subroutine292_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_709:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine292_0:
|
||
\ 000000 12.... LCALL ?Subroutine217 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_713:
|
||
\ 000003 3B ADDC A,R3
|
||
\ 000004 22 RET
|
||
1650
|
||
1651 /*********************************************************************
|
||
1652 * @fn ZDO_ProcessMgmtDirectJoinReq
|
||
1653 *
|
||
1654 * @brief This function finishes the processing of the Management
|
||
1655 * Direct Join Request and generates the response.
|
||
1656 *
|
||
1657 * @param inMsg - incoming message (request)
|
||
1658 *
|
||
1659 * @return none
|
||
1660 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
1661 void ZDO_ProcessMgmtDirectJoinReq( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ProcessMgmtDirectJoinReq:
|
||
1662 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 74F6 MOV A,#-0xa
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 10
|
||
\ 000005 ; Auto size: 1
|
||
\ 000005 74FF MOV A,#-0x1
|
||
\ 000007 12.... LCALL ?ALLOC_XSTACK8
|
||
\ 00000A 12.... LCALL ?Subroutine130 & 0xFFFF
|
||
1663 uint8 *deviceAddr;
|
||
1664 uint8 capInfo;
|
||
1665 uint8 stat;
|
||
1666
|
||
1667 // Parse the message
|
||
1668 deviceAddr = inMsg->asdu;
|
||
1669 capInfo = inMsg->asdu[Z_EXTADDR_LEN];
|
||
1670
|
||
1671 stat = (byte) NLME_DirectJoinRequest( deviceAddr, capInfo );
|
||
\ ??CrossCallReturnLabel_439:
|
||
\ 00000D 12.... LCALL ??Subroutine256_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_488:
|
||
\ 000010 ; Setup parameters for call to function NLME_DirectJoinRequest
|
||
\ 000010 8A82 MOV DPL,R2
|
||
\ 000012 F583 MOV DPH,A
|
||
\ 000014 A3 INC DPTR
|
||
\ 000015 A3 INC DPTR
|
||
\ 000016 A3 INC DPTR
|
||
\ 000017 A3 INC DPTR
|
||
\ 000018 A3 INC DPTR
|
||
\ 000019 A3 INC DPTR
|
||
\ 00001A A3 INC DPTR
|
||
\ 00001B A3 INC DPTR
|
||
\ 00001C E0 MOVX A,@DPTR
|
||
\ 00001D F9 MOV R1,A
|
||
\ 00001E 12.... LCALL `??NLME_DirectJoinRequest::?relay`; Banked call to: NLME_DirectJoinRequest
|
||
\ 000021 E9 MOV A,R1
|
||
\ 000022 85..82 MOV DPL,?XSP + 0
|
||
\ 000025 85..83 MOV DPH,?XSP + 1
|
||
\ 000028 F0 MOVX @DPTR,A
|
||
1672
|
||
1673 ZDP_MgmtDirectJoinRsp( inMsg->TransSeq, &(inMsg->srcAddr), stat, false );
|
||
\ 000029 ; Setup parameters for call to function ZDP_SendData
|
||
\ 000029 75..00 MOV ?V0,#0x0
|
||
\ 00002C 78.. MOV R0,#?V0
|
||
\ 00002E 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 000031 7401 MOV A,#0x1
|
||
\ 000033 12.... LCALL ?XSTACK_DISP100_8
|
||
\ 000036 88.. MOV ?V0,R0
|
||
\ 000038 89.. MOV ?V1,R1
|
||
\ 00003A 78.. MOV R0,#?V0
|
||
\ 00003C 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 00003F 75..35 MOV ?V0,#0x35
|
||
\ 000042 75..80 MOV ?V1,#-0x80
|
||
\ 000045 78.. MOV R0,#?V0
|
||
\ 000047 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 00004A 12.... LCALL ?Subroutine139 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_225:
|
||
\ 00004D 12.... LCALL ?DEALLOC_XSTACK8
|
||
1674 }
|
||
\ 000050 REQUIRE ?Subroutine8
|
||
\ 000050 ; // Fall through to label ?Subroutine8
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine8:
|
||
\ 000000 7401 MOV A,#0x1
|
||
\ 000002 02.... LJMP ??Subroutine224_0 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine139:
|
||
\ 000000 7901 MOV R1,#0x1
|
||
\ 000002 EE MOV A,R6
|
||
\ 000003 2402 ADD A,#0x2
|
||
\ 000005 FC MOV R4,A
|
||
\ 000006 E4 CLR A
|
||
\ 000007 3F ADDC A,R7
|
||
\ 000008 FD MOV R5,A
|
||
\ 000009 EE MOV A,R6
|
||
\ 00000A 240F ADD A,#0xf
|
||
\ 00000C FA MOV R2,A
|
||
\ 00000D E4 CLR A
|
||
\ 00000E 3F ADDC A,R7
|
||
\ 00000F 12.... LCALL ?Subroutine207 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_445:
|
||
\ 000012 22 RET
|
||
1675
|
||
1676 /*********************************************************************
|
||
1677 * @fn ZDO_ProcessMgmtLeaveReq
|
||
1678 *
|
||
1679 * @brief This function processes a Management Leave Request
|
||
1680 * and generates the response.
|
||
1681 *
|
||
1682 * @param inMsg - incoming message (request)
|
||
1683 *
|
||
1684 * @return none
|
||
1685 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine97:
|
||
\ 000000 F583 MOV DPH,A
|
||
\ 000002 REQUIRE ??Subroutine235_0
|
||
\ 000002 ; // Fall through to label ??Subroutine235_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
1686 void ZDO_ProcessMgmtLeaveReq( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ProcessMgmtLeaveReq:
|
||
1687 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 74F4 MOV A,#-0xc
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 12
|
||
\ 000005 ; Auto size: 6
|
||
\ 000005 74FA MOV A,#-0x6
|
||
\ 000007 12.... LCALL ?ALLOC_XSTACK8
|
||
\ 00000A 12.... LCALL ?Subroutine137 & 0xFFFF
|
||
1688 NLME_LeaveReq_t req;
|
||
1689 ZStatus_t status;
|
||
1690 uint8 option;
|
||
1691 uint8 *msg = inMsg->asdu;
|
||
\ ??CrossCallReturnLabel_449:
|
||
\ 00000D 35.. ADDC A,?V1
|
||
\ 00000F 12.... LCALL ?Subroutine97 & 0xFFFF
|
||
1692
|
||
1693 if ( ( AddrMgrExtAddrValid( msg ) == FALSE ) ||
|
||
1694 ( osal_ExtAddrEqual( msg, NLME_GetExtAddr() ) == TRUE ) )
|
||
\ ??CrossCallReturnLabel_390:
|
||
\ 000012 ; Setup parameters for call to function AddrMgrExtAddrValid
|
||
\ 000012 EE MOV A,R6
|
||
\ 000013 FA MOV R2,A
|
||
\ 000014 EF MOV A,R7
|
||
\ 000015 FB MOV R3,A
|
||
\ 000016 12.... LCALL `??AddrMgrExtAddrValid::?relay`; Banked call to: AddrMgrExtAddrValid
|
||
\ 000019 E9 MOV A,R1
|
||
\ 00001A 600F JZ ??ZDO_ProcessMgmtLeaveReq_0
|
||
\ 00001C ; Setup parameters for call to function NLME_GetExtAddr
|
||
\ 00001C 12.... LCALL ?Subroutine126 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_209:
|
||
\ 00001F ; Setup parameters for call to function sAddrExtCmp
|
||
\ 00001F EE MOV A,R6
|
||
\ 000020 FA MOV R2,A
|
||
\ 000021 EF MOV A,R7
|
||
\ 000022 FB MOV R3,A
|
||
\ 000023 12.... LCALL `??sAddrExtCmp::?relay`; Banked call to: sAddrExtCmp
|
||
\ 000026 E9 MOV A,R1
|
||
\ 000027 6401 XRL A,#0x1
|
||
\ 000029 700A JNZ ??ZDO_ProcessMgmtLeaveReq_1
|
||
1695 {
|
||
1696 // Remove this device
|
||
1697 req.extAddr = NULL;
|
||
\ ??ZDO_ProcessMgmtLeaveReq_0:
|
||
\ 00002B 7401 MOV A,#0x1
|
||
\ 00002D 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000030 E4 CLR A
|
||
\ 000031 F0 MOVX @DPTR,A
|
||
\ 000032 A3 INC DPTR
|
||
\ 000033 8009 SJMP ??ZDO_ProcessMgmtLeaveReq_2
|
||
1698 }
|
||
1699 else
|
||
1700 {
|
||
1701 // Remove child device
|
||
1702 req.extAddr = msg;
|
||
\ ??ZDO_ProcessMgmtLeaveReq_1:
|
||
\ 000035 7401 MOV A,#0x1
|
||
\ 000037 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00003A EE MOV A,R6
|
||
\ 00003B F0 MOVX @DPTR,A
|
||
\ 00003C A3 INC DPTR
|
||
\ 00003D EF MOV A,R7
|
||
1703 }
|
||
\ ??ZDO_ProcessMgmtLeaveReq_2:
|
||
\ 00003E 12.... LCALL ?Subroutine24 & 0xFFFF
|
||
1704
|
||
1705 option = msg[Z_EXTADDR_LEN];
|
||
\ ??CrossCallReturnLabel_19:
|
||
\ 000041 F8 MOV R0,A
|
||
1706 if ( option & ZDP_MGMT_LEAVE_REQ_RC )
|
||
\ 000042 A2E6 MOV C,0xE0 /* A */.6
|
||
\ 000044 5008 JNC ??ZDO_ProcessMgmtLeaveReq_3
|
||
1707 {
|
||
1708 req.removeChildren = TRUE;
|
||
\ 000046 7403 MOV A,#0x3
|
||
\ 000048 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00004B 7401 MOV A,#0x1
|
||
\ 00004D F0 MOVX @DPTR,A
|
||
1709 }
|
||
1710
|
||
1711 if ( option & ZDP_MGMT_LEAVE_REQ_REJOIN )
|
||
\ ??ZDO_ProcessMgmtLeaveReq_3:
|
||
\ 00004E E8 MOV A,R0
|
||
\ 00004F A2E7 MOV C,0xE0 /* A */.7
|
||
\ 000051 5008 JNC ??ZDO_ProcessMgmtLeaveReq_4
|
||
1712 {
|
||
1713 req.rejoin = TRUE;
|
||
\ 000053 7404 MOV A,#0x4
|
||
\ 000055 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000058 7401 MOV A,#0x1
|
||
\ 00005A F0 MOVX @DPTR,A
|
||
1714 }
|
||
1715
|
||
1716 req.silent = FALSE;
|
||
\ ??ZDO_ProcessMgmtLeaveReq_4:
|
||
\ 00005B 7405 MOV A,#0x5
|
||
\ 00005D 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000060 E4 CLR A
|
||
\ 000061 F0 MOVX @DPTR,A
|
||
1717
|
||
1718 status = NLME_LeaveReq( &req );
|
||
\ 000062 ; Setup parameters for call to function NLME_LeaveReq
|
||
\ 000062 04 INC A
|
||
\ 000063 12.... LCALL ?XSTACK_DISP101_8
|
||
\ 000066 12.... LCALL `??NLME_LeaveReq::?relay`; Banked call to: NLME_LeaveReq
|
||
\ 000069 E9 MOV A,R1
|
||
\ 00006A 85..82 MOV DPL,?XSP + 0
|
||
\ 00006D 85..83 MOV DPH,?XSP + 1
|
||
\ 000070 F0 MOVX @DPTR,A
|
||
1719
|
||
1720 ZDP_MgmtLeaveRsp( inMsg->TransSeq, &(inMsg->srcAddr), status, FALSE );
|
||
\ 000071 ; Setup parameters for call to function ZDP_SendData
|
||
\ 000071 75..00 MOV ?V2,#0x0
|
||
\ 000074 78.. MOV R0,#?V2
|
||
\ 000076 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 000079 7401 MOV A,#0x1
|
||
\ 00007B 12.... LCALL ?XSTACK_DISP100_8
|
||
\ 00007E 88.. MOV ?V2,R0
|
||
\ 000080 89.. MOV ?V3,R1
|
||
\ 000082 78.. MOV R0,#?V2
|
||
\ 000084 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000087 75..34 MOV ?V2,#0x34
|
||
\ 00008A 75..80 MOV ?V3,#-0x80
|
||
\ 00008D 78.. MOV R0,#?V2
|
||
\ 00008F 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000092 12.... LCALL ?Subroutine143 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_230:
|
||
\ 000095 12.... LCALL ?DEALLOC_XSTACK8
|
||
1721 }
|
||
\ 000098 7406 MOV A,#0x6
|
||
\ 00009A 02.... LJMP ?Subroutine2 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine24:
|
||
\ 000000 12.... LCALL ?Subroutine169 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_283:
|
||
\ 000003 A3 INC DPTR
|
||
\ 000004 A3 INC DPTR
|
||
\ 000005 A3 INC DPTR
|
||
\ 000006 E0 MOVX A,@DPTR
|
||
\ 000007 22 RET
|
||
1722
|
||
1723
|
||
1724 /*********************************************************************
|
||
1725 * @fn ZDO_ProcessMgmtPermitJoinReq
|
||
1726 *
|
||
1727 * @brief This function processes a Management Permit Join Request
|
||
1728 * and generates the response.
|
||
1729 *
|
||
1730 * @param inMsg - incoming message (request)
|
||
1731 *
|
||
1732 * @return none
|
||
1733 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
1734 void ZDO_ProcessMgmtPermitJoinReq( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ProcessMgmtPermitJoinReq:
|
||
1735 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 74F6 MOV A,#-0xa
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 10
|
||
\ 000005 ; Auto size: 1
|
||
\ 000005 74FF MOV A,#-0x1
|
||
\ 000007 12.... LCALL ?ALLOC_XSTACK8
|
||
\ 00000A 12.... LCALL ?Subroutine130 & 0xFFFF
|
||
1736 uint8 stat;
|
||
1737 uint8 duration;
|
||
1738 uint8 tcsig;
|
||
1739
|
||
1740 duration = inMsg->asdu[ZDP_MGMT_PERMIT_JOIN_REQ_DURATION];
|
||
1741 tcsig = inMsg->asdu[ZDP_MGMT_PERMIT_JOIN_REQ_TC_SIG];
|
||
1742
|
||
1743 // Set the network layer permit join duration
|
||
1744 stat = (byte) NLME_PermitJoiningRequest( duration );
|
||
\ ??CrossCallReturnLabel_440:
|
||
\ 00000D 12.... LCALL ??Subroutine238_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_395:
|
||
\ 000010 F9 MOV R1,A
|
||
\ 000011 12.... LCALL `??NLME_PermitJoiningRequest::?relay`; Banked call to: NLME_PermitJoiningRequest
|
||
\ 000014 E9 MOV A,R1
|
||
\ 000015 85..82 MOV DPL,?XSP + 0
|
||
\ 000018 85..83 MOV DPH,?XSP + 1
|
||
\ 00001B 12.... LCALL ?Subroutine33 & 0xFFFF
|
||
1745
|
||
1746 // Handle the Trust Center Significance
|
||
1747 if ( ZG_SECURE_ENABLED && ZG_BUILD_COORDINATOR_TYPE && ZG_DEVICE_COORDINATOR_TYPE )
|
||
1748 {
|
||
1749 if ( tcsig == TRUE )
|
||
1750 {
|
||
1751 ZDSecMgrPermitJoining( duration );
|
||
1752 }
|
||
1753 }
|
||
1754
|
||
1755 // Send a response if unicast
|
||
1756 if ( !inMsg->wasBroadcast )
|
||
\ ??CrossCallReturnLabel_40:
|
||
\ 00001E 7027 JNZ ??ZDO_ProcessMgmtPermitJoinReq_0
|
||
1757 {
|
||
1758 ZDP_MgmtPermitJoinRsp( inMsg->TransSeq, &(inMsg->srcAddr), stat, false );
|
||
\ 000020 ; Setup parameters for call to function ZDP_SendData
|
||
\ 000020 75..00 MOV ?V0,#0x0
|
||
\ 000023 78.. MOV R0,#?V0
|
||
\ 000025 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 000028 7401 MOV A,#0x1
|
||
\ 00002A 12.... LCALL ?XSTACK_DISP100_8
|
||
\ 00002D 88.. MOV ?V0,R0
|
||
\ 00002F 89.. MOV ?V1,R1
|
||
\ 000031 78.. MOV R0,#?V0
|
||
\ 000033 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000036 75..36 MOV ?V0,#0x36
|
||
\ 000039 75..80 MOV ?V1,#-0x80
|
||
\ 00003C 78.. MOV R0,#?V0
|
||
\ 00003E 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000041 12.... LCALL ?Subroutine139 & 0xFFFF
|
||
1759 }
|
||
\ ??CrossCallReturnLabel_226:
|
||
\ 000044 12.... LCALL ?DEALLOC_XSTACK8
|
||
1760 }
|
||
\ ??ZDO_ProcessMgmtPermitJoinReq_0:
|
||
\ 000047 02.... LJMP ?Subroutine8 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine33:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 EE MOV A,R6
|
||
\ 000002 240B ADD A,#0xb
|
||
\ 000004 F582 MOV DPL,A
|
||
\ 000006 E4 CLR A
|
||
\ 000007 3F ADDC A,R7
|
||
\ 000008 F583 MOV DPH,A
|
||
\ 00000A E0 MOVX A,@DPTR
|
||
\ 00000B 22 RET
|
||
1761
|
||
1762 /*
|
||
1763 * This function stub allows the next higher layer to be notified of
|
||
1764 * a permit joining timeout.
|
||
1765 */
|
||
1766 /*********************************************************************
|
||
1767 * @fn ZDO_ProcessMgmtPermitJoinTimeout
|
||
1768 *
|
||
1769 * @brief This function stub allows the next higher layer to be
|
||
1770 * notified of a permit joining timeout. Currently, this
|
||
1771 * directly bypasses the APS layer.
|
||
1772 *
|
||
1773 * @param none
|
||
1774 *
|
||
1775 * @return none
|
||
1776 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
1777 void ZDO_ProcessMgmtPermitJoinTimeout( void )
|
||
\ NLME_PermitJoiningTimeout:
|
||
1778 {
|
||
\ 000000 ; Saved register size: 0
|
||
\ 000000 ; Auto size: 0
|
||
1779 #if defined( ZDO_MGMT_PERMIT_JOIN_RESPONSE )
|
||
1780 // Currently, only the ZDSecMgr needs to be notified
|
||
1781 if ( ZG_SECURE_ENABLED && ZG_BUILD_COORDINATOR_TYPE && ZG_DEVICE_COORDINATOR_TYPE )
|
||
1782 {
|
||
1783 ZDSecMgrPermitJoiningTimeout();
|
||
1784 }
|
||
1785 #endif
|
||
1786 }
|
||
\ 000000 02.... LJMP ?BRET
|
||
1787
|
||
1788 /*********************************************************************
|
||
1789 * @fn ZDO_ProcessUserDescReq
|
||
1790 *
|
||
1791 * @brief This function finishes the processing of the User
|
||
1792 * Descriptor Request and generates the response.
|
||
1793 *
|
||
1794 * @param inMsg - incoming message (request)
|
||
1795 *
|
||
1796 * @return none
|
||
1797 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
1798 void ZDO_ProcessUserDescReq( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ProcessUserDescReq:
|
||
1799 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 74F4 MOV A,#-0xc
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 12
|
||
\ 000005 ; Auto size: 17
|
||
\ 000005 74EF MOV A,#-0x11
|
||
\ 000007 12.... LCALL ?ALLOC_XSTACK8
|
||
\ 00000A EA MOV A,R2
|
||
\ 00000B FE MOV R6,A
|
||
\ 00000C EB MOV A,R3
|
||
\ 00000D FF MOV R7,A
|
||
1800 uint16 aoi = BUILD_UINT16( inMsg->asdu[0], inMsg->asdu[1] );
|
||
\ 00000E 12.... LCALL ?Subroutine136 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_363:
|
||
\ 000011 12.... LCALL ?Subroutine72 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_115:
|
||
\ 000014 F5.. MOV ?V0,A
|
||
\ 000016 E4 CLR A
|
||
\ 000017 39 ADDC A,R1
|
||
\ 000018 F5.. MOV ?V1,A
|
||
1801 UserDescriptorFormat_t userDesc;
|
||
1802
|
||
1803 if ( (aoi == ZDAppNwkAddr.addr.shortAddr) && (ZSUCCESS == osal_nv_read(
|
||
1804 ZCD_NV_USERDESC, 0, sizeof(UserDescriptorFormat_t), &userDesc )) )
|
||
\ 00001A 90.... MOV DPTR,#ZDAppNwkAddr
|
||
\ 00001D E0 MOVX A,@DPTR
|
||
\ 00001E 6A XRL A,R2
|
||
\ 00001F 7003 JNZ ??ZDO_ProcessUserDescReq_0
|
||
\ 000021 A3 INC DPTR
|
||
\ 000022 E0 MOVX A,@DPTR
|
||
\ 000023 69 XRL A,R1
|
||
\ ??ZDO_ProcessUserDescReq_0:
|
||
\ 000024 7052 JNZ ??ZDO_ProcessUserDescReq_1
|
||
\ 000026 ; Setup parameters for call to function osal_nv_read
|
||
\ 000026 A8.. MOV R0,?XSP + 0
|
||
\ 000028 A9.. MOV R1,?XSP + 1
|
||
\ 00002A 88.. MOV ?V2,R0
|
||
\ 00002C 89.. MOV ?V3,R1
|
||
\ 00002E 78.. MOV R0,#?V2
|
||
\ 000030 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000033 75..11 MOV ?V2,#0x11
|
||
\ 000036 75..00 MOV ?V3,#0x0
|
||
\ 000039 78.. MOV R0,#?V2
|
||
\ 00003B 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 00003E 7C00 MOV R4,#0x0
|
||
\ 000040 7D00 MOV R5,#0x0
|
||
\ 000042 7A81 MOV R2,#-0x7f
|
||
\ 000044 7B00 MOV R3,#0x0
|
||
\ 000046 12.... LCALL `??osal_nv_read::?relay`; Banked call to: osal_nv_read
|
||
\ 000049 7404 MOV A,#0x4
|
||
\ 00004B 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 00004E E9 MOV A,R1
|
||
\ 00004F 7027 JNZ ??ZDO_ProcessUserDescReq_1
|
||
1805 {
|
||
1806 ZDP_UserDescRsp( inMsg->TransSeq, &(inMsg->srcAddr), aoi, &userDesc, false );
|
||
\ 000051 ; Setup parameters for call to function ZDP_UserDescRsp
|
||
\ 000051 75..00 MOV ?V2,#0x0
|
||
\ 000054 78.. MOV R0,#?V2
|
||
\ 000056 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 000059 7401 MOV A,#0x1
|
||
\ 00005B 12.... LCALL ?XSTACK_DISP100_8
|
||
\ 00005E 88.. MOV ?V2,R0
|
||
\ 000060 89.. MOV ?V3,R1
|
||
\ 000062 78.. MOV R0,#?V2
|
||
\ 000064 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000067 AC.. MOV R4,?V0
|
||
\ 000069 AD.. MOV R5,?V1
|
||
\ 00006B 12.... LCALL ?Subroutine138 & 0xFFFF
|
||
1807 }
|
||
\ ??CrossCallReturnLabel_223:
|
||
\ 00006E 12.... LCALL `??ZDP_UserDescRsp::?relay`; Banked call to: ZDP_UserDescRsp
|
||
\ 000071 7403 MOV A,#0x3
|
||
\ 000073 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 000076 8020 SJMP ??ZDO_ProcessUserDescReq_2
|
||
1808 else
|
||
1809 {
|
||
1810 ZDP_GenericRsp(inMsg->TransSeq, &(inMsg->srcAddr),
|
||
1811 ZDP_NOT_SUPPORTED, aoi, User_Desc_rsp, inMsg->SecurityUse );
|
||
\ ??ZDO_ProcessUserDescReq_1:
|
||
\ 000078 ; Setup parameters for call to function ZDP_GenericRsp
|
||
\ 000078 75..11 MOV ?V2,#0x11
|
||
\ 00007B 75..80 MOV ?V3,#-0x80
|
||
\ 00007E 78.. MOV R0,#?V2
|
||
\ 000080 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000083 78.. MOV R0,#?V0
|
||
\ 000085 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000088 12.... LCALL ?Subroutine146 & 0xFFFF
|
||
1812 }
|
||
\ ??CrossCallReturnLabel_237:
|
||
\ 00008B 7C84 MOV R4,#-0x7c
|
||
\ 00008D 12.... LCALL ?Subroutine138 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_224:
|
||
\ 000090 12.... LCALL `??ZDP_GenericRsp::?relay`; Banked call to: ZDP_GenericRsp
|
||
\ 000093 7404 MOV A,#0x4
|
||
\ 000095 12.... LCALL ?DEALLOC_XSTACK8
|
||
1813 }
|
||
\ ??ZDO_ProcessUserDescReq_2:
|
||
\ 000098 7411 MOV A,#0x11
|
||
\ 00009A 02.... LJMP ?Subroutine2 & 0xFFFF
|
||
1814
|
||
1815 /*********************************************************************
|
||
1816 * @fn ZDO_ProcessUserDescSet
|
||
1817 *
|
||
1818 * @brief This function finishes the processing of the User
|
||
1819 * Descriptor Set and generates the response.
|
||
1820 *
|
||
1821 * @param inMsg - incoming message (request)
|
||
1822 *
|
||
1823 * @return none
|
||
1824 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
1825 void ZDO_ProcessUserDescSet( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ProcessUserDescSet:
|
||
1826 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V5
|
||
\ 000000 74F2 MOV A,#-0xe
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 14
|
||
\ 000005 ; Auto size: 21
|
||
\ 000005 74EB MOV A,#-0x15
|
||
\ 000007 12.... LCALL ?ALLOC_XSTACK8
|
||
\ 00000A 8A.. MOV ?V4,R2
|
||
\ 00000C 8B.. MOV ?V5,R3
|
||
1827 uint8 *msg;
|
||
1828 uint16 aoi;
|
||
1829 UserDescriptorFormat_t userDesc;
|
||
1830 uint8 outMsg[3];
|
||
1831 uint8 status;
|
||
1832
|
||
1833 msg = inMsg->asdu;
|
||
\ 00000E 12.... LCALL ??Subroutine246_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_452:
|
||
\ 000011 35.. ADDC A,?V5
|
||
\ 000013 12.... LCALL ?Subroutine85 & 0xFFFF
|
||
1834 aoi = BUILD_UINT16( msg[0], msg[1] );
|
||
\ ??CrossCallReturnLabel_137:
|
||
\ 000016 FA MOV R2,A
|
||
\ 000017 E4 CLR A
|
||
\ 000018 CA XCH A,R2
|
||
\ 000019 FB MOV R3,A
|
||
\ 00001A EC MOV A,R4
|
||
\ 00001B 2A ADD A,R2
|
||
\ 00001C FE MOV R6,A
|
||
\ 00001D E4 CLR A
|
||
\ 00001E 3B ADDC A,R3
|
||
\ 00001F FF MOV R7,A
|
||
1835
|
||
1836 if ( aoi == ZDAppNwkAddr.addr.shortAddr )
|
||
\ 000020 90.... MOV DPTR,#ZDAppNwkAddr
|
||
\ 000023 E0 MOVX A,@DPTR
|
||
\ 000024 6E XRL A,R6
|
||
\ 000025 7003 JNZ ??ZDO_ProcessUserDescSet_0
|
||
\ 000027 A3 INC DPTR
|
||
\ 000028 E0 MOVX A,@DPTR
|
||
\ 000029 6F XRL A,R7
|
||
\ ??ZDO_ProcessUserDescSet_0:
|
||
\ 00002A 6003 JZ $+5
|
||
\ 00002C 02.... LJMP ??ZDO_ProcessUserDescSet_1 & 0xFFFF
|
||
1837 {
|
||
1838 userDesc.len = (msg[2] < AF_MAX_USER_DESCRIPTOR_LEN) ? msg[2] : AF_MAX_USER_DESCRIPTOR_LEN;
|
||
\ 00002F 8882 MOV DPL,R0
|
||
\ 000031 8983 MOV DPH,R1
|
||
\ 000033 A3 INC DPTR
|
||
\ 000034 A3 INC DPTR
|
||
\ 000035 E0 MOVX A,@DPTR
|
||
\ 000036 9410 SUBB A,#0x10
|
||
\ 000038 5009 JNC ??ZDO_ProcessUserDescSet_2
|
||
\ 00003A 8882 MOV DPL,R0
|
||
\ 00003C 8983 MOV DPH,R1
|
||
\ 00003E 12.... LCALL ?Subroutine107 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_372:
|
||
\ 000041 8008 SJMP ??ZDO_ProcessUserDescSet_3
|
||
\ ??ZDO_ProcessUserDescSet_2:
|
||
\ 000043 85..82 MOV DPL,?XSP + 0
|
||
\ 000046 85..83 MOV DPH,?XSP + 1
|
||
\ 000049 7410 MOV A,#0x10
|
||
\ ??ZDO_ProcessUserDescSet_3:
|
||
\ 00004B F0 MOVX @DPTR,A
|
||
\ 00004C E0 MOVX A,@DPTR
|
||
\ 00004D C0E0 PUSH A
|
||
\ 00004F 7404 MOV A,#0x4
|
||
\ 000051 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000054 D0E0 POP A
|
||
\ 000056 12.... LCALL ?Subroutine38 & 0xFFFF
|
||
1839 msg ++; // increment one for the length field
|
||
1840
|
||
1841 osal_memcpy( userDesc.desc, &msg[2], userDesc.len );
|
||
\ ??CrossCallReturnLabel_50:
|
||
\ 000059 A982 MOV R1,DPL
|
||
\ 00005B AA83 MOV R2,DPH
|
||
\ 00005D 89.. MOV ?V0,R1
|
||
\ 00005F 8A.. MOV ?V1,R2
|
||
\ 000061 75..00 MOV ?V2,#0x0
|
||
\ 000064 78.. MOV R0,#?V0
|
||
\ 000066 12.... LCALL ?PUSH_XSTACK_I_THREE
|
||
\ 000069 7407 MOV A,#0x7
|
||
\ 00006B 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00006E E0 MOVX A,@DPTR
|
||
\ 00006F FC MOV R4,A
|
||
\ 000070 7D00 MOV R5,#0x0
|
||
\ 000072 7408 MOV A,#0x8
|
||
\ 000074 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000077 AA82 MOV R2,DPL
|
||
\ 000079 AB83 MOV R3,DPH
|
||
\ 00007B 12.... LCALL ??Subroutine280_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_637:
|
||
\ 00007E 12.... LCALL ?DEALLOC_XSTACK8
|
||
1842 osal_nv_write( ZCD_NV_USERDESC, 0, sizeof(UserDescriptorFormat_t), &userDesc );
|
||
\ 000081 ; Setup parameters for call to function osal_nv_write
|
||
\ 000081 7404 MOV A,#0x4
|
||
\ 000083 12.... LCALL ?XSTACK_DISP100_8
|
||
\ 000086 88.. MOV ?V0,R0
|
||
\ 000088 89.. MOV ?V1,R1
|
||
\ 00008A 78.. MOV R0,#?V0
|
||
\ 00008C 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 00008F 75..11 MOV ?V0,#0x11
|
||
\ 000092 75..00 MOV ?V1,#0x0
|
||
\ 000095 78.. MOV R0,#?V0
|
||
\ 000097 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 00009A 7C00 MOV R4,#0x0
|
||
\ 00009C 7D00 MOV R5,#0x0
|
||
\ 00009E 7A81 MOV R2,#-0x7f
|
||
\ 0000A0 7B00 MOV R3,#0x0
|
||
\ 0000A2 12.... LCALL `??osal_nv_write::?relay`; Banked call to: osal_nv_write
|
||
\ 0000A5 7404 MOV A,#0x4
|
||
\ 0000A7 12.... LCALL ?DEALLOC_XSTACK8
|
||
1843 if ( userDesc.len != 0 )
|
||
\ 0000AA 7404 MOV A,#0x4
|
||
\ 0000AC 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000AF E0 MOVX A,@DPTR
|
||
\ 0000B0 90.... MOV DPTR,#ZDO_Config_Node_Descriptor
|
||
\ 0000B3 6005 JZ ??ZDO_ProcessUserDescSet_4
|
||
1844 {
|
||
1845 ZDO_Config_Node_Descriptor.UserDescAvail = TRUE;
|
||
\ 0000B5 E0 MOVX A,@DPTR
|
||
\ 0000B6 D2E4 SETB 0xE0 /* A */.4
|
||
\ 0000B8 8003 SJMP ??ZDO_ProcessUserDescSet_5
|
||
1846 }
|
||
1847 else
|
||
1848 {
|
||
1849 ZDO_Config_Node_Descriptor.UserDescAvail = FALSE;
|
||
\ ??ZDO_ProcessUserDescSet_4:
|
||
\ 0000BA E0 MOVX A,@DPTR
|
||
\ 0000BB C2E4 CLR 0xE0 /* A */.4
|
||
\ ??ZDO_ProcessUserDescSet_5:
|
||
\ 0000BD F0 MOVX @DPTR,A
|
||
1850 }
|
||
1851
|
||
1852 status = ZDP_SUCCESS;
|
||
\ 0000BE 85..82 MOV DPL,?XSP + 0
|
||
\ 0000C1 85..83 MOV DPH,?XSP + 1
|
||
\ 0000C4 E4 CLR A
|
||
\ 0000C5 8008 SJMP ??ZDO_ProcessUserDescSet_6
|
||
1853 }
|
||
1854 else
|
||
1855 {
|
||
1856 status = ZDP_NOT_SUPPORTED;
|
||
\ ??ZDO_ProcessUserDescSet_1:
|
||
\ 0000C7 85..82 MOV DPL,?XSP + 0
|
||
\ 0000CA 85..83 MOV DPH,?XSP + 1
|
||
\ 0000CD 7484 MOV A,#-0x7c
|
||
\ ??ZDO_ProcessUserDescSet_6:
|
||
\ 0000CF F0 MOVX @DPTR,A
|
||
1857 }
|
||
1858
|
||
1859 outMsg[0] = status;
|
||
\ 0000D0 E0 MOVX A,@DPTR
|
||
\ 0000D1 C0E0 PUSH A
|
||
\ 0000D3 7401 MOV A,#0x1
|
||
\ 0000D5 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000D8 D0E0 POP A
|
||
\ 0000DA F0 MOVX @DPTR,A
|
||
1860 outMsg[1] = LO_UINT16( aoi );
|
||
\ 0000DB 7402 MOV A,#0x2
|
||
\ 0000DD 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000E0 EE MOV A,R6
|
||
\ 0000E1 F0 MOVX @DPTR,A
|
||
1861 outMsg[2] = LO_UINT16( aoi );
|
||
\ 0000E2 7403 MOV A,#0x3
|
||
\ 0000E4 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000E7 EE MOV A,R6
|
||
\ 0000E8 F0 MOVX @DPTR,A
|
||
1862
|
||
1863 ZDP_SendData( &(inMsg->TransSeq), &(inMsg->srcAddr), User_Desc_conf, 3, outMsg,
|
||
1864 inMsg->SecurityUse );
|
||
\ 0000E9 ; Setup parameters for call to function ZDP_SendData
|
||
\ 0000E9 12.... LCALL ?Subroutine148 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_626:
|
||
\ 0000EC 35.. ADDC A,?V5
|
||
\ 0000EE 12.... LCALL ??Subroutine248_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_460:
|
||
\ 0000F1 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 0000F4 7402 MOV A,#0x2
|
||
\ 0000F6 12.... LCALL ?XSTACK_DISP100_8
|
||
\ 0000F9 88.. MOV ?V0,R0
|
||
\ 0000FB 89.. MOV ?V1,R1
|
||
\ 0000FD 78.. MOV R0,#?V0
|
||
\ 0000FF 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000102 75..14 MOV ?V0,#0x14
|
||
\ 000105 75..80 MOV ?V1,#-0x80
|
||
\ 000108 78.. MOV R0,#?V0
|
||
\ 00010A 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 00010D 7903 MOV R1,#0x3
|
||
\ 00010F 12.... LCALL ?Subroutine145 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_235:
|
||
\ 000112 FA MOV R2,A
|
||
\ 000113 E4 CLR A
|
||
\ 000114 35.. ADDC A,?V5
|
||
\ 000116 FB MOV R3,A
|
||
\ 000117 12.... LCALL ?Subroutine161 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_268:
|
||
\ 00011A 12.... LCALL ?DEALLOC_XSTACK8
|
||
1865 }
|
||
\ 00011D 7415 MOV A,#0x15
|
||
\ 00011F 02.... LJMP ?Subroutine5 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine248_0:
|
||
\ 000000 F583 MOV DPH,A
|
||
\ 000002 REQUIRE ??Subroutine249_0
|
||
\ 000002 ; // Fall through to label ??Subroutine249_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine161:
|
||
\ 000000 12.... LCALL ??Subroutine245_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_446:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine38:
|
||
\ 000000 12.... LCALL ?Subroutine173 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_288:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine173:
|
||
\ 000000 12.... LCALL ?Subroutine210 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_336:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine210:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 ; Setup parameters for call to function osal_memcpy
|
||
\ 000001 8882 MOV DPL,R0
|
||
\ 000003 8983 MOV DPH,R1
|
||
\ 000005 A3 INC DPTR
|
||
\ 000006 A3 INC DPTR
|
||
\ 000007 A3 INC DPTR
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine280_0:
|
||
\ 000000 12.... LCALL `??osal_memcpy::?relay`; Banked call to: osal_memcpy
|
||
\ 000003 7403 MOV A,#0x3
|
||
\ 000005 22 RET
|
||
1866
|
||
1867 /*********************************************************************
|
||
1868 * @fn ZDO_ProcessDeviceAnnce
|
||
1869 *
|
||
1870 * @brief This function processes a device annouce message.
|
||
1871 *
|
||
1872 * @param inMsg - incoming message
|
||
1873 *
|
||
1874 * @return none
|
||
1875 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
1876 void ZDO_ProcessDeviceAnnce( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ProcessDeviceAnnce:
|
||
1877 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 74F6 MOV A,#-0xa
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 10
|
||
\ 000005 ; Auto size: 32
|
||
\ 000005 74E0 MOV A,#-0x20
|
||
\ 000007 12.... LCALL ?ALLOC_XSTACK8
|
||
\ 00000A EA MOV A,R2
|
||
\ 00000B FE MOV R6,A
|
||
\ 00000C EB MOV A,R3
|
||
\ 00000D FF MOV R7,A
|
||
1878 ZDO_DeviceAnnce_t Annce;
|
||
1879 AddrMgrEntry_t addrEntry;
|
||
1880 uint8 parentExt[Z_EXTADDR_LEN];
|
||
1881
|
||
1882 // Parse incoming message
|
||
1883 ZDO_ParseDeviceAnnce( inMsg, &Annce );
|
||
\ 00000E ; Setup parameters for call to function ZDO_ParseDeviceAnnce
|
||
\ 00000E AC.. MOV R4,?XSP + 0
|
||
\ 000010 AD.. MOV R5,?XSP + 1
|
||
\ 000012 12.... LCALL `??ZDO_ParseDeviceAnnce::?relay`; Banked call to: ZDO_ParseDeviceAnnce
|
||
1884
|
||
1885 if ( ZSTACK_END_DEVICE_BUILD )
|
||
1886 {
|
||
1887 // Make sure the message didn't come from myself - end device only
|
||
1888 if ( osal_ExtAddrEqual( NLME_GetExtAddr(), Annce.extAddr ) && Annce.nwkAddr == NLME_GetShortAddr() )
|
||
1889 {
|
||
1890 return;
|
||
1891 }
|
||
1892 }
|
||
1893
|
||
1894 #if defined ( ZIGBEE_STOCHASTIC_ADDRESSING )
|
||
1895 // Clean up the neighbor table
|
||
1896 nwkNeighborRemoveAllStranded();
|
||
\ 000015 ; Setup parameters for call to function nwkNeighborRemoveAllStranded
|
||
\ 000015 12.... LCALL `??nwkNeighborRemoveAllStranded::?relay`; Banked call to: nwkNeighborRemoveAllStranded
|
||
1897
|
||
1898 // If address conflict is detected, no need to update the address manager
|
||
1899 if ( NLME_CheckNewAddrSet( Annce.nwkAddr, Annce.extAddr )== ZFailure )
|
||
\ 000018 ; Setup parameters for call to function NLME_CheckNewAddrSet
|
||
\ 000018 7402 MOV A,#0x2
|
||
\ 00001A 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00001D 12.... LCALL ?Subroutine118 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_494:
|
||
\ 000020 12.... LCALL `??NLME_CheckNewAddrSet::?relay`; Banked call to: NLME_CheckNewAddrSet
|
||
\ 000023 E9 MOV A,R1
|
||
\ 000024 6401 XRL A,#0x1
|
||
\ 000026 7003 JNZ $+5
|
||
\ 000028 02.... LJMP ??ZDO_ProcessDeviceAnnce_0 & 0xFFFF
|
||
1900 {
|
||
1901 return;
|
||
1902 }
|
||
1903 #endif
|
||
1904
|
||
1905 #if defined ( ZIGBEE_STOCHASTIC_ADDRESSING )
|
||
1906 // Check for parent's address
|
||
1907 NLME_GetCoordExtAddr( parentExt );
|
||
\ 00002B ; Setup parameters for call to function NLME_GetCoordExtAddr
|
||
\ 00002B 7418 MOV A,#0x18
|
||
\ 00002D 12.... LCALL ?XSTACK_DISP101_8
|
||
\ 000030 12.... LCALL `??NLME_GetCoordExtAddr::?relay`; Banked call to: NLME_GetCoordExtAddr
|
||
1908 if ( osal_ExtAddrEqual( parentExt, Annce.extAddr ) )
|
||
\ 000033 ; Setup parameters for call to function sAddrExtCmp
|
||
\ 000033 7402 MOV A,#0x2
|
||
\ 000035 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000038 AC82 MOV R4,DPL
|
||
\ 00003A AD83 MOV R5,DPH
|
||
\ 00003C 7418 MOV A,#0x18
|
||
\ 00003E 12.... LCALL ?XSTACK_DISP101_8
|
||
\ 000041 12.... LCALL `??sAddrExtCmp::?relay`; Banked call to: sAddrExtCmp
|
||
\ 000044 E9 MOV A,R1
|
||
\ 000045 6032 JZ ??ZDO_ProcessDeviceAnnce_1
|
||
1909 {
|
||
1910 if ( Annce.nwkAddr != NLME_GetCoordShortAddr() )
|
||
\ 000047 ; Setup parameters for call to function NLME_GetCoordShortAddr
|
||
\ 000047 12.... LCALL `??NLME_GetCoordShortAddr::?relay`; Banked call to: NLME_GetCoordShortAddr
|
||
\ 00004A 8A.. MOV ?V0,R2
|
||
\ 00004C 8B.. MOV ?V1,R3
|
||
\ 00004E A8.. MOV R0,?V0
|
||
\ 000050 A9.. MOV R1,?V1
|
||
\ 000052 85..82 MOV DPL,?XSP + 0
|
||
\ 000055 85..83 MOV DPH,?XSP + 1
|
||
\ 000058 E0 MOVX A,@DPTR
|
||
\ 000059 68 XRL A,R0
|
||
\ 00005A 7003 JNZ ??ZDO_ProcessDeviceAnnce_2
|
||
\ 00005C A3 INC DPTR
|
||
\ 00005D E0 MOVX A,@DPTR
|
||
\ 00005E 69 XRL A,R1
|
||
\ ??ZDO_ProcessDeviceAnnce_2:
|
||
\ 00005F 6018 JZ ??ZDO_ProcessDeviceAnnce_1
|
||
1911 {
|
||
1912 // Set the Parent's MAC's new short address
|
||
1913 _NIB.nwkCoordAddress = Annce.nwkAddr;
|
||
\ 000061 85..82 MOV DPL,?XSP + 0
|
||
\ 000064 85..83 MOV DPH,?XSP + 1
|
||
\ 000067 12.... LCALL ??Subroutine253_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_468:
|
||
\ 00006A 90.... MOV DPTR,#_NIB + 23
|
||
\ 00006D 12.... LCALL ??Subroutine294_0 & 0xFFFF
|
||
1914 ZMacSetReq( ZMacCoordShortAddress, (byte*)&(_NIB.nwkCoordAddress) );
|
||
\ ??CrossCallReturnLabel_731:
|
||
\ 000070 ; Setup parameters for call to function ZMacSetReq
|
||
\ 000070 7A.. MOV R2,#(_NIB + 23) & 0xff
|
||
\ 000072 7B.. MOV R3,#((_NIB + 23) >> 8) & 0xff
|
||
\ 000074 794B MOV R1,#0x4b
|
||
\ 000076 12.... LCALL `??ZMacSetReq::?relay`; Banked call to: ZMacSetReq
|
||
1915 }
|
||
1916 }
|
||
1917
|
||
1918 if ( ZSTACK_ROUTER_BUILD )
|
||
1919 {
|
||
1920 // If the device annce comes from a end device child that has moved
|
||
1921 // to another parent, remove it from associated device list
|
||
1922
|
||
1923 // If the dev annce is coming from other device's children,
|
||
1924 // (The dev annce from its own children shall be unicast to itself,
|
||
1925 // So check the mac destination address)
|
||
1926 // Remove it from the associated device list. If it is not
|
||
1927 // a child, no action will be taken in AssocRemove() anyway.
|
||
1928 if ( inMsg->macDestAddr != NLME_GetShortAddr() )
|
||
\ ??ZDO_ProcessDeviceAnnce_1:
|
||
\ 000079 ; Setup parameters for call to function NLME_GetShortAddr
|
||
\ 000079 12.... LCALL ?Subroutine125 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_206:
|
||
\ 00007C EE MOV A,R6
|
||
\ 00007D 2411 ADD A,#0x11
|
||
\ 00007F F582 MOV DPL,A
|
||
\ 000081 E4 CLR A
|
||
\ 000082 3F ADDC A,R7
|
||
\ 000083 F583 MOV DPH,A
|
||
\ 000085 E0 MOVX A,@DPTR
|
||
\ 000086 68 XRL A,R0
|
||
\ 000087 7003 JNZ ??ZDO_ProcessDeviceAnnce_3
|
||
\ 000089 A3 INC DPTR
|
||
\ 00008A E0 MOVX A,@DPTR
|
||
\ 00008B 69 XRL A,R1
|
||
\ ??ZDO_ProcessDeviceAnnce_3:
|
||
\ 00008C 603A JZ ??ZDO_ProcessDeviceAnnce_4
|
||
1929 {
|
||
1930 associated_devices_t *dev_ptr;
|
||
1931
|
||
1932 // If it's an end device child
|
||
1933 dev_ptr = AssocGetWithExt( Annce.extAddr );
|
||
\ 00008E ; Setup parameters for call to function AssocGetWithExt
|
||
\ 00008E 7402 MOV A,#0x2
|
||
\ 000090 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000093 AA82 MOV R2,DPL
|
||
\ 000095 AB83 MOV R3,DPH
|
||
\ 000097 12.... LCALL `??AssocGetWithExt::?relay`; Banked call to: AssocGetWithExt
|
||
\ 00009A 8B.. MOV ?V1,R3
|
||
\ 00009C A9.. MOV R1,?V1
|
||
1934 if ( dev_ptr )
|
||
\ 00009E EA MOV A,R2
|
||
\ 00009F 49 ORL A,R1
|
||
\ 0000A0 6026 JZ ??ZDO_ProcessDeviceAnnce_4
|
||
1935 {
|
||
1936 if ( dev_ptr->nodeRelation == CHILD_RFD ||
|
||
1937 dev_ptr->nodeRelation == CHILD_RFD_RX_IDLE )
|
||
\ 0000A2 8A82 MOV DPL,R2
|
||
\ 0000A4 8B83 MOV DPH,R3
|
||
\ 0000A6 A3 INC DPTR
|
||
\ 0000A7 A3 INC DPTR
|
||
\ 0000A8 A3 INC DPTR
|
||
\ 0000A9 A3 INC DPTR
|
||
\ 0000AA E0 MOVX A,@DPTR
|
||
\ 0000AB 6401 XRL A,#0x1
|
||
\ 0000AD 600D JZ ??ZDO_ProcessDeviceAnnce_5
|
||
\ 0000AF 8A82 MOV DPL,R2
|
||
\ 0000B1 8B83 MOV DPH,R3
|
||
\ 0000B3 A3 INC DPTR
|
||
\ 0000B4 A3 INC DPTR
|
||
\ 0000B5 A3 INC DPTR
|
||
\ 0000B6 A3 INC DPTR
|
||
\ 0000B7 E0 MOVX A,@DPTR
|
||
\ 0000B8 6402 XRL A,#0x2
|
||
\ 0000BA 700C JNZ ??ZDO_ProcessDeviceAnnce_4
|
||
1938 {
|
||
1939 AssocRemove( Annce.extAddr );
|
||
\ ??ZDO_ProcessDeviceAnnce_5:
|
||
\ 0000BC ; Setup parameters for call to function AssocRemove
|
||
\ 0000BC 7402 MOV A,#0x2
|
||
\ 0000BE 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000C1 AA82 MOV R2,DPL
|
||
\ 0000C3 AB83 MOV R3,DPH
|
||
\ 0000C5 12.... LCALL `??AssocRemove::?relay`; Banked call to: AssocRemove
|
||
1940 }
|
||
1941 }
|
||
1942 }
|
||
1943
|
||
1944 if ( Annce.nwkAddr != NLME_GetShortAddr() )
|
||
\ ??ZDO_ProcessDeviceAnnce_4:
|
||
\ 0000C8 ; Setup parameters for call to function NLME_GetShortAddr
|
||
\ 0000C8 12.... LCALL ?Subroutine125 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_207:
|
||
\ 0000CB 85..82 MOV DPL,?XSP + 0
|
||
\ 0000CE 85..83 MOV DPH,?XSP + 1
|
||
\ 0000D1 E0 MOVX A,@DPTR
|
||
\ 0000D2 68 XRL A,R0
|
||
\ 0000D3 7003 JNZ ??ZDO_ProcessDeviceAnnce_6
|
||
\ 0000D5 A3 INC DPTR
|
||
\ 0000D6 E0 MOVX A,@DPTR
|
||
\ 0000D7 69 XRL A,R1
|
||
\ ??ZDO_ProcessDeviceAnnce_6:
|
||
\ 0000D8 6011 JZ ??ZDO_ProcessDeviceAnnce_7
|
||
1945 {
|
||
1946 // If an associated device is found with matched extended Address,
|
||
1947 // update its short address
|
||
1948 if ( AssocChangeNwkAddr( Annce.nwkAddr, Annce.extAddr ) )
|
||
\ 0000DA ; Setup parameters for call to function AssocChangeNwkAddr
|
||
\ 0000DA 7402 MOV A,#0x2
|
||
\ 0000DC 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000DF 12.... LCALL ?Subroutine118 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_495:
|
||
\ 0000E2 12.... LCALL `??AssocChangeNwkAddr::?relay`; Banked call to: AssocChangeNwkAddr
|
||
\ 0000E5 E9 MOV A,R1
|
||
\ 0000E6 6003 JZ ??ZDO_ProcessDeviceAnnce_7
|
||
1949 {
|
||
1950 // Set event to save NV
|
||
1951 ZDApp_NVUpdate();
|
||
\ 0000E8 ; Setup parameters for call to function ZDApp_NVUpdate
|
||
\ 0000E8 12.... LCALL `??ZDApp_NVUpdate::?relay`; Banked call to: ZDApp_NVUpdate
|
||
1952 }
|
||
1953 }
|
||
1954 }
|
||
1955
|
||
1956 // Update the neighbor table
|
||
1957 nwkNeighborUpdateNwkAddr( Annce.nwkAddr, Annce.extAddr );
|
||
\ ??ZDO_ProcessDeviceAnnce_7:
|
||
\ 0000EB ; Setup parameters for call to function nwkNeighborUpdateNwkAddr
|
||
\ 0000EB 7402 MOV A,#0x2
|
||
\ 0000ED 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000F0 12.... LCALL ?Subroutine118 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_496:
|
||
\ 0000F3 12.... LCALL `??nwkNeighborUpdateNwkAddr::?relay`; Banked call to: nwkNeighborUpdateNwkAddr
|
||
1958
|
||
1959 // Assume that the device has moved, remove existing routing entries
|
||
1960 RTG_RemoveRtgEntry( Annce.nwkAddr, 0 );
|
||
\ 0000F6 ; Setup parameters for call to function RTG_RemoveRtgEntry
|
||
\ 0000F6 7900 MOV R1,#0x0
|
||
\ 0000F8 12.... LCALL ??Subroutine255_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_492:
|
||
\ 0000FB 12.... LCALL `??RTG_RemoveRtgEntry::?relay`; Banked call to: RTG_RemoveRtgEntry
|
||
1961
|
||
1962 #endif // ZIGBEE_STOCHASTIC_ADDRESSING
|
||
1963
|
||
1964 // Fill in the extended address in address manager if we don't have it already.
|
||
1965 addrEntry.user = ADDRMGR_USER_DEFAULT;
|
||
\ 0000FE 740B MOV A,#0xb
|
||
\ 000100 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000103 E4 CLR A
|
||
\ 000104 12.... LCALL ?Subroutine31 & 0xFFFF
|
||
1966 addrEntry.nwkAddr = Annce.nwkAddr;
|
||
\ ??CrossCallReturnLabel_34:
|
||
\ 000107 F8 MOV R0,A
|
||
\ 000108 A3 INC DPTR
|
||
\ 000109 E0 MOVX A,@DPTR
|
||
\ 00010A F9 MOV R1,A
|
||
\ 00010B 740C MOV A,#0xc
|
||
\ 00010D 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000110 12.... LCALL ?Subroutine41 & 0xFFFF
|
||
1967 if ( AddrMgrEntryLookupNwk( &addrEntry ) )
|
||
\ ??CrossCallReturnLabel_58:
|
||
\ 000113 12.... LCALL ?XSTACK_DISP101_8
|
||
\ 000116 12.... LCALL `??AddrMgrEntryLookupNwk::?relay`; Banked call to: AddrMgrEntryLookupNwk
|
||
\ 000119 E9 MOV A,R1
|
||
\ 00011A 603F JZ ??ZDO_ProcessDeviceAnnce_8
|
||
1968 {
|
||
1969 osal_memset( parentExt, 0, Z_EXTADDR_LEN );
|
||
\ 00011C ; Setup parameters for call to function osal_memset
|
||
\ 00011C 7C08 MOV R4,#0x8
|
||
\ 00011E 7D00 MOV R5,#0x0
|
||
\ 000120 7900 MOV R1,#0x0
|
||
\ 000122 7418 MOV A,#0x18
|
||
\ 000124 12.... LCALL ?XSTACK_DISP101_8
|
||
\ 000127 12.... LCALL `??osal_memset::?relay`; Banked call to: osal_memset
|
||
1970 if ( osal_ExtAddrEqual( parentExt, addrEntry.extAddr ) )
|
||
\ 00012A ; Setup parameters for call to function sAddrExtCmp
|
||
\ 00012A 740E MOV A,#0xe
|
||
\ 00012C 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00012F AC82 MOV R4,DPL
|
||
\ 000131 AD83 MOV R5,DPH
|
||
\ 000133 7418 MOV A,#0x18
|
||
\ 000135 12.... LCALL ?XSTACK_DISP101_8
|
||
\ 000138 12.... LCALL `??sAddrExtCmp::?relay`; Banked call to: sAddrExtCmp
|
||
\ 00013B E9 MOV A,R1
|
||
\ 00013C 601D JZ ??ZDO_ProcessDeviceAnnce_8
|
||
1971 {
|
||
1972 AddrMgrExtAddrSet( addrEntry.extAddr, Annce.extAddr );
|
||
\ 00013E ; Setup parameters for call to function AddrMgrExtAddrSet
|
||
\ 00013E 7402 MOV A,#0x2
|
||
\ 000140 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000143 AC82 MOV R4,DPL
|
||
\ 000145 AD83 MOV R5,DPH
|
||
\ 000147 740E MOV A,#0xe
|
||
\ 000149 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00014C AA82 MOV R2,DPL
|
||
\ 00014E AB83 MOV R3,DPH
|
||
\ 000150 12.... LCALL `??AddrMgrExtAddrSet::?relay`; Banked call to: AddrMgrExtAddrSet
|
||
1973 AddrMgrEntryUpdate( &addrEntry );
|
||
\ 000153 ; Setup parameters for call to function AddrMgrEntryUpdate
|
||
\ 000153 740B MOV A,#0xb
|
||
\ 000155 12.... LCALL ?XSTACK_DISP101_8
|
||
\ 000158 12.... LCALL `??AddrMgrEntryUpdate::?relay`; Banked call to: AddrMgrEntryUpdate
|
||
1974 }
|
||
1975 }
|
||
1976
|
||
1977 // Update the short address in address manager if it's been changed
|
||
1978 AddrMgrExtAddrSet( addrEntry.extAddr, Annce.extAddr );
|
||
\ ??ZDO_ProcessDeviceAnnce_8:
|
||
\ 00015B ; Setup parameters for call to function AddrMgrExtAddrSet
|
||
\ 00015B 7402 MOV A,#0x2
|
||
\ 00015D 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000160 AC82 MOV R4,DPL
|
||
\ 000162 AD83 MOV R5,DPH
|
||
\ 000164 740E MOV A,#0xe
|
||
\ 000166 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000169 AA82 MOV R2,DPL
|
||
\ 00016B AB83 MOV R3,DPH
|
||
\ 00016D 12.... LCALL `??AddrMgrExtAddrSet::?relay`; Banked call to: AddrMgrExtAddrSet
|
||
1979 if ( AddrMgrEntryLookupExt( &addrEntry ) )
|
||
\ 000170 ; Setup parameters for call to function AddrMgrEntryLookupExt
|
||
\ 000170 740B MOV A,#0xb
|
||
\ 000172 12.... LCALL ?XSTACK_DISP101_8
|
||
\ 000175 12.... LCALL `??AddrMgrEntryLookupExt::?relay`; Banked call to: AddrMgrEntryLookupExt
|
||
\ 000178 E9 MOV A,R1
|
||
\ 000179 602E JZ ??ZDO_ProcessDeviceAnnce_0
|
||
1980 {
|
||
1981 if ( addrEntry.nwkAddr != Annce.nwkAddr )
|
||
\ 00017B 740C MOV A,#0xc
|
||
\ 00017D 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000180 12.... LCALL ??Subroutine253_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_469:
|
||
\ 000183 85..82 MOV DPL,?XSP + 0
|
||
\ 000186 85..83 MOV DPH,?XSP + 1
|
||
\ 000189 E0 MOVX A,@DPTR
|
||
\ 00018A 68 XRL A,R0
|
||
\ 00018B 7003 JNZ ??ZDO_ProcessDeviceAnnce_9
|
||
\ 00018D A3 INC DPTR
|
||
\ 00018E E0 MOVX A,@DPTR
|
||
\ 00018F 69 XRL A,R1
|
||
\ ??ZDO_ProcessDeviceAnnce_9:
|
||
\ 000190 6017 JZ ??ZDO_ProcessDeviceAnnce_0
|
||
1982 {
|
||
1983 addrEntry.nwkAddr = Annce.nwkAddr;
|
||
\ 000192 85..82 MOV DPL,?XSP + 0
|
||
\ 000195 85..83 MOV DPH,?XSP + 1
|
||
\ 000198 12.... LCALL ??Subroutine253_0 & 0xFFFF
|
||
1984 AddrMgrEntryUpdate( &addrEntry );
|
||
1985 }
|
||
1986 }
|
||
\ ??CrossCallReturnLabel_470:
|
||
\ 00019B 740C MOV A,#0xc
|
||
\ 00019D 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0001A0 12.... LCALL ?Subroutine41 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_59:
|
||
\ 0001A3 12.... LCALL ?XSTACK_DISP101_8
|
||
\ 0001A6 12.... LCALL `??AddrMgrEntryUpdate::?relay`; Banked call to: AddrMgrEntryUpdate
|
||
1987 }
|
||
\ ??ZDO_ProcessDeviceAnnce_0:
|
||
\ 0001A9 7420 MOV A,#0x20
|
||
\ 0001AB 02.... LJMP ??Subroutine224_0 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine125:
|
||
\ 000000 12.... LCALL `??NLME_GetShortAddr::?relay`; Banked call to: NLME_GetShortAddr
|
||
\ 000003 8A.. MOV ?V0,R2
|
||
\ 000005 8B.. MOV ?V1,R3
|
||
\ 000007 A8.. MOV R0,?V0
|
||
\ 000009 A9.. MOV R1,?V1
|
||
\ 00000B 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine118:
|
||
\ 000000 AC82 MOV R4,DPL
|
||
\ 000002 AD83 MOV R5,DPH
|
||
\ 000004 REQUIRE ??Subroutine255_0
|
||
\ 000004 ; // Fall through to label ??Subroutine255_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine255_0:
|
||
\ 000000 85..82 MOV DPL,?XSP + 0
|
||
\ 000003 85..83 MOV DPH,?XSP + 1
|
||
\ 000006 REQUIRE ??Subroutine256_0
|
||
\ 000006 ; // Fall through to label ??Subroutine256_0
|
||
1988
|
||
1989 /*********************************************************************
|
||
1990 * @fn ZDO_BuildSimpleDescBuf
|
||
1991 *
|
||
1992 * @brief Build a byte sequence representation of a Simple Descriptor.
|
||
1993 *
|
||
1994 * @param buf - pointer to a byte array big enough for data.
|
||
1995 * @param desc - SimpleDescriptionFormat_t *
|
||
1996 *
|
||
1997 * @return none
|
||
1998 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine86:
|
||
\ 000000 A3 INC DPTR
|
||
\ 000001 A3 INC DPTR
|
||
\ 000002 A3 INC DPTR
|
||
\ 000003 A3 INC DPTR
|
||
\ 000004 REQUIRE ??Subroutine250_0
|
||
\ 000004 ; // Fall through to label ??Subroutine250_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
1999 void ZDO_BuildSimpleDescBuf( uint8 *buf, SimpleDescriptionFormat_t *desc )
|
||
\ ZDO_BuildSimpleDescBuf:
|
||
2000 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 74F6 MOV A,#-0xa
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 10
|
||
\ 000005 ; Auto size: 0
|
||
\ 000005 EC MOV A,R4
|
||
\ 000006 FE MOV R6,A
|
||
\ 000007 ED MOV A,R5
|
||
\ 000008 FF MOV R7,A
|
||
2001 byte cnt;
|
||
2002 uint16 *ptr;
|
||
2003
|
||
2004 *buf++ = desc->EndPoint;
|
||
\ 000009 8C82 MOV DPL,R4
|
||
\ 00000B F583 MOV DPH,A
|
||
\ 00000D 12.... LCALL ?Subroutine121 & 0xFFFF
|
||
2005 *buf++ = HI_UINT16( desc->AppProfId );
|
||
\ ??CrossCallReturnLabel_197:
|
||
\ 000010 8C82 MOV DPL,R4
|
||
\ 000012 8D83 MOV DPH,R5
|
||
\ 000014 A3 INC DPTR
|
||
\ 000015 A882 MOV R0,DPL
|
||
\ 000017 A983 MOV R1,DPH
|
||
\ 000019 12.... LCALL ?Subroutine187 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_481:
|
||
\ 00001C 12.... LCALL ?Subroutine28 & 0xFFFF
|
||
2006 *buf++ = LO_UINT16( desc->AppProfId );
|
||
\ ??CrossCallReturnLabel_28:
|
||
\ 00001F F0 MOVX @DPTR,A
|
||
2007 *buf++ = HI_UINT16( desc->AppDeviceId );
|
||
\ 000020 EC MOV A,R4
|
||
\ 000021 2403 ADD A,#0x3
|
||
\ 000023 F8 MOV R0,A
|
||
\ 000024 E4 CLR A
|
||
\ 000025 3F ADDC A,R7
|
||
\ 000026 F9 MOV R1,A
|
||
\ 000027 8882 MOV DPL,R0
|
||
\ 000029 F583 MOV DPH,A
|
||
\ 00002B 12.... LCALL ?Subroutine187 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_482:
|
||
\ 00002E A3 INC DPTR
|
||
\ 00002F A3 INC DPTR
|
||
\ 000030 12.... LCALL ?Subroutine28 & 0xFFFF
|
||
2008 *buf++ = LO_UINT16( desc->AppDeviceId );
|
||
\ ??CrossCallReturnLabel_29:
|
||
\ 000033 12.... LCALL ?Subroutine39 & 0xFFFF
|
||
2009
|
||
2010 *buf++ = (byte)(desc->AppDevVer << 4);
|
||
\ ??CrossCallReturnLabel_53:
|
||
\ 000036 E0 MOVX A,@DPTR
|
||
\ 000037 C4 SWAP A
|
||
\ 000038 54F0 ANL A,#0xf0
|
||
\ 00003A 8A82 MOV DPL,R2
|
||
\ 00003C 8B83 MOV DPH,R3
|
||
\ 00003E A3 INC DPTR
|
||
\ 00003F A3 INC DPTR
|
||
\ 000040 A3 INC DPTR
|
||
\ 000041 12.... LCALL ?Subroutine39 & 0xFFFF
|
||
2011
|
||
2012 *buf++ = desc->AppNumInClusters;
|
||
\ ??CrossCallReturnLabel_54:
|
||
\ 000044 A3 INC DPTR
|
||
\ 000045 12.... LCALL ?Subroutine108 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_178:
|
||
\ 000048 F0 MOVX @DPTR,A
|
||
\ 000049 EA MOV A,R2
|
||
\ 00004A 2407 ADD A,#0x7
|
||
\ 00004C FA MOV R2,A
|
||
\ 00004D 5001 JNC ??ZDO_BuildSimpleDescBuf_0
|
||
\ 00004F 0B INC R3
|
||
2013 ptr = desc->pAppInClusterList;
|
||
\ ??ZDO_BuildSimpleDescBuf_0:
|
||
\ 000050 8C82 MOV DPL,R4
|
||
\ 000052 8D83 MOV DPH,R5
|
||
\ 000054 12.... LCALL ?Subroutine86 & 0xFFFF
|
||
2014 for ( cnt = 0; cnt < desc->AppNumInClusters; ptr++, cnt++ )
|
||
\ ??CrossCallReturnLabel_477:
|
||
\ 000057 7C00 MOV R4,#0x0
|
||
\ 000059 800E SJMP ??ZDO_BuildSimpleDescBuf_1
|
||
2015 {
|
||
2016 *buf++ = HI_UINT16( *ptr );
|
||
\ ??ZDO_BuildSimpleDescBuf_2:
|
||
\ 00005B 12.... LCALL ?Subroutine22 & 0xFFFF
|
||
2017 *buf++ = LO_UINT16( *ptr );
|
||
2018 }
|
||
\ ??CrossCallReturnLabel_17:
|
||
\ 00005E 5001 JNC ??ZDO_BuildSimpleDescBuf_3
|
||
\ 000060 0B INC R3
|
||
\ ??ZDO_BuildSimpleDescBuf_3:
|
||
\ 000061 E8 MOV A,R0
|
||
\ 000062 2402 ADD A,#0x2
|
||
\ 000064 F8 MOV R0,A
|
||
\ 000065 5001 JNC ??ZDO_BuildSimpleDescBuf_4
|
||
\ 000067 09 INC R1
|
||
\ ??ZDO_BuildSimpleDescBuf_4:
|
||
\ 000068 0C INC R4
|
||
\ ??ZDO_BuildSimpleDescBuf_1:
|
||
\ 000069 8E82 MOV DPL,R6
|
||
\ 00006B 8F83 MOV DPH,R7
|
||
\ 00006D A3 INC DPTR
|
||
\ 00006E A3 INC DPTR
|
||
\ 00006F A3 INC DPTR
|
||
\ 000070 A3 INC DPTR
|
||
\ 000071 A3 INC DPTR
|
||
\ 000072 A3 INC DPTR
|
||
\ 000073 E0 MOVX A,@DPTR
|
||
\ 000074 FD MOV R5,A
|
||
\ 000075 EC MOV A,R4
|
||
\ 000076 C3 CLR C
|
||
\ 000077 9D SUBB A,R5
|
||
\ 000078 40E1 JC ??ZDO_BuildSimpleDescBuf_2
|
||
2019
|
||
2020 *buf++ = desc->AppNumOutClusters;
|
||
\ 00007A 8E82 MOV DPL,R6
|
||
\ 00007C 8F83 MOV DPH,R7
|
||
\ 00007E A3 INC DPTR
|
||
\ 00007F A3 INC DPTR
|
||
\ 000080 A3 INC DPTR
|
||
\ 000081 A3 INC DPTR
|
||
\ 000082 A3 INC DPTR
|
||
\ 000083 A3 INC DPTR
|
||
\ 000084 A3 INC DPTR
|
||
\ 000085 A3 INC DPTR
|
||
\ 000086 A3 INC DPTR
|
||
\ 000087 12.... LCALL ?Subroutine121 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_198:
|
||
\ 00008A A3 INC DPTR
|
||
\ 00008B AA82 MOV R2,DPL
|
||
\ 00008D AB83 MOV R3,DPH
|
||
2021 ptr = desc->pAppOutClusterList;
|
||
\ 00008F 8E82 MOV DPL,R6
|
||
\ 000091 8F83 MOV DPH,R7
|
||
\ 000093 A3 INC DPTR
|
||
\ 000094 A3 INC DPTR
|
||
\ 000095 A3 INC DPTR
|
||
\ 000096 12.... LCALL ?Subroutine86 & 0xFFFF
|
||
2022 for ( cnt = 0; cnt < desc->AppNumOutClusters; ptr++, cnt++ )
|
||
\ ??CrossCallReturnLabel_478:
|
||
\ 000099 7C00 MOV R4,#0x0
|
||
\ 00009B 800E SJMP ??ZDO_BuildSimpleDescBuf_5
|
||
2023 {
|
||
2024 *buf++ = HI_UINT16( *ptr );
|
||
\ ??ZDO_BuildSimpleDescBuf_6:
|
||
\ 00009D 12.... LCALL ?Subroutine22 & 0xFFFF
|
||
2025 *buf++ = LO_UINT16( *ptr );
|
||
2026 }
|
||
\ ??CrossCallReturnLabel_18:
|
||
\ 0000A0 5001 JNC ??ZDO_BuildSimpleDescBuf_7
|
||
\ 0000A2 0B INC R3
|
||
\ ??ZDO_BuildSimpleDescBuf_7:
|
||
\ 0000A3 E8 MOV A,R0
|
||
\ 0000A4 2402 ADD A,#0x2
|
||
\ 0000A6 F8 MOV R0,A
|
||
\ 0000A7 5001 JNC ??ZDO_BuildSimpleDescBuf_8
|
||
\ 0000A9 09 INC R1
|
||
\ ??ZDO_BuildSimpleDescBuf_8:
|
||
\ 0000AA 0C INC R4
|
||
\ ??ZDO_BuildSimpleDescBuf_5:
|
||
\ 0000AB 8E82 MOV DPL,R6
|
||
\ 0000AD 8F83 MOV DPH,R7
|
||
\ 0000AF A3 INC DPTR
|
||
\ 0000B0 A3 INC DPTR
|
||
\ 0000B1 A3 INC DPTR
|
||
\ 0000B2 A3 INC DPTR
|
||
\ 0000B3 A3 INC DPTR
|
||
\ 0000B4 A3 INC DPTR
|
||
\ 0000B5 A3 INC DPTR
|
||
\ 0000B6 A3 INC DPTR
|
||
\ 0000B7 A3 INC DPTR
|
||
\ 0000B8 E0 MOVX A,@DPTR
|
||
\ 0000B9 FD MOV R5,A
|
||
\ 0000BA EC MOV A,R4
|
||
\ 0000BB C3 CLR C
|
||
\ 0000BC 9D SUBB A,R5
|
||
\ 0000BD 40DE JC ??ZDO_BuildSimpleDescBuf_6
|
||
2027 }
|
||
\ 0000BF 02.... LJMP ??Subroutine225_0 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine187:
|
||
\ 000000 A3 INC DPTR
|
||
\ 000001 REQUIRE ??Subroutine254_0
|
||
\ 000001 ; // Fall through to label ??Subroutine254_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine39:
|
||
\ 000000 A3 INC DPTR
|
||
\ 000001 A3 INC DPTR
|
||
\ 000002 F0 MOVX @DPTR,A
|
||
\ 000003 8C82 MOV DPL,R4
|
||
\ 000005 8D83 MOV DPH,R5
|
||
\ 000007 A3 INC DPTR
|
||
\ 000008 A3 INC DPTR
|
||
\ 000009 A3 INC DPTR
|
||
\ 00000A A3 INC DPTR
|
||
\ 00000B A3 INC DPTR
|
||
\ 00000C 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine28:
|
||
\ 000000 A3 INC DPTR
|
||
\ 000001 12.... LCALL ?Subroutine167 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_278:
|
||
\ 000004 A3 INC DPTR
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine22:
|
||
\ 000000 8882 MOV DPL,R0
|
||
\ 000002 8983 MOV DPH,R1
|
||
\ 000004 12.... LCALL ?Subroutine187 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_483:
|
||
\ 000007 12.... LCALL ?Subroutine167 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_279:
|
||
\ 00000A F0 MOVX @DPTR,A
|
||
\ 00000B EA MOV A,R2
|
||
\ 00000C 2402 ADD A,#0x2
|
||
\ 00000E FA MOV R2,A
|
||
\ 00000F 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine167:
|
||
\ 000000 12.... LCALL ?Subroutine211 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_338:
|
||
\ 000003 E0 MOVX A,@DPTR
|
||
\ 000004 8A82 MOV DPL,R2
|
||
\ 000006 8B83 MOV DPH,R3
|
||
\ 000008 A3 INC DPTR
|
||
\ 000009 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine121:
|
||
\ 000000 12.... LCALL ??Subroutine254_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_480:
|
||
\ 000003 F0 MOVX @DPTR,A
|
||
\ 000004 22 RET
|
||
2028
|
||
2029 /*********************************************************************
|
||
2030 * @fn ZDO_MatchEndDeviceBind()
|
||
2031 *
|
||
2032 * @brief
|
||
2033 *
|
||
2034 * Called to match end device binding requests
|
||
2035 *
|
||
2036 * @param bindReq - binding request information
|
||
2037 * @param SecurityUse - Security enable/disable
|
||
2038 *
|
||
2039 * @return none
|
||
2040 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine19:
|
||
\ 000000 F582 MOV DPL,A
|
||
\ 000002 E4 CLR A
|
||
\ 000003 3C ADDC A,R4
|
||
\ 000004 F583 MOV DPH,A
|
||
\ 000006 REQUIRE ??Subroutine242_0
|
||
\ 000006 ; // Fall through to label ??Subroutine242_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
2041 void ZDO_MatchEndDeviceBind( ZDEndDeviceBind_t *bindReq )
|
||
\ ZDO_MatchEndDeviceBind:
|
||
2042 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V5
|
||
\ 000000 74F2 MOV A,#-0xe
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 14
|
||
\ 000005 ; Auto size: 10
|
||
\ 000005 74F6 MOV A,#-0xa
|
||
\ 000007 12.... LCALL ?ALLOC_XSTACK8
|
||
\ 00000A 8A.. MOV ?V4,R2
|
||
\ 00000C 8B.. MOV ?V5,R3
|
||
2043 zAddrType_t dstAddr;
|
||
2044 uint8 sendRsp = FALSE;
|
||
\ 00000E 7E00 MOV R6,#0x0
|
||
2045 uint8 status;
|
||
2046
|
||
2047 // Is this the first request?
|
||
2048 if ( matchED == NULL )
|
||
\ 000010 90.... MOV DPTR,#matchED
|
||
\ 000013 12.... LCALL ??Subroutine260_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_514:
|
||
\ 000016 7045 JNZ ??ZDO_MatchEndDeviceBind_0
|
||
2049 {
|
||
2050 // Create match info structure
|
||
2051 matchED = (ZDMatchEndDeviceBind_t *)osal_mem_alloc( sizeof ( ZDMatchEndDeviceBind_t ) );
|
||
\ 000018 ; Setup parameters for call to function osal_mem_alloc
|
||
\ 000018 7A37 MOV R2,#0x37
|
||
\ 00001A 7B00 MOV R3,#0x0
|
||
\ 00001C 12.... LCALL `??osal_mem_alloc::?relay`; Banked call to: osal_mem_alloc
|
||
\ 00001F 90.... MOV DPTR,#matchED
|
||
\ 000022 12.... LCALL ??Subroutine242_0 & 0xFFFF
|
||
2052 if ( matchED )
|
||
\ ??CrossCallReturnLabel_434:
|
||
\ 000025 F9 MOV R1,A
|
||
\ 000026 EA MOV A,R2
|
||
\ 000027 49 ORL A,R1
|
||
\ 000028 6019 JZ ??ZDO_MatchEndDeviceBind_1
|
||
2053 {
|
||
2054 // Clear the structure
|
||
2055 osal_memset( (uint8 *)matchED, 0, sizeof ( ZDMatchEndDeviceBind_t ) );
|
||
\ 00002A ; Setup parameters for call to function osal_memset
|
||
\ 00002A 7C37 MOV R4,#0x37
|
||
\ 00002C 7D00 MOV R5,#0x0
|
||
\ 00002E 7900 MOV R1,#0x0
|
||
\ 000030 12.... LCALL `??osal_memset::?relay`; Banked call to: osal_memset
|
||
2056
|
||
2057 // Copy the first request's information
|
||
2058 if ( !ZDO_CopyMatchInfo( &(matchED->ed1), bindReq ) )
|
||
\ 000033 ; Setup parameters for call to function ZDO_CopyMatchInfo
|
||
\ 000033 AC.. MOV R4,?V4
|
||
\ 000035 AD.. MOV R5,?V5
|
||
\ 000037 90.... MOV DPTR,#matchED
|
||
\ 00003A 12.... LCALL ??Subroutine256_0 & 0xFFFF
|
||
2059 {
|
||
2060 status = ZDP_NO_ENTRY;
|
||
2061 sendRsp = TRUE;
|
||
2062 }
|
||
2063 }
|
||
\ ??CrossCallReturnLabel_489:
|
||
\ 00003D 12.... LCALL `??ZDO_CopyMatchInfo::?relay`; Banked call to: ZDO_CopyMatchInfo
|
||
\ 000040 E9 MOV A,R1
|
||
\ 000041 700B JNZ ??ZDO_MatchEndDeviceBind_2
|
||
2064 else
|
||
2065 {
|
||
2066 status = ZDP_NO_ENTRY;
|
||
\ ??ZDO_MatchEndDeviceBind_1:
|
||
\ 000043 85..82 MOV DPL,?XSP + 0
|
||
\ 000046 85..83 MOV DPH,?XSP + 1
|
||
\ 000049 7488 MOV A,#-0x78
|
||
\ 00004B 02.... LJMP ??ZDO_MatchEndDeviceBind_3 & 0xFFFF
|
||
2067 sendRsp = TRUE;
|
||
2068 }
|
||
2069
|
||
2070 if ( !sendRsp )
|
||
2071 {
|
||
2072 // Set into the correct state
|
||
2073 matchED->state = ZDMATCH_WAIT_REQ;
|
||
\ ??ZDO_MatchEndDeviceBind_2:
|
||
\ 00004E 12.... LCALL ?Subroutine106 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_595:
|
||
\ 000051 12.... LCALL ?Subroutine208 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_332:
|
||
\ 000054 7401 MOV A,#0x1
|
||
\ 000056 F0 MOVX @DPTR,A
|
||
2074
|
||
2075 // Setup the timeout
|
||
2076 APS_SetEndDeviceBindTimeout( AIB_MaxBindingTime, ZDO_EndDeviceBindMatchTimeoutCB );
|
||
\ 000057 ; Setup parameters for call to function APS_SetEndDeviceBindTimeout
|
||
\ 000057 12.... LCALL ?Subroutine117 & 0xFFFF
|
||
2077 }
|
||
2078 }
|
||
\ ??CrossCallReturnLabel_191:
|
||
\ 00005A 02.... LJMP ??ZDO_MatchEndDeviceBind_4 & 0xFFFF
|
||
2079 else
|
||
2080 {
|
||
2081 matchED->state = ZDMATCH_SENDING_BINDS;
|
||
\ ??ZDO_MatchEndDeviceBind_0:
|
||
\ 00005D E8 MOV A,R0
|
||
\ 00005E 242E ADD A,#0x2e
|
||
\ 000060 F582 MOV DPL,A
|
||
\ 000062 E4 CLR A
|
||
\ 000063 39 ADDC A,R1
|
||
\ 000064 F583 MOV DPH,A
|
||
\ 000066 7402 MOV A,#0x2
|
||
\ 000068 F0 MOVX @DPTR,A
|
||
2082
|
||
2083 // Copy the 2nd request's information
|
||
2084 if ( !ZDO_CopyMatchInfo( &(matchED->ed2), bindReq ) )
|
||
\ 000069 ; Setup parameters for call to function ZDO_CopyMatchInfo
|
||
\ 000069 AC.. MOV R4,?V4
|
||
\ 00006B AD.. MOV R5,?V5
|
||
\ 00006D 12.... LCALL ?Subroutine123 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_202:
|
||
\ 000070 12.... LCALL `??ZDO_CopyMatchInfo::?relay`; Banked call to: ZDO_CopyMatchInfo
|
||
\ 000073 E9 MOV A,R1
|
||
\ 000074 700B JNZ ??ZDO_MatchEndDeviceBind_5
|
||
2085 {
|
||
2086 status = ZDP_NO_ENTRY;
|
||
\ 000076 85..82 MOV DPL,?XSP + 0
|
||
\ 000079 85..83 MOV DPH,?XSP + 1
|
||
\ 00007C 7488 MOV A,#-0x78
|
||
\ 00007E F0 MOVX @DPTR,A
|
||
2087 sendRsp = TRUE;
|
||
\ 00007F 7E01 MOV R6,#0x1
|
||
2088 }
|
||
2089
|
||
2090 // Make a source match for ed1
|
||
2091 matchED->ed1numMatched = ZDO_CompareClusterLists(
|
||
2092 matchED->ed1.numOutClusters, matchED->ed1.outClusters,
|
||
2093 matchED->ed2.numInClusters, matchED->ed2.inClusters, ZDOBuildBuf );
|
||
\ ??ZDO_MatchEndDeviceBind_5:
|
||
\ 000081 ; Setup parameters for call to function ZDO_CompareClusterLists
|
||
\ 000081 75.... MOV ?V0,#ZDOBuildBuf & 0xff
|
||
\ 000084 75.... MOV ?V1,#(ZDOBuildBuf >> 8) & 0xff
|
||
\ 000087 78.. MOV R0,#?V0
|
||
\ 000089 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 00008C 12.... LCALL ?Subroutine100 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_162:
|
||
\ 00008F F582 MOV DPL,A
|
||
\ 000091 E4 CLR A
|
||
\ 000092 38 ADDC A,R0
|
||
\ 000093 F583 MOV DPH,A
|
||
\ 000095 12.... LCALL ?PUSH_XSTACK8_X_TWO
|
||
\ 000098 12.... LCALL ?Subroutine106 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_596:
|
||
\ 00009B 2428 ADD A,#0x28
|
||
\ 00009D 12.... LCALL ?Subroutine150 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_243:
|
||
\ 0000A0 FC MOV R4,A
|
||
\ 0000A1 12.... LCALL ?Subroutine101 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_165:
|
||
\ 0000A4 12.... LCALL ?Subroutine90 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_146:
|
||
\ 0000A7 2414 ADD A,#0x14
|
||
\ 0000A9 12.... LCALL ?Subroutine149 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_240:
|
||
\ 0000AC 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 0000AF 12.... LCALL ?Subroutine102 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_498:
|
||
\ 0000B2 12.... LCALL ?Subroutine23 & 0xFFFF
|
||
2094 if ( matchED->ed1numMatched )
|
||
\ ??CrossCallReturnLabel_528:
|
||
\ 0000B5 2431 ADD A,#0x31
|
||
\ 0000B7 12.... LCALL ?Subroutine150 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_244:
|
||
\ 0000BA 6034 JZ ??ZDO_MatchEndDeviceBind_6
|
||
\ 0000BC ; Setup parameters for call to function osal_mem_alloc
|
||
\ 0000BC 12.... LCALL ?Subroutine58 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_83:
|
||
\ 0000BF 12.... LCALL ?Subroutine151 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_251:
|
||
\ 0000C2 2432 ADD A,#0x32
|
||
\ 0000C4 12.... LCALL ?Subroutine19 & 0xFFFF
|
||
2095 {
|
||
2096 // Save the match list
|
||
2097 matchED->ed1Matched = osal_mem_alloc( (short)(matchED->ed1numMatched * sizeof ( uint16 )) );
|
||
2098 if ( matchED->ed1Matched )
|
||
\ ??CrossCallReturnLabel_436:
|
||
\ 0000C7 EA MOV A,R2
|
||
\ 0000C8 4B ORL A,R3
|
||
\ 0000C9 601A JZ ??ZDO_MatchEndDeviceBind_7
|
||
2099 {
|
||
2100 osal_memcpy( matchED->ed1Matched, ZDOBuildBuf, (matchED->ed1numMatched * sizeof ( uint16 )) );
|
||
\ 0000CB ; Setup parameters for call to function osal_memcpy
|
||
\ 0000CB 75..00 MOV ?V2,#0x0
|
||
\ 0000CE 78.. MOV R0,#?V0
|
||
\ 0000D0 12.... LCALL ?PUSH_XSTACK_I_THREE
|
||
\ 0000D3 12.... LCALL ?Subroutine58 & 0xFFFF
|
||
2101 }
|
||
\ ??CrossCallReturnLabel_84:
|
||
\ 0000D6 FC MOV R4,A
|
||
\ 0000D7 E4 CLR A
|
||
\ 0000D8 33 RLC A
|
||
\ 0000D9 FD MOV R5,A
|
||
\ 0000DA 12.... LCALL ?Subroutine103 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_168:
|
||
\ 0000DD 12.... LCALL ?Subroutine56 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_544:
|
||
\ 0000E0 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 0000E3 800B SJMP ??ZDO_MatchEndDeviceBind_6
|
||
2102 else
|
||
2103 {
|
||
2104 // Allocation error, stop
|
||
2105 status = ZDP_NO_ENTRY;
|
||
\ ??ZDO_MatchEndDeviceBind_7:
|
||
\ 0000E5 85..82 MOV DPL,?XSP + 0
|
||
\ 0000E8 85..83 MOV DPH,?XSP + 1
|
||
\ 0000EB 7488 MOV A,#-0x78
|
||
\ 0000ED F0 MOVX @DPTR,A
|
||
2106 sendRsp = TRUE;
|
||
\ 0000EE 7E01 MOV R6,#0x1
|
||
2107 }
|
||
2108 }
|
||
2109
|
||
2110 // Make a source match for ed2
|
||
2111 matchED->ed2numMatched = ZDO_CompareClusterLists(
|
||
2112 matchED->ed2.numOutClusters, matchED->ed2.outClusters,
|
||
2113 matchED->ed1.numInClusters, matchED->ed1.inClusters, ZDOBuildBuf );
|
||
\ ??ZDO_MatchEndDeviceBind_6:
|
||
\ 0000F0 ; Setup parameters for call to function ZDO_CompareClusterLists
|
||
\ 0000F0 78.. MOV R0,#?V0
|
||
\ 0000F2 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 0000F5 12.... LCALL ?Subroutine104 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_171:
|
||
\ 0000F8 F582 MOV DPL,A
|
||
\ 0000FA E4 CLR A
|
||
\ 0000FB 38 ADDC A,R0
|
||
\ 0000FC F583 MOV DPH,A
|
||
\ 0000FE 12.... LCALL ?PUSH_XSTACK8_X_TWO
|
||
\ 000101 12.... LCALL ?Subroutine106 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_597:
|
||
\ 000104 2411 ADD A,#0x11
|
||
\ 000106 12.... LCALL ?Subroutine150 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_245:
|
||
\ 000109 FC MOV R4,A
|
||
\ 00010A 12.... LCALL ?Subroutine105 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_174:
|
||
\ 00010D 12.... LCALL ?Subroutine90 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_147:
|
||
\ 000110 242B ADD A,#0x2b
|
||
\ 000112 12.... LCALL ?Subroutine149 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_241:
|
||
\ 000115 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 000118 E9 MOV A,R1
|
||
\ 000119 F8 MOV R0,A
|
||
\ 00011A 12.... LCALL ?Subroutine106 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_598:
|
||
\ 00011D 2434 ADD A,#0x34
|
||
\ 00011F 12.... LCALL ?Subroutine23 & 0xFFFF
|
||
2114 if ( matchED->ed2numMatched )
|
||
\ ??CrossCallReturnLabel_529:
|
||
\ 000122 2434 ADD A,#0x34
|
||
\ 000124 12.... LCALL ?Subroutine150 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_246:
|
||
\ 000127 6029 JZ ??ZDO_MatchEndDeviceBind_8
|
||
\ 000129 ; Setup parameters for call to function osal_mem_alloc
|
||
\ 000129 12.... LCALL ?Subroutine59 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_86:
|
||
\ 00012C 12.... LCALL ?Subroutine151 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_252:
|
||
\ 00012F 2435 ADD A,#0x35
|
||
\ 000131 12.... LCALL ?Subroutine19 & 0xFFFF
|
||
2115 {
|
||
2116 // Save the match list
|
||
2117 matchED->ed2Matched = osal_mem_alloc( (short)(matchED->ed2numMatched * sizeof ( uint16 )) );
|
||
2118 if ( matchED->ed2Matched )
|
||
\ ??CrossCallReturnLabel_437:
|
||
\ 000134 EA MOV A,R2
|
||
\ 000135 4B ORL A,R3
|
||
\ 000136 603B JZ ??ZDO_MatchEndDeviceBind_9
|
||
2119 {
|
||
2120 osal_memcpy( matchED->ed2Matched, ZDOBuildBuf, (matchED->ed2numMatched * sizeof ( uint16 )) );
|
||
\ 000138 ; Setup parameters for call to function osal_memcpy
|
||
\ 000138 75..00 MOV ?V2,#0x0
|
||
\ 00013B 78.. MOV R0,#?V0
|
||
\ 00013D 12.... LCALL ?PUSH_XSTACK_I_THREE
|
||
\ 000140 12.... LCALL ?Subroutine59 & 0xFFFF
|
||
2121 }
|
||
\ ??CrossCallReturnLabel_87:
|
||
\ 000143 FC MOV R4,A
|
||
\ 000144 E4 CLR A
|
||
\ 000145 33 RLC A
|
||
\ 000146 FD MOV R5,A
|
||
\ 000147 12.... LCALL ?Subroutine106 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_599:
|
||
\ 00014A 2435 ADD A,#0x35
|
||
\ 00014C 12.... LCALL ?Subroutine56 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_545:
|
||
\ 00014F 12.... LCALL ?DEALLOC_XSTACK8
|
||
2122 else
|
||
2123 {
|
||
2124 // Allocation error, stop
|
||
2125 status = ZDP_NO_ENTRY;
|
||
2126 sendRsp = TRUE;
|
||
2127 }
|
||
2128 }
|
||
2129
|
||
2130 if ( (sendRsp == FALSE) && (matchED->ed1numMatched || matchED->ed2numMatched) )
|
||
\ ??ZDO_MatchEndDeviceBind_8:
|
||
\ 000152 EE MOV A,R6
|
||
\ 000153 A2E0 MOV C,0xE0 /* A */.0
|
||
\ 000155 4025 JC ??ZDO_MatchEndDeviceBind_10
|
||
\ 000157 12.... LCALL ?Subroutine102 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_499:
|
||
\ 00015A 12.... LCALL ?Subroutine150 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_247:
|
||
\ 00015D 7008 JNZ ??ZDO_MatchEndDeviceBind_11
|
||
\ 00015F 90.... MOV DPTR,#matchED
|
||
\ 000162 12.... LCALL ?Subroutine64 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_97:
|
||
\ 000165 6015 JZ ??ZDO_MatchEndDeviceBind_10
|
||
2131 {
|
||
2132 // Do the first unbind/bind state
|
||
2133 ZDMatchSendState( ZDMATCH_REASON_START, ZDP_SUCCESS, 0 );
|
||
\ ??ZDO_MatchEndDeviceBind_11:
|
||
\ 000167 ; Setup parameters for call to function ZDMatchSendState
|
||
\ 000167 7B00 MOV R3,#0x0
|
||
\ 000169 7A00 MOV R2,#0x0
|
||
\ 00016B 7900 MOV R1,#0x0
|
||
\ 00016D 12.... LCALL `??ZDMatchSendState::?relay`; Banked call to: ZDMatchSendState
|
||
2134 }
|
||
2135 else
|
||
2136 {
|
||
2137 status = ZDP_NO_MATCH;
|
||
2138 sendRsp = TRUE;
|
||
2139 }
|
||
2140 }
|
||
2141
|
||
2142 if ( sendRsp )
|
||
\ 000170 02.... LJMP ??ZDO_MatchEndDeviceBind_4 & 0xFFFF
|
||
\ ??ZDO_MatchEndDeviceBind_9:
|
||
\ 000173 85..82 MOV DPL,?XSP + 0
|
||
\ 000176 85..83 MOV DPH,?XSP + 1
|
||
\ 000179 7488 MOV A,#-0x78
|
||
\ 00017B F0 MOVX @DPTR,A
|
||
\ ??ZDO_MatchEndDeviceBind_10:
|
||
\ 00017C 85..82 MOV DPL,?XSP + 0
|
||
\ 00017F 85..83 MOV DPH,?XSP + 1
|
||
\ 000182 7486 MOV A,#-0x7a
|
||
\ ??ZDO_MatchEndDeviceBind_3:
|
||
\ 000184 F0 MOVX @DPTR,A
|
||
2143 {
|
||
2144 // send response to this requester
|
||
2145 dstAddr.addrMode = Addr16Bit;
|
||
\ 000185 7409 MOV A,#0x9
|
||
\ 000187 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00018A 7402 MOV A,#0x2
|
||
\ 00018C 12.... LCALL ?Subroutine166 & 0xFFFF
|
||
2146 dstAddr.addr.shortAddr = bindReq->srcAddr;
|
||
\ ??CrossCallReturnLabel_277:
|
||
\ 00018F 12.... LCALL ??Subroutine251_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_473:
|
||
\ 000192 7401 MOV A,#0x1
|
||
\ 000194 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000197 12.... LCALL ??Subroutine294_0 & 0xFFFF
|
||
2147 ZDP_EndDeviceBindRsp( bindReq->TransSeq, &dstAddr, status, bindReq->SecurityUse );
|
||
\ ??CrossCallReturnLabel_732:
|
||
\ 00019A ; Setup parameters for call to function ZDP_SendData
|
||
\ 00019A 85..82 MOV DPL,?V4
|
||
\ 00019D 85..83 MOV DPH,?V5
|
||
\ 0001A0 A3 INC DPTR
|
||
\ 0001A1 12.... LCALL ??Subroutine249_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_459:
|
||
\ 0001A4 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 0001A7 7401 MOV A,#0x1
|
||
\ 0001A9 12.... LCALL ?XSTACK_DISP100_8
|
||
\ 0001AC 88.. MOV ?V0,R0
|
||
\ 0001AE 89.. MOV ?V1,R1
|
||
\ 0001B0 78.. MOV R0,#?V0
|
||
\ 0001B2 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 0001B5 75..20 MOV ?V0,#0x20
|
||
\ 0001B8 75..80 MOV ?V1,#-0x80
|
||
\ 0001BB 78.. MOV R0,#?V0
|
||
\ 0001BD 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 0001C0 7901 MOV R1,#0x1
|
||
\ 0001C2 7406 MOV A,#0x6
|
||
\ 0001C4 12.... LCALL ?XSTACK_DISP102_8
|
||
\ 0001C7 AA.. MOV R2,?V4
|
||
\ 0001C9 AB.. MOV R3,?V5
|
||
\ 0001CB 12.... LCALL ?Subroutine161 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_269:
|
||
\ 0001CE 12.... LCALL ?DEALLOC_XSTACK8
|
||
2148
|
||
2149 if ( matchED->state == ZDMATCH_SENDING_BINDS )
|
||
\ 0001D1 12.... LCALL ?Subroutine78 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_124:
|
||
\ 0001D4 7042 JNZ ??ZDO_MatchEndDeviceBind_12
|
||
2150 {
|
||
2151 // send response to first requester
|
||
2152 dstAddr.addrMode = Addr16Bit;
|
||
\ 0001D6 7409 MOV A,#0x9
|
||
\ 0001D8 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0001DB 7402 MOV A,#0x2
|
||
\ 0001DD 12.... LCALL ?Subroutine51 & 0xFFFF
|
||
2153 dstAddr.addr.shortAddr = matchED->ed1.srcAddr;
|
||
2154 ZDP_EndDeviceBindRsp( matchED->ed1.TransSeq, &dstAddr, status, matchED->ed1.SecurityUse );
|
||
2155 }
|
||
\ ??CrossCallReturnLabel_75:
|
||
\ 0001E0 F583 MOV DPH,A
|
||
\ 0001E2 8882 MOV DPL,R0
|
||
\ 0001E4 12.... LCALL ??Subroutine251_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_474:
|
||
\ 0001E7 7401 MOV A,#0x1
|
||
\ 0001E9 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0001EC 12.... LCALL ?Subroutine14 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_10:
|
||
\ 0001EF 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 0001F2 7401 MOV A,#0x1
|
||
\ 0001F4 12.... LCALL ?XSTACK_DISP100_8
|
||
\ 0001F7 88.. MOV ?V0,R0
|
||
\ 0001F9 89.. MOV ?V1,R1
|
||
\ 0001FB 78.. MOV R0,#?V0
|
||
\ 0001FD 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000200 75..20 MOV ?V0,#0x20
|
||
\ 000203 75..80 MOV ?V1,#-0x80
|
||
\ 000206 78.. MOV R0,#?V0
|
||
\ 000208 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 00020B 7901 MOV R1,#0x1
|
||
\ 00020D 7406 MOV A,#0x6
|
||
\ 00020F 12.... LCALL ?XSTACK_DISP102_8
|
||
\ 000212 12.... LCALL ?Subroutine111 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_181:
|
||
\ 000215 12.... LCALL ?DEALLOC_XSTACK8
|
||
2156
|
||
2157 // Process ended - release memory used
|
||
2158 ZDO_RemoveMatchMemory();
|
||
\ ??ZDO_MatchEndDeviceBind_12:
|
||
\ 000218 ; Setup parameters for call to function ZDO_RemoveMatchMemory
|
||
\ 000218 12.... LCALL `??ZDO_RemoveMatchMemory::?relay`; Banked call to: ZDO_RemoveMatchMemory
|
||
2159 }
|
||
2160 }
|
||
\ ??ZDO_MatchEndDeviceBind_4:
|
||
\ 00021B 740A MOV A,#0xa
|
||
\ 00021D 02.... LJMP ?Subroutine5 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine151:
|
||
\ 000000 FA MOV R2,A
|
||
\ 000001 E4 CLR A
|
||
\ 000002 33 RLC A
|
||
\ 000003 FB MOV R3,A
|
||
\ 000004 12.... LCALL `??osal_mem_alloc::?relay`; Banked call to: osal_mem_alloc
|
||
\ 000007 90.... MOV DPTR,#matchED
|
||
\ 00000A E0 MOVX A,@DPTR
|
||
\ 00000B FC MOV R4,A
|
||
\ 00000C A3 INC DPTR
|
||
\ 00000D E0 MOVX A,@DPTR
|
||
\ 00000E CC XCH A,R4
|
||
\ 00000F 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine149:
|
||
\ 000000 12.... LCALL ?Subroutine216 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_347:
|
||
\ 000003 F9 MOV R1,A
|
||
\ 000004 12.... LCALL `??ZDO_CompareClusterLists::?relay`; Banked call to: ZDO_CompareClusterLists
|
||
\ 000007 7404 MOV A,#0x4
|
||
\ 000009 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine102:
|
||
\ 000000 90.... MOV DPTR,#matchED
|
||
\ 000003 REQUIRE ??Subroutine257_0
|
||
\ 000003 ; // Fall through to label ??Subroutine257_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine257_0:
|
||
\ 000000 12.... LCALL ??Subroutine258_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_614:
|
||
\ 000003 2431 ADD A,#0x31
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine90:
|
||
\ 000000 F582 MOV DPL,A
|
||
\ 000002 E4 CLR A
|
||
\ 000003 38 ADDC A,R0
|
||
\ 000004 F583 MOV DPH,A
|
||
\ 000006 12.... LCALL ?Subroutine179 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_551:
|
||
\ 000009 12.... LCALL ?Subroutine184 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_608:
|
||
\ 00000C 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine184:
|
||
\ 000000 90.... MOV DPTR,#matchED
|
||
\ 000003 REQUIRE ??Subroutine258_0
|
||
\ 000003 ; // Fall through to label ??Subroutine258_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine23:
|
||
\ 000000 F582 MOV DPL,A
|
||
\ 000002 E4 CLR A
|
||
\ 000003 38 ADDC A,R0
|
||
\ 000004 F583 MOV DPH,A
|
||
\ 000006 REQUIRE ??Subroutine261_0
|
||
\ 000006 ; // Fall through to label ??Subroutine261_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine261_0:
|
||
\ 000000 12.... LCALL ?Subroutine165 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_531:
|
||
\ 000003 C8 XCH A,R0
|
||
\ 000004 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine165:
|
||
\ 000000 E9 MOV A,R1
|
||
\ 000001 REQUIRE ??Subroutine262_0
|
||
\ 000001 ; // Fall through to label ??Subroutine262_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine262_0:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 ; Setup parameters for call to function ZDP_SendData
|
||
\ 000001 ; Setup parameters for call to function ZDP_SendData
|
||
\ 000001 ; Setup parameters for call to function ZDP_SendData
|
||
\ 000001 90.... MOV DPTR,#matchED
|
||
\ 000004 12.... LCALL ?Subroutine220 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_655:
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine105:
|
||
\ 000000 12.... LCALL ?Subroutine184 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_613:
|
||
\ 000003 242C ADD A,#0x2c
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine104:
|
||
\ 000000 12.... LCALL ?Subroutine184 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_612:
|
||
\ 000003 2412 ADD A,#0x12
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine103:
|
||
\ 000000 12.... LCALL ?Subroutine184 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_611:
|
||
\ 000003 2432 ADD A,#0x32
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine101:
|
||
\ 000000 12.... LCALL ?Subroutine184 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_610:
|
||
\ 000003 2415 ADD A,#0x15
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine100:
|
||
\ 000000 12.... LCALL ?Subroutine184 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_609:
|
||
\ 000003 2429 ADD A,#0x29
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine56:
|
||
\ 000000 F582 MOV DPL,A
|
||
\ 000002 E4 CLR A
|
||
\ 000003 38 ADDC A,R0
|
||
\ 000004 REQUIRE ??Subroutine265_0
|
||
\ 000004 ; // Fall through to label ??Subroutine265_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine265_0:
|
||
\ 000000 F583 MOV DPH,A
|
||
\ 000002 REQUIRE ??Subroutine266_0
|
||
\ 000002 ; // Fall through to label ??Subroutine266_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine123:
|
||
\ 000000 90.... MOV DPTR,#matchED
|
||
\ 000003 E0 MOVX A,@DPTR
|
||
\ 000004 2417 ADD A,#0x17
|
||
\ 000006 FA MOV R2,A
|
||
\ 000007 A3 INC DPTR
|
||
\ 000008 E0 MOVX A,@DPTR
|
||
\ 000009 3400 ADDC A,#0x0
|
||
\ 00000B FB MOV R3,A
|
||
\ 00000C 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine117:
|
||
\ 000000 7C.. MOV R4,#`??ZDO_EndDeviceBindMatchTimeoutCB::?relay` & 0xff
|
||
\ 000002 7D.. MOV R5,#(`??ZDO_EndDeviceBindMatchTimeoutCB::?relay` >> 8) & 0xff
|
||
\ 000004 90.... MOV DPTR,#AIB_MaxBindingTime
|
||
\ 000007 12.... LCALL ?Subroutine179 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_553:
|
||
\ 00000A 12.... LCALL `??APS_SetEndDeviceBindTimeout::?relay`; Banked call to: APS_SetEndDeviceBindTimeout
|
||
\ 00000D 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine111:
|
||
\ 000000 90.... MOV DPTR,#matchED
|
||
\ 000003 12.... LCALL ?Subroutine179 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_552:
|
||
\ 000006 12.... LCALL ??Subroutine245_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_447:
|
||
\ 000009 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine78:
|
||
\ 000000 12.... LCALL ?Subroutine184 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_607:
|
||
\ 000003 12.... LCALL ?Subroutine208 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_333:
|
||
\ 000006 E0 MOVX A,@DPTR
|
||
\ 000007 6402 XRL A,#0x2
|
||
\ 000009 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine208:
|
||
\ 000000 242E ADD A,#0x2e
|
||
\ 000002 F582 MOV DPL,A
|
||
\ 000004 E4 CLR A
|
||
\ 000005 38 ADDC A,R0
|
||
\ 000006 F583 MOV DPH,A
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine64:
|
||
\ 000000 12.... LCALL ?Subroutine182 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_301:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine182:
|
||
\ 000000 12.... LCALL ?Subroutine213 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_618:
|
||
\ 000003 2434 ADD A,#0x34
|
||
\ 000005 12.... LCALL ?Subroutine216 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_351:
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine59:
|
||
\ 000000 90.... MOV DPTR,#matchED
|
||
\ 000003 12.... LCALL ?Subroutine182 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_300:
|
||
\ 000006 25E0 ADD A,0xE0 /* A */
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine58:
|
||
\ 000000 12.... LCALL ?Subroutine181 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_298:
|
||
\ 000003 25E0 ADD A,0xE0 /* A */
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine181:
|
||
\ 000000 90.... MOV DPTR,#matchED
|
||
\ 000003 12.... LCALL ?Subroutine213 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_617:
|
||
\ 000006 2431 ADD A,#0x31
|
||
\ 000008 12.... LCALL ?Subroutine216 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_350:
|
||
\ 00000B 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine51:
|
||
\ 000000 12.... LCALL ??Subroutine262_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_533:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine14:
|
||
\ 000000 E8 MOV A,R0
|
||
\ 000001 F0 MOVX @DPTR,A
|
||
\ 000002 A3 INC DPTR
|
||
\ 000003 12.... LCALL ?Subroutine165 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_532:
|
||
\ 000006 F583 MOV DPH,A
|
||
\ 000008 8882 MOV DPL,R0
|
||
\ 00000A A3 INC DPTR
|
||
\ 00000B E0 MOVX A,@DPTR
|
||
\ 00000C F5.. MOV ?V0,A
|
||
\ 00000E 78.. MOV R0,#?V0
|
||
\ 000010 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine106:
|
||
\ 000000 90.... MOV DPTR,#matchED
|
||
\ 000003 REQUIRE ??Subroutine275_0
|
||
\ 000003 ; // Fall through to label ??Subroutine275_0
|
||
2161
|
||
2162 /*********************************************************************
|
||
2163 * @fn ZDO_RemoveMatchMemory()
|
||
2164 *
|
||
2165 * @brief Called to clear the memory used for the end device bind.
|
||
2166 *
|
||
2167 * @param none
|
||
2168 *
|
||
2169 * @return none
|
||
2170 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
2171 static void ZDO_RemoveMatchMemory( void )
|
||
\ ZDO_RemoveMatchMemory:
|
||
2172 {
|
||
\ 000000 C082 PUSH DPL
|
||
\ 000002 C083 PUSH DPH
|
||
\ 000004 ; Saved register size: 2
|
||
\ 000004 ; Auto size: 0
|
||
2173 if ( matchED != NULL )
|
||
\ 000004 90.... MOV DPTR,#matchED
|
||
\ 000007 12.... LCALL ??Subroutine260_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_515:
|
||
\ 00000A 6067 JZ ??ZDO_RemoveMatchMemory_0
|
||
2174 {
|
||
2175 if ( matchED->ed2Matched != NULL )
|
||
\ 00000C E8 MOV A,R0
|
||
\ 00000D 2435 ADD A,#0x35
|
||
\ 00000F F582 MOV DPL,A
|
||
\ 000011 E4 CLR A
|
||
\ 000012 39 ADDC A,R1
|
||
\ 000013 12.... LCALL ??Subroutine259_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_519:
|
||
\ 000016 6008 JZ ??CrossCallReturnLabel_404
|
||
2176 {
|
||
2177 osal_mem_free( matchED->ed2Matched );
|
||
\ 000018 ; Setup parameters for call to function osal_mem_free
|
||
\ 000018 12.... LCALL ?Subroutine106 & 0xFFFF
|
||
2178 }
|
||
\ ??CrossCallReturnLabel_600:
|
||
\ 00001B 2435 ADD A,#0x35
|
||
\ 00001D 12.... LCALL ?Subroutine54 & 0xFFFF
|
||
2179 if ( matchED->ed1Matched != NULL )
|
||
\ ??CrossCallReturnLabel_404:
|
||
\ 000020 12.... LCALL ?Subroutine103 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_169:
|
||
\ 000023 12.... LCALL ?Subroutine53 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_523:
|
||
\ 000026 6006 JZ ??CrossCallReturnLabel_405
|
||
2180 {
|
||
2181 osal_mem_free( matchED->ed1Matched );
|
||
\ 000028 ; Setup parameters for call to function osal_mem_free
|
||
\ 000028 12.... LCALL ?Subroutine103 & 0xFFFF
|
||
2182 }
|
||
\ ??CrossCallReturnLabel_170:
|
||
\ 00002B 12.... LCALL ?Subroutine54 & 0xFFFF
|
||
2183 if ( matchED->ed1.inClusters != NULL )
|
||
\ ??CrossCallReturnLabel_405:
|
||
\ 00002E 12.... LCALL ?Subroutine104 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_172:
|
||
\ 000031 12.... LCALL ?Subroutine53 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_524:
|
||
\ 000034 6006 JZ ??CrossCallReturnLabel_406
|
||
2184 {
|
||
2185 osal_mem_free( matchED->ed1.inClusters );
|
||
\ 000036 ; Setup parameters for call to function osal_mem_free
|
||
\ 000036 12.... LCALL ?Subroutine104 & 0xFFFF
|
||
2186 }
|
||
\ ??CrossCallReturnLabel_173:
|
||
\ 000039 12.... LCALL ?Subroutine54 & 0xFFFF
|
||
2187 if ( matchED->ed1.outClusters != NULL )
|
||
\ ??CrossCallReturnLabel_406:
|
||
\ 00003C 12.... LCALL ?Subroutine101 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_166:
|
||
\ 00003F 12.... LCALL ?Subroutine53 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_525:
|
||
\ 000042 6006 JZ ??CrossCallReturnLabel_407
|
||
2188 {
|
||
2189 osal_mem_free( matchED->ed1.outClusters );
|
||
\ 000044 ; Setup parameters for call to function osal_mem_free
|
||
\ 000044 12.... LCALL ?Subroutine101 & 0xFFFF
|
||
2190 }
|
||
\ ??CrossCallReturnLabel_167:
|
||
\ 000047 12.... LCALL ?Subroutine54 & 0xFFFF
|
||
2191 if ( matchED->ed2.inClusters != NULL )
|
||
\ ??CrossCallReturnLabel_407:
|
||
\ 00004A 12.... LCALL ?Subroutine100 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_163:
|
||
\ 00004D 12.... LCALL ?Subroutine53 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_526:
|
||
\ 000050 6006 JZ ??CrossCallReturnLabel_408
|
||
2192 {
|
||
2193 osal_mem_free( matchED->ed2.inClusters );
|
||
\ 000052 ; Setup parameters for call to function osal_mem_free
|
||
\ 000052 12.... LCALL ?Subroutine100 & 0xFFFF
|
||
2194 }
|
||
\ ??CrossCallReturnLabel_164:
|
||
\ 000055 12.... LCALL ?Subroutine54 & 0xFFFF
|
||
2195 if ( matchED->ed2.outClusters != NULL )
|
||
\ ??CrossCallReturnLabel_408:
|
||
\ 000058 12.... LCALL ?Subroutine105 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_175:
|
||
\ 00005B 12.... LCALL ?Subroutine53 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_527:
|
||
\ 00005E 6006 JZ ??CrossCallReturnLabel_409
|
||
2196 {
|
||
2197 osal_mem_free( matchED->ed2.outClusters );
|
||
\ 000060 ; Setup parameters for call to function osal_mem_free
|
||
\ 000060 12.... LCALL ?Subroutine105 & 0xFFFF
|
||
2198 }
|
||
\ ??CrossCallReturnLabel_176:
|
||
\ 000063 12.... LCALL ?Subroutine54 & 0xFFFF
|
||
2199
|
||
2200 osal_mem_free( matchED );
|
||
\ ??CrossCallReturnLabel_409:
|
||
\ 000066 ; Setup parameters for call to function osal_mem_free
|
||
\ 000066 90.... MOV DPTR,#matchED
|
||
\ 000069 12.... LCALL ??Subroutine241_0 & 0xFFFF
|
||
2201 matchED = (ZDMatchEndDeviceBind_t *)NULL;
|
||
\ ??CrossCallReturnLabel_418:
|
||
\ 00006C 90.... MOV DPTR,#matchED
|
||
\ 00006F E4 CLR A
|
||
\ 000070 F0 MOVX @DPTR,A
|
||
\ 000071 A3 INC DPTR
|
||
\ 000072 F0 MOVX @DPTR,A
|
||
2202 }
|
||
2203 }
|
||
\ ??ZDO_RemoveMatchMemory_0:
|
||
\ 000073 REQUIRE ?Subroutine0
|
||
\ 000073 ; // Fall through to label ?Subroutine0
|
||
2204
|
||
2205 /*********************************************************************
|
||
2206 * @fn ZDO_CopyMatchInfo()
|
||
2207 *
|
||
2208 * @brief Called to copy memory used for the end device bind.
|
||
2209 *
|
||
2210 * @param srcReq - source information
|
||
2211 * @param dstReq - destination location
|
||
2212 *
|
||
2213 * @return TRUE if copy was successful.
|
||
2214 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
2215 static uint8 ZDO_CopyMatchInfo( ZDEndDeviceBind_t *destReq, ZDEndDeviceBind_t *srcReq )
|
||
\ ZDO_CopyMatchInfo:
|
||
2216 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V5
|
||
\ 000000 74F2 MOV A,#-0xe
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 14
|
||
\ 000005 ; Auto size: 0
|
||
\ 000005 EA MOV A,R2
|
||
\ 000006 FE MOV R6,A
|
||
\ 000007 EB MOV A,R3
|
||
\ 000008 FF MOV R7,A
|
||
\ 000009 8C.. MOV ?V4,R4
|
||
\ 00000B 8D.. MOV ?V5,R5
|
||
2217 uint8 allOK = TRUE;
|
||
\ 00000D 75..01 MOV ?V3,#0x1
|
||
2218
|
||
2219 // Copy bind information into the match info structure
|
||
2220 osal_memcpy( (uint8 *)destReq, srcReq, sizeof ( ZDEndDeviceBind_t ) );
|
||
\ 000010 ; Setup parameters for call to function osal_memcpy
|
||
\ 000010 8C.. MOV ?V0,R4
|
||
\ 000012 8D.. MOV ?V1,R5
|
||
\ 000014 75..00 MOV ?V2,#0x0
|
||
\ 000017 78.. MOV R0,#?V0
|
||
\ 000019 12.... LCALL ?PUSH_XSTACK_I_THREE
|
||
\ 00001C 7C17 MOV R4,#0x17
|
||
\ 00001E 7D00 MOV R5,#0x0
|
||
\ 000020 12.... LCALL ??Subroutine280_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_638:
|
||
\ 000023 12.... LCALL ?DEALLOC_XSTACK8
|
||
2221
|
||
2222 // Initialize the destination cluster pointers
|
||
2223 destReq->inClusters = NULL;
|
||
\ 000026 EE MOV A,R6
|
||
\ 000027 2412 ADD A,#0x12
|
||
\ 000029 12.... LCALL ??Subroutine264_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_540:
|
||
\ 00002C F0 MOVX @DPTR,A
|
||
\ 00002D A3 INC DPTR
|
||
\ 00002E F0 MOVX @DPTR,A
|
||
2224 destReq->outClusters = NULL;
|
||
\ 00002F EE MOV A,R6
|
||
\ 000030 2415 ADD A,#0x15
|
||
\ 000032 12.... LCALL ??Subroutine264_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_541:
|
||
\ 000035 F0 MOVX @DPTR,A
|
||
\ 000036 A3 INC DPTR
|
||
\ 000037 F0 MOVX @DPTR,A
|
||
2225
|
||
2226 // Copy input cluster IDs
|
||
2227 if ( srcReq->numInClusters )
|
||
\ 000038 E5.. MOV A,?V4
|
||
\ 00003A 2411 ADD A,#0x11
|
||
\ 00003C 12.... LCALL ?Subroutine202 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_327:
|
||
\ 00003F 602A JZ ??ZDO_CopyMatchInfo_0
|
||
\ 000041 ; Setup parameters for call to function osal_mem_alloc
|
||
\ 000041 12.... LCALL ?Subroutine131 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_215:
|
||
\ 000044 12.... LCALL ??Subroutine232_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_377:
|
||
\ 000047 12.... LCALL ??Subroutine267_0 & 0xFFFF
|
||
2228 {
|
||
2229 destReq->inClusters = osal_mem_alloc( (short)(srcReq->numInClusters * sizeof ( uint16 )) );
|
||
2230 if ( destReq->inClusters )
|
||
\ ??CrossCallReturnLabel_557:
|
||
\ 00004A 601C JZ ??ZDO_CopyMatchInfo_1
|
||
2231 {
|
||
2232 // Copy the clusters
|
||
2233 osal_memcpy( (uint8*)(destReq->inClusters), (uint8 *)(srcReq->inClusters),
|
||
2234 (srcReq->numInClusters * sizeof ( uint16 )) );
|
||
\ 00004C ; Setup parameters for call to function osal_memcpy
|
||
\ 00004C E5.. MOV A,?V4
|
||
\ 00004E 2412 ADD A,#0x12
|
||
\ 000050 12.... LCALL ?Subroutine115 & 0xFFFF
|
||
2235 }
|
||
\ ??CrossCallReturnLabel_189:
|
||
\ 000053 12.... LCALL ?PUSH_XSTACK_I_THREE
|
||
\ 000056 E5.. MOV A,?V4
|
||
\ 000058 2411 ADD A,#0x11
|
||
\ 00005A 12.... LCALL ?Subroutine124 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_204:
|
||
\ 00005D 12.... LCALL ??Subroutine232_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_378:
|
||
\ 000060 12.... LCALL ??Subroutine265_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_546:
|
||
\ 000063 12.... LCALL ?DEALLOC_XSTACK8
|
||
\ 000066 8003 SJMP ??ZDO_CopyMatchInfo_0
|
||
2236 else
|
||
2237 {
|
||
2238 allOK = FALSE;
|
||
\ ??ZDO_CopyMatchInfo_1:
|
||
\ 000068 75..00 MOV ?V3,#0x0
|
||
2239 }
|
||
2240 }
|
||
2241
|
||
2242 // Copy output cluster IDs
|
||
2243 if ( srcReq->numOutClusters )
|
||
\ ??ZDO_CopyMatchInfo_0:
|
||
\ 00006B E5.. MOV A,?V4
|
||
\ 00006D 2414 ADD A,#0x14
|
||
\ 00006F 12.... LCALL ?Subroutine202 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_328:
|
||
\ 000072 6025 JZ ??ZDO_CopyMatchInfo_2
|
||
\ 000074 ; Setup parameters for call to function osal_mem_alloc
|
||
\ 000074 12.... LCALL ?Subroutine131 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_216:
|
||
\ 000077 12.... LCALL ??Subroutine263_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_534:
|
||
\ 00007A 12.... LCALL ??Subroutine267_0 & 0xFFFF
|
||
2244 {
|
||
2245 destReq->outClusters = osal_mem_alloc( (short)(srcReq->numOutClusters * sizeof ( uint16 )) );
|
||
2246 if ( destReq->outClusters )
|
||
\ ??CrossCallReturnLabel_558:
|
||
\ 00007D 6041 JZ ??ZDO_CopyMatchInfo_3
|
||
2247 {
|
||
2248 // Copy the clusters
|
||
2249 osal_memcpy( (uint8 *)(destReq->outClusters), (uint8 *)(srcReq->outClusters),
|
||
2250 (srcReq->numOutClusters * sizeof ( uint16 )) );
|
||
\ 00007F ; Setup parameters for call to function osal_memcpy
|
||
\ 00007F E5.. MOV A,?V4
|
||
\ 000081 2415 ADD A,#0x15
|
||
\ 000083 12.... LCALL ?Subroutine115 & 0xFFFF
|
||
2251 }
|
||
\ ??CrossCallReturnLabel_190:
|
||
\ 000086 12.... LCALL ?PUSH_XSTACK_I_THREE
|
||
\ 000089 E5.. MOV A,?V4
|
||
\ 00008B 2414 ADD A,#0x14
|
||
\ 00008D 12.... LCALL ?Subroutine124 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_205:
|
||
\ 000090 12.... LCALL ??Subroutine263_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_535:
|
||
\ 000093 12.... LCALL ??Subroutine265_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_547:
|
||
\ 000096 12.... LCALL ?DEALLOC_XSTACK8
|
||
2252 else
|
||
2253 {
|
||
2254 allOK = FALSE;
|
||
2255 }
|
||
2256 }
|
||
2257
|
||
2258 if ( allOK == FALSE )
|
||
\ ??ZDO_CopyMatchInfo_2:
|
||
\ 000099 E5.. MOV A,?V3
|
||
\ 00009B A2E0 MOV C,0xE0 /* A */.0
|
||
\ 00009D 401C JC ??CrossCallReturnLabel_411
|
||
2259 {
|
||
2260 if ( destReq->inClusters != NULL )
|
||
\ ??ZDO_CopyMatchInfo_4:
|
||
\ 00009F 12.... LCALL ?Subroutine159 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_380:
|
||
\ 0000A2 12.... LCALL ??Subroutine259_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_520:
|
||
\ 0000A5 6006 JZ ??CrossCallReturnLabel_410
|
||
2261 {
|
||
2262 osal_mem_free( destReq->inClusters );
|
||
\ 0000A7 ; Setup parameters for call to function osal_mem_free
|
||
\ 0000A7 12.... LCALL ?Subroutine159 & 0xFFFF
|
||
2263 }
|
||
\ ??CrossCallReturnLabel_381:
|
||
\ 0000AA 12.... LCALL ??Subroutine240_0 & 0xFFFF
|
||
2264 if ( destReq->outClusters != NULL )
|
||
\ ??CrossCallReturnLabel_410:
|
||
\ 0000AD 12.... LCALL ?Subroutine160 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_536:
|
||
\ 0000B0 12.... LCALL ??Subroutine259_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_521:
|
||
\ 0000B3 6006 JZ ??CrossCallReturnLabel_411
|
||
2265 {
|
||
2266 osal_mem_free( destReq->outClusters );
|
||
\ 0000B5 ; Setup parameters for call to function osal_mem_free
|
||
\ 0000B5 12.... LCALL ?Subroutine160 & 0xFFFF
|
||
2267 }
|
||
2268 }
|
||
\ ??CrossCallReturnLabel_537:
|
||
\ 0000B8 12.... LCALL ??Subroutine240_0 & 0xFFFF
|
||
2269
|
||
2270 return ( allOK );
|
||
\ ??CrossCallReturnLabel_411:
|
||
\ 0000BB A9.. MOV R1,?V3
|
||
\ 0000BD 02.... LJMP ??Subroutine297_0 & 0xFFFF
|
||
\ ??ZDO_CopyMatchInfo_3:
|
||
\ 0000C0 75..00 MOV ?V3,#0x0
|
||
\ 0000C3 80DA SJMP ??ZDO_CopyMatchInfo_4
|
||
2271 }
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine160:
|
||
\ 000000 EE MOV A,R6
|
||
\ 000001 REQUIRE ??Subroutine263_0
|
||
\ 000001 ; // Fall through to label ??Subroutine263_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine263_0:
|
||
\ 000000 2415 ADD A,#0x15
|
||
\ 000002 F582 MOV DPL,A
|
||
\ 000004 E4 CLR A
|
||
\ 000005 3F ADDC A,R7
|
||
\ 000006 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine131:
|
||
\ 000000 12.... LCALL ?Subroutine196 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_566:
|
||
\ 000003 8B.. MOV ?V1,R3
|
||
\ 000005 A9.. MOV R1,?V1
|
||
\ 000007 EE MOV A,R6
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine124:
|
||
\ 000000 12.... LCALL ?Subroutine202 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_329:
|
||
\ 000003 25E0 ADD A,0xE0 /* A */
|
||
\ 000005 FC MOV R4,A
|
||
\ 000006 E4 CLR A
|
||
\ 000007 33 RLC A
|
||
\ 000008 FD MOV R5,A
|
||
\ 000009 EE MOV A,R6
|
||
\ 00000A 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine115:
|
||
\ 000000 F582 MOV DPL,A
|
||
\ 000002 E4 CLR A
|
||
\ 000003 35.. ADDC A,?V5
|
||
\ 000005 12.... LCALL ?Subroutine177 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_360:
|
||
\ 000008 78.. MOV R0,#?V0
|
||
\ 00000A 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine267_0:
|
||
\ 000000 F583 MOV DPH,A
|
||
\ 000002 REQUIRE ??Subroutine268_0
|
||
\ 000002 ; // Fall through to label ??Subroutine268_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine268_0:
|
||
\ 000000 EA MOV A,R2
|
||
\ 000001 F0 MOVX @DPTR,A
|
||
\ 000002 A3 INC DPTR
|
||
\ 000003 EB MOV A,R3
|
||
\ 000004 F0 MOVX @DPTR,A
|
||
\ 000005 EA MOV A,R2
|
||
\ 000006 49 ORL A,R1
|
||
\ 000007 22 RET
|
||
2272
|
||
2273 /*********************************************************************
|
||
2274 * @fn ZDMatchSendState()
|
||
2275 *
|
||
2276 * @brief State machine for the End device match message algorithm.
|
||
2277 *
|
||
2278 * @param reason - state of algoritm
|
||
2279 * @param status - initial message status
|
||
2280 * @param TransSeq - next transaction sequence number
|
||
2281 *
|
||
2282 * @return FALSE if error and we are not currently matching, TRUE
|
||
2283 * if success.
|
||
2284 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine99:
|
||
\ 000000 F582 MOV DPL,A
|
||
\ 000002 E4 CLR A
|
||
\ 000003 38 ADDC A,R0
|
||
\ 000004 REQUIRE ??Subroutine248_0
|
||
\ 000004 ; // Fall through to label ??Subroutine248_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
2285 uint8 ZDMatchSendState( uint8 reason, uint8 status, uint8 TransSeq )
|
||
\ ZDMatchSendState:
|
||
2286 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V5
|
||
\ 000000 REQUIRE ?V6
|
||
\ 000000 REQUIRE ?V7
|
||
\ 000000 74F0 MOV A,#-0x10
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 16
|
||
\ 000005 ; Auto size: 21
|
||
\ 000005 74EB MOV A,#-0x15
|
||
\ 000007 12.... LCALL ?ALLOC_XSTACK8
|
||
\ 00000A 7401 MOV A,#0x1
|
||
\ 00000C 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00000F EA MOV A,R2
|
||
\ 000010 F0 MOVX @DPTR,A
|
||
\ 000011 7402 MOV A,#0x2
|
||
\ 000013 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000016 EB MOV A,R3
|
||
\ 000017 F0 MOVX @DPTR,A
|
||
\ 000018 89.. MOV ?V2,R1
|
||
2287 uint8 *dstIEEEAddr = NULL;
|
||
\ 00001A 75..00 MOV ?V4,#0x0
|
||
\ 00001D 75..00 MOV ?V5,#0x0
|
||
2288 uint8 dstEP = 0xFF;
|
||
\ 000020 75..FF MOV ?V3,#-0x1
|
||
2289 zAddrType_t dstAddr;
|
||
2290 zAddrType_t destinationAddr;
|
||
2291 uint16 msgType;
|
||
2292 uint16 clusterID = 0xFFFF;
|
||
\ 000023 7EFF MOV R6,#-0x1
|
||
\ 000025 7FFF MOV R7,#-0x1
|
||
2293 ZDEndDeviceBind_t *ed = NULL;
|
||
\ 000027 75..00 MOV ?V6,#0x0
|
||
\ 00002A 75..00 MOV ?V7,#0x0
|
||
2294 uint8 rspStatus = ZDP_SUCCESS;
|
||
\ 00002D 85..82 MOV DPL,?XSP + 0
|
||
\ 000030 85..83 MOV DPH,?XSP + 1
|
||
\ 000033 E4 CLR A
|
||
\ 000034 12.... LCALL ?Subroutine51 & 0xFFFF
|
||
2295
|
||
2296 if ( matchED == NULL )
|
||
\ ??CrossCallReturnLabel_76:
|
||
\ 000037 F9 MOV R1,A
|
||
\ 000038 E8 MOV A,R0
|
||
\ 000039 49 ORL A,R1
|
||
\ 00003A 6020 JZ ??ZDMatchSendState_0
|
||
2297 {
|
||
2298 return ( FALSE );
|
||
2299 }
|
||
2300
|
||
2301 // Check sequence number
|
||
2302 if ( reason == ZDMATCH_REASON_BIND_RSP || reason == ZDMATCH_REASON_UNBIND_RSP )
|
||
\ 00003C 7403 MOV A,#0x3
|
||
\ 00003E 65.. XRL A,?V2
|
||
\ 000040 6006 JZ ??ZDMatchSendState_1
|
||
\ 000042 7402 MOV A,#0x2
|
||
\ 000044 65.. XRL A,?V2
|
||
\ 000046 7019 JNZ ??ZDMatchSendState_2
|
||
2303 {
|
||
2304 if ( TransSeq != matchED->transSeq )
|
||
\ ??ZDMatchSendState_1:
|
||
\ 000048 7402 MOV A,#0x2
|
||
\ 00004A 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00004D E0 MOVX A,@DPTR
|
||
\ 00004E F9 MOV R1,A
|
||
\ 00004F 90.... MOV DPTR,#matchED + 1
|
||
\ 000052 E0 MOVX A,@DPTR
|
||
\ 000053 C8 XCH A,R0
|
||
\ 000054 2430 ADD A,#0x30
|
||
\ 000056 12.... LCALL ?Subroutine150 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_248:
|
||
\ 000059 69 XRL A,R1
|
||
\ 00005A 6005 JZ ??ZDMatchSendState_2
|
||
2305 {
|
||
2306 return( FALSE ); // ignore the message
|
||
\ ??ZDMatchSendState_0:
|
||
\ 00005C 7900 MOV R1,#0x0
|
||
\ 00005E 02.... LJMP ??ZDMatchSendState_3 & 0xFFFF
|
||
2307 }
|
||
2308 }
|
||
2309
|
||
2310 // turn off timer
|
||
2311 APS_SetEndDeviceBindTimeout( 0, ZDO_EndDeviceBindMatchTimeoutCB );
|
||
\ ??ZDMatchSendState_2:
|
||
\ 000061 ; Setup parameters for call to function APS_SetEndDeviceBindTimeout
|
||
\ 000061 7C.. MOV R4,#`??ZDO_EndDeviceBindMatchTimeoutCB::?relay` & 0xff
|
||
\ 000063 7D.. MOV R5,#(`??ZDO_EndDeviceBindMatchTimeoutCB::?relay` >> 8) & 0xff
|
||
\ 000065 7A00 MOV R2,#0x0
|
||
\ 000067 7B00 MOV R3,#0x0
|
||
\ 000069 12.... LCALL `??APS_SetEndDeviceBindTimeout::?relay`; Banked call to: APS_SetEndDeviceBindTimeout
|
||
2312
|
||
2313 if ( reason == ZDMATCH_REASON_TIMEOUT )
|
||
\ 00006C 7401 MOV A,#0x1
|
||
\ 00006E 65.. XRL A,?V2
|
||
\ 000070 700A JNZ ??ZDMatchSendState_4
|
||
2314 {
|
||
2315 rspStatus = ZDP_TIMEOUT; // The process will stop
|
||
\ 000072 85..82 MOV DPL,?XSP + 0
|
||
\ 000075 85..83 MOV DPH,?XSP + 1
|
||
\ 000078 7485 MOV A,#-0x7b
|
||
\ 00007A 8045 SJMP ??ZDMatchSendState_5
|
||
2316 }
|
||
2317
|
||
2318 if ( reason == ZDMATCH_REASON_START || reason == ZDMATCH_REASON_BIND_RSP )
|
||
\ ??ZDMatchSendState_4:
|
||
\ 00007C E5.. MOV A,?V2
|
||
\ 00007E 6006 JZ ??ZDMatchSendState_6
|
||
\ 000080 7403 MOV A,#0x3
|
||
\ 000082 65.. XRL A,?V2
|
||
\ 000084 701D JNZ ??ZDMatchSendState_7
|
||
2319 {
|
||
2320 matchED->sending = ZDMATCH_SENDING_UNBIND;
|
||
\ ??ZDMatchSendState_6:
|
||
\ 000086 90.... MOV DPTR,#matchED
|
||
\ 000089 12.... LCALL ?Subroutine83 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_133:
|
||
\ 00008C F0 MOVX @DPTR,A
|
||
2321
|
||
2322 if ( reason == ZDMATCH_REASON_BIND_RSP && status != ZDP_SUCCESS )
|
||
\ 00008D 7403 MOV A,#0x3
|
||
\ 00008F 65.. XRL A,?V2
|
||
\ 000091 7031 JNZ ??ZDMatchSendState_8
|
||
\ 000093 7401 MOV A,#0x1
|
||
\ 000095 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000098 E0 MOVX A,@DPTR
|
||
\ 000099 602D JZ ??ZDMatchSendState_9
|
||
2323 {
|
||
2324 rspStatus = status;
|
||
\ 00009B 85..82 MOV DPL,?XSP + 0
|
||
\ 00009E 85..83 MOV DPH,?XSP + 1
|
||
\ 0000A1 801E SJMP ??ZDMatchSendState_5
|
||
2325 }
|
||
2326 }
|
||
2327 else if ( reason == ZDMATCH_REASON_UNBIND_RSP )
|
||
\ ??ZDMatchSendState_7:
|
||
\ 0000A3 7402 MOV A,#0x2
|
||
\ 0000A5 65.. XRL A,?V2
|
||
\ 0000A7 701F JNZ ??ZDMatchSendState_9
|
||
2328 {
|
||
2329 if ( status == ZDP_SUCCESS )
|
||
\ 0000A9 7401 MOV A,#0x1
|
||
\ 0000AB 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000AE E0 MOVX A,@DPTR
|
||
\ 0000AF 90.... MOV DPTR,#matchED
|
||
\ 0000B2 7005 JNZ ??ZDMatchSendState_10
|
||
2330 {
|
||
2331 matchED->sending = ZDMATCH_SENDING_UNBIND;
|
||
\ 0000B4 12.... LCALL ?Subroutine83 & 0xFFFF
|
||
2332 }
|
||
\ ??CrossCallReturnLabel_134:
|
||
\ 0000B7 8008 SJMP ??ZDMatchSendState_5
|
||
2333 else
|
||
2334 {
|
||
2335 matchED->sending = ZDMATCH_SENDING_BIND;
|
||
\ ??ZDMatchSendState_10:
|
||
\ 0000B9 12.... LCALL ??Subroutine275_0 & 0xFFFF
|
||
2336 }
|
||
2337 }
|
||
\ ??CrossCallReturnLabel_592:
|
||
\ 0000BC 12.... LCALL ?Subroutine218 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_352:
|
||
\ 0000BF 7402 MOV A,#0x2
|
||
\ ??ZDMatchSendState_5:
|
||
\ 0000C1 F0 MOVX @DPTR,A
|
||
\ 0000C2 8004 SJMP ??ZDMatchSendState_9
|
||
2338
|
||
2339 if ( reason != ZDMATCH_REASON_START && matchED->sending == ZDMATCH_SENDING_UNBIND )
|
||
\ ??ZDMatchSendState_8:
|
||
\ 0000C4 E5.. MOV A,?V2
|
||
\ 0000C6 601E JZ ??ZDMatchSendState_11
|
||
\ ??ZDMatchSendState_9:
|
||
\ 0000C8 12.... LCALL ?Subroutine79 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_126:
|
||
\ 0000CB 7019 JNZ ??ZDMatchSendState_11
|
||
2340 {
|
||
2341 // Move to the next cluster ID
|
||
2342 if ( matchED->ed1numMatched )
|
||
\ 0000CD 12.... LCALL ?Subroutine75 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_118:
|
||
\ 0000D0 6005 JZ ??ZDMatchSendState_12
|
||
2343 {
|
||
2344 matchED->ed1numMatched--;
|
||
\ 0000D2 12.... LCALL ??Subroutine257_0 & 0xFFFF
|
||
2345 }
|
||
\ ??CrossCallReturnLabel_497:
|
||
\ 0000D5 800A SJMP ??ZDMatchSendState_13
|
||
2346 else if ( matchED->ed2numMatched )
|
||
\ ??ZDMatchSendState_12:
|
||
\ 0000D7 12.... LCALL ?Subroutine64 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_98:
|
||
\ 0000DA 600A JZ ??ZDMatchSendState_11
|
||
2347 {
|
||
2348 matchED->ed2numMatched--;
|
||
\ 0000DC 12.... LCALL ?Subroutine106 & 0xFFFF
|
||
2349 }
|
||
2350 }
|
||
\ ??CrossCallReturnLabel_601:
|
||
\ 0000DF 2434 ADD A,#0x34
|
||
\ ??ZDMatchSendState_13:
|
||
\ 0000E1 12.... LCALL ?Subroutine150 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_249:
|
||
\ 0000E4 2E ADD A,R6
|
||
\ 0000E5 F0 MOVX @DPTR,A
|
||
2351
|
||
2352 // What message do we send now
|
||
2353 if ( matchED->ed1numMatched )
|
||
\ ??ZDMatchSendState_11:
|
||
\ 0000E6 12.... LCALL ?Subroutine75 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_119:
|
||
\ 0000E9 601C JZ ??ZDMatchSendState_14
|
||
2354 {
|
||
2355 ed = &(matchED->ed1);
|
||
\ 0000EB E0 MOVX A,@DPTR
|
||
\ 0000EC F5.. MOV ?V6,A
|
||
\ 0000EE A3 INC DPTR
|
||
\ 0000EF E0 MOVX A,@DPTR
|
||
\ 0000F0 F5.. MOV ?V7,A
|
||
2356 clusterID = matchED->ed1Matched[matchED->ed1numMatched-1];
|
||
\ 0000F2 12.... LCALL ?Subroutine58 & 0xFFFF
|
||
2357 dstIEEEAddr = matchED->ed2.ieeeAddr;
|
||
2358 dstEP = matchED->ed2.endpoint;
|
||
2359 }
|
||
\ ??CrossCallReturnLabel_85:
|
||
\ 0000F5 12.... LCALL ?Subroutine221 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_695:
|
||
\ 0000F8 CA XCH A,R2
|
||
\ 0000F9 2432 ADD A,#0x32
|
||
\ 0000FB 12.... LCALL ?Subroutine63 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_95:
|
||
\ 0000FE 241D ADD A,#0x1d
|
||
\ 000100 12.... LCALL ?Subroutine119 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_193:
|
||
\ 000103 2425 ADD A,#0x25
|
||
\ 000105 8026 SJMP ??ZDMatchSendState_15
|
||
2360 else if ( matchED->ed2numMatched )
|
||
\ ??ZDMatchSendState_14:
|
||
\ 000107 12.... LCALL ?Subroutine64 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_99:
|
||
\ 00010A 602A JZ ??ZDMatchSendState_16
|
||
2361 {
|
||
2362 ed = &(matchED->ed2);
|
||
\ 00010C 90.... MOV DPTR,#matchED
|
||
\ 00010F E0 MOVX A,@DPTR
|
||
\ 000110 2417 ADD A,#0x17
|
||
\ 000112 F5.. MOV ?V6,A
|
||
\ 000114 A3 INC DPTR
|
||
\ 000115 E0 MOVX A,@DPTR
|
||
\ 000116 3400 ADDC A,#0x0
|
||
\ 000118 F5.. MOV ?V7,A
|
||
2363 clusterID = matchED->ed2Matched[matchED->ed2numMatched-1];
|
||
\ 00011A 12.... LCALL ?Subroutine59 & 0xFFFF
|
||
2364 dstIEEEAddr = matchED->ed1.ieeeAddr;
|
||
2365 dstEP = matchED->ed1.endpoint;
|
||
2366 }
|
||
\ ??CrossCallReturnLabel_88:
|
||
\ 00011D 12.... LCALL ?Subroutine221 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_696:
|
||
\ 000120 CA XCH A,R2
|
||
\ 000121 2435 ADD A,#0x35
|
||
\ 000123 12.... LCALL ?Subroutine63 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_96:
|
||
\ 000126 2406 ADD A,#0x6
|
||
\ 000128 12.... LCALL ?Subroutine119 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_194:
|
||
\ 00012B 240E ADD A,#0xe
|
||
\ ??ZDMatchSendState_15:
|
||
\ 00012D F582 MOV DPL,A
|
||
\ 00012F E4 CLR A
|
||
\ 000130 3A ADDC A,R2
|
||
\ 000131 F583 MOV DPH,A
|
||
\ 000133 E0 MOVX A,@DPTR
|
||
\ 000134 F5.. MOV ?V3,A
|
||
2367
|
||
2368 dstAddr.addrMode = Addr16Bit;
|
||
\ ??ZDMatchSendState_16:
|
||
\ 000136 740B MOV A,#0xb
|
||
\ 000138 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00013B 7402 MOV A,#0x2
|
||
\ 00013D 12.... LCALL ?Subroutine31 & 0xFFFF
|
||
2369
|
||
2370 // Send the next message
|
||
2371 if ( (rspStatus == ZDP_SUCCESS) && ed )
|
||
\ ??CrossCallReturnLabel_35:
|
||
\ 000140 6003 JZ $+5
|
||
\ 000142 02.... LJMP ??ZDMatchSendState_17 & 0xFFFF
|
||
\ 000145 E5.. MOV A,?V6
|
||
\ 000147 45.. ORL A,?V7
|
||
\ 000149 7003 JNZ $+5
|
||
\ 00014B 02.... LJMP ??ZDMatchSendState_17 & 0xFFFF
|
||
2372 {
|
||
2373 // Send unbind/bind message to source
|
||
2374 if ( matchED->sending == ZDMATCH_SENDING_UNBIND )
|
||
\ 00014E 12.... LCALL ?Subroutine79 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_127:
|
||
\ 000151 7005 JNZ ??ZDMatchSendState_18
|
||
2375 {
|
||
2376 msgType = Unbind_req;
|
||
\ 000153 75..22 MOV ?V0,#0x22
|
||
\ 000156 8003 SJMP ??ZDMatchSendState_19
|
||
2377 }
|
||
2378 else
|
||
2379 {
|
||
2380 msgType = Bind_req;
|
||
\ ??ZDMatchSendState_18:
|
||
\ 000158 75..21 MOV ?V0,#0x21
|
||
\ ??ZDMatchSendState_19:
|
||
\ 00015B 75..00 MOV ?V1,#0x0
|
||
2381 }
|
||
2382
|
||
2383 dstAddr.addr.shortAddr = ed->srcAddr;
|
||
\ 00015E 85..82 MOV DPL,?V6
|
||
\ 000161 85..83 MOV DPH,?V7
|
||
\ 000164 12.... LCALL ??Subroutine251_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_475:
|
||
\ 000167 7403 MOV A,#0x3
|
||
\ 000169 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00016C 12.... LCALL ??Subroutine294_0 & 0xFFFF
|
||
2384
|
||
2385 // Save off the transaction sequence number
|
||
2386 matchED->transSeq = ZDP_TransID;
|
||
\ ??CrossCallReturnLabel_733:
|
||
\ 00016F 90.... MOV DPTR,#ZDP_TransID
|
||
\ 000172 E0 MOVX A,@DPTR
|
||
\ 000173 C0E0 PUSH A
|
||
\ 000175 12.... LCALL ?Subroutine106 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_602:
|
||
\ 000178 2430 ADD A,#0x30
|
||
\ 00017A F582 MOV DPL,A
|
||
\ 00017C E4 CLR A
|
||
\ 00017D 38 ADDC A,R0
|
||
\ 00017E F583 MOV DPH,A
|
||
\ 000180 D0E0 POP A
|
||
\ 000182 F0 MOVX @DPTR,A
|
||
2387
|
||
2388 destinationAddr.addrMode = Addr64Bit;
|
||
\ 000183 7414 MOV A,#0x14
|
||
\ 000185 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000188 7403 MOV A,#0x3
|
||
\ 00018A F0 MOVX @DPTR,A
|
||
2389 osal_cpyExtAddr( destinationAddr.addr.extAddr, dstIEEEAddr );
|
||
\ 00018B ; Setup parameters for call to function sAddrExtCpy
|
||
\ 00018B AC.. MOV R4,?V4
|
||
\ 00018D AD.. MOV R5,?V5
|
||
\ 00018F 740C MOV A,#0xc
|
||
\ 000191 12.... LCALL ?XSTACK_DISP101_8
|
||
\ 000194 12.... LCALL `??sAddrExtCpy::?relay`; Banked call to: sAddrExtCpy
|
||
2390
|
||
2391 ZDP_BindUnbindReq( msgType, &dstAddr, ed->ieeeAddr, ed->endpoint, clusterID,
|
||
2392 &destinationAddr, dstEP, ed->SecurityUse );
|
||
\ 000197 ; Setup parameters for call to function ZDP_BindUnbindReq
|
||
\ 000197 85..82 MOV DPL,?V6
|
||
\ 00019A 85..83 MOV DPH,?V7
|
||
\ 00019D A3 INC DPTR
|
||
\ 00019E E0 MOVX A,@DPTR
|
||
\ 00019F F5.. MOV ?V4,A
|
||
\ 0001A1 78.. MOV R0,#?V4
|
||
\ 0001A3 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 0001A6 78.. MOV R0,#?V3
|
||
\ 0001A8 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 0001AB 740E MOV A,#0xe
|
||
\ 0001AD 12.... LCALL ?XSTACK_DISP100_8
|
||
\ 0001B0 88.. MOV ?V4,R0
|
||
\ 0001B2 89.. MOV ?V5,R1
|
||
\ 0001B4 78.. MOV R0,#?V4
|
||
\ 0001B6 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 0001B9 8E.. MOV ?V4,R6
|
||
\ 0001BB 8F.. MOV ?V5,R7
|
||
\ 0001BD 78.. MOV R0,#?V4
|
||
\ 0001BF 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 0001C2 E5.. MOV A,?V6
|
||
\ 0001C4 2406 ADD A,#0x6
|
||
\ 0001C6 F5.. MOV ?V4,A
|
||
\ 0001C8 E4 CLR A
|
||
\ 0001C9 35.. ADDC A,?V7
|
||
\ 0001CB F5.. MOV ?V5,A
|
||
\ 0001CD 78.. MOV R0,#?V4
|
||
\ 0001CF 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 0001D2 E5.. MOV A,?V6
|
||
\ 0001D4 12.... LCALL ??Subroutine276_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_622:
|
||
\ 0001D7 35.. ADDC A,?V7
|
||
\ 0001D9 F583 MOV DPH,A
|
||
\ 0001DB E0 MOVX A,@DPTR
|
||
\ 0001DC F9 MOV R1,A
|
||
\ 0001DD 740B MOV A,#0xb
|
||
\ 0001DF 12.... LCALL ?XSTACK_DISP102_8
|
||
\ 0001E2 AA.. MOV R2,?V0
|
||
\ 0001E4 AB.. MOV R3,?V1
|
||
\ 0001E6 12.... LCALL `??ZDP_BindUnbindReq::?relay`; Banked call to: ZDP_BindUnbindReq
|
||
\ 0001E9 7408 MOV A,#0x8
|
||
\ 0001EB 12.... LCALL ?DEALLOC_XSTACK8
|
||
2393
|
||
2394 // Set timeout for response
|
||
2395 APS_SetEndDeviceBindTimeout( AIB_MaxBindingTime, ZDO_EndDeviceBindMatchTimeoutCB );
|
||
\ 0001EE ; Setup parameters for call to function APS_SetEndDeviceBindTimeout
|
||
\ 0001EE 12.... LCALL ?Subroutine117 & 0xFFFF
|
||
2396 }
|
||
\ ??CrossCallReturnLabel_192:
|
||
\ 0001F1 02.... LJMP ??ZDMatchSendState_20 & 0xFFFF
|
||
2397 else
|
||
2398 {
|
||
2399 // Send the response messages to requesting devices
|
||
2400 // send response to first requester
|
||
2401 dstAddr.addr.shortAddr = matchED->ed1.srcAddr;
|
||
\ ??ZDMatchSendState_17:
|
||
\ 0001F4 90.... MOV DPTR,#matchED
|
||
\ 0001F7 12.... LCALL ?Subroutine84 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_136:
|
||
\ 0001FA 7403 MOV A,#0x3
|
||
\ 0001FC 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0001FF 12.... LCALL ?Subroutine14 & 0xFFFF
|
||
2402 ZDP_EndDeviceBindRsp( matchED->ed1.TransSeq, &dstAddr, rspStatus, matchED->ed1.SecurityUse );
|
||
\ ??CrossCallReturnLabel_11:
|
||
\ 000202 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 000205 7401 MOV A,#0x1
|
||
\ 000207 12.... LCALL ?XSTACK_DISP100_8
|
||
\ 00020A 88.. MOV ?V0,R0
|
||
\ 00020C 89.. MOV ?V1,R1
|
||
\ 00020E 78.. MOV R0,#?V0
|
||
\ 000210 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 000213 75..20 MOV ?V0,#0x20
|
||
\ 000216 75..80 MOV ?V1,#-0x80
|
||
\ 000219 78.. MOV R0,#?V0
|
||
\ 00021B 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 00021E 7901 MOV R1,#0x1
|
||
\ 000220 7408 MOV A,#0x8
|
||
\ 000222 12.... LCALL ?XSTACK_DISP102_8
|
||
\ 000225 12.... LCALL ?Subroutine111 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_182:
|
||
\ 000228 12.... LCALL ?DEALLOC_XSTACK8
|
||
2403
|
||
2404 // send response to second requester
|
||
2405 if ( matchED->state == ZDMATCH_SENDING_BINDS )
|
||
\ 00022B 12.... LCALL ?Subroutine78 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_125:
|
||
\ 00022E 704A JNZ ??ZDMatchSendState_21
|
||
2406 {
|
||
2407 dstAddr.addr.shortAddr = matchED->ed2.srcAddr;
|
||
\ 000230 12.... LCALL ?Subroutine106 & 0xFFFF
|
||
2408 ZDP_EndDeviceBindRsp( matchED->ed2.TransSeq, &dstAddr, rspStatus, matchED->ed2.SecurityUse );
|
||
2409 }
|
||
\ ??CrossCallReturnLabel_603:
|
||
\ 000233 2419 ADD A,#0x19
|
||
\ 000235 F582 MOV DPL,A
|
||
\ 000237 E4 CLR A
|
||
\ 000238 38 ADDC A,R0
|
||
\ 000239 F583 MOV DPH,A
|
||
\ 00023B 12.... LCALL ??Subroutine253_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_471:
|
||
\ 00023E 7403 MOV A,#0x3
|
||
\ 000240 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000243 E8 MOV A,R0
|
||
\ 000244 F0 MOVX @DPTR,A
|
||
\ 000245 A3 INC DPTR
|
||
\ 000246 12.... LCALL ??Subroutine261_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_530:
|
||
\ 000249 2418 ADD A,#0x18
|
||
\ 00024B 12.... LCALL ?Subroutine99 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_462:
|
||
\ 00024E 12.... LCALL ?PUSH_XSTACK_I_ONE
|
||
\ 000251 7401 MOV A,#0x1
|
||
\ 000253 12.... LCALL ?XSTACK_DISP100_8
|
||
\ 000256 88.. MOV ?V0,R0
|
||
\ 000258 89.. MOV ?V1,R1
|
||
\ 00025A 78.. MOV R0,#?V0
|
||
\ 00025C 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 00025F 75..20 MOV ?V0,#0x20
|
||
\ 000262 75..80 MOV ?V1,#-0x80
|
||
\ 000265 78.. MOV R0,#?V0
|
||
\ 000267 12.... LCALL ?PUSH_XSTACK_I_TWO
|
||
\ 00026A 7901 MOV R1,#0x1
|
||
\ 00026C 7408 MOV A,#0x8
|
||
\ 00026E 12.... LCALL ?XSTACK_DISP102_8
|
||
\ 000271 12.... LCALL ?Subroutine123 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_203:
|
||
\ 000274 12.... LCALL ?Subroutine161 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_270:
|
||
\ 000277 12.... LCALL ?DEALLOC_XSTACK8
|
||
2410
|
||
2411 // Process ended - release memory used
|
||
2412 ZDO_RemoveMatchMemory();
|
||
\ ??ZDMatchSendState_21:
|
||
\ 00027A ; Setup parameters for call to function ZDO_RemoveMatchMemory
|
||
\ 00027A 12.... LCALL `??ZDO_RemoveMatchMemory::?relay`; Banked call to: ZDO_RemoveMatchMemory
|
||
2413 }
|
||
2414
|
||
2415 return ( TRUE );
|
||
\ ??ZDMatchSendState_20:
|
||
\ 00027D 7901 MOV R1,#0x1
|
||
\ ??ZDMatchSendState_3:
|
||
\ 00027F 7415 MOV A,#0x15
|
||
\ 000281 02.... LJMP ?Subroutine7 & 0xFFFF
|
||
2416 }
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine119:
|
||
\ 000000 F5.. MOV ?V4,A
|
||
\ 000002 A3 INC DPTR
|
||
\ 000003 E0 MOVX A,@DPTR
|
||
\ 000004 3400 ADDC A,#0x0
|
||
\ 000006 F5.. MOV ?V5,A
|
||
\ 000008 90.... MOV DPTR,#matchED
|
||
\ 00000B E0 MOVX A,@DPTR
|
||
\ 00000C 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine83:
|
||
\ 000000 12.... LCALL ?Subroutine183 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_303:
|
||
\ 000003 7401 MOV A,#0x1
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine79:
|
||
\ 000000 90.... MOV DPTR,#matchED
|
||
\ 000003 12.... LCALL ?Subroutine183 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_302:
|
||
\ 000006 E0 MOVX A,@DPTR
|
||
\ 000007 6401 XRL A,#0x1
|
||
\ 000009 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine183:
|
||
\ 000000 12.... LCALL ?Subroutine213 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_619:
|
||
\ 000003 12.... LCALL ?Subroutine218 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_353:
|
||
\ 000006 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine218:
|
||
\ 000000 242F ADD A,#0x2f
|
||
\ 000002 F582 MOV DPL,A
|
||
\ 000004 E4 CLR A
|
||
\ 000005 38 ADDC A,R0
|
||
\ 000006 F583 MOV DPH,A
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine75:
|
||
\ 000000 12.... LCALL ?Subroutine181 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_299:
|
||
\ 000003 90.... MOV DPTR,#matchED
|
||
\ 000006 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine63:
|
||
\ 000000 F582 MOV DPL,A
|
||
\ 000002 E4 CLR A
|
||
\ 000003 3A ADDC A,R2
|
||
\ 000004 F583 MOV DPH,A
|
||
\ 000006 E0 MOVX A,@DPTR
|
||
\ 000007 28 ADD A,R0
|
||
\ 000008 F8 MOV R0,A
|
||
\ 000009 A3 INC DPTR
|
||
\ 00000A E0 MOVX A,@DPTR
|
||
\ 00000B 39 ADDC A,R1
|
||
\ 00000C F9 MOV R1,A
|
||
\ 00000D E8 MOV A,R0
|
||
\ 00000E 24FE ADD A,#-0x2
|
||
\ 000010 F582 MOV DPL,A
|
||
\ 000012 E9 MOV A,R1
|
||
\ 000013 34FF ADDC A,#-0x1
|
||
\ 000015 12.... LCALL ?Subroutine193 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_715:
|
||
\ 000018 90.... MOV DPTR,#matchED
|
||
\ 00001B E0 MOVX A,@DPTR
|
||
\ 00001C 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine221:
|
||
\ 000000 F8 MOV R0,A
|
||
\ 000001 E4 CLR A
|
||
\ 000002 33 RLC A
|
||
\ 000003 F9 MOV R1,A
|
||
\ 000004 90.... MOV DPTR,#matchED
|
||
\ 000007 REQUIRE ??Subroutine281_0
|
||
\ 000007 ; // Fall through to label ??Subroutine281_0
|
||
2417
|
||
2418 /*********************************************************************
|
||
2419 * @fn ZDO_EndDeviceBindMatchTimeoutCB()
|
||
2420 *
|
||
2421 * @brief End device bind timeout.
|
||
2422 *
|
||
2423 * @param none
|
||
2424 *
|
||
2425 * @return none
|
||
2426 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
2427 static void ZDO_EndDeviceBindMatchTimeoutCB( void )
|
||
\ ZDO_EndDeviceBindMatchTimeoutCB:
|
||
2428 {
|
||
\ 000000 C082 PUSH DPL
|
||
\ 000002 C083 PUSH DPH
|
||
\ 000004 ; Saved register size: 2
|
||
\ 000004 ; Auto size: 0
|
||
2429 ZDMatchSendState( ZDMATCH_REASON_TIMEOUT, ZDP_TIMEOUT, 0 );
|
||
\ 000004 ; Setup parameters for call to function ZDMatchSendState
|
||
\ 000004 7B00 MOV R3,#0x0
|
||
\ 000006 7A85 MOV R2,#-0x7b
|
||
\ 000008 7901 MOV R1,#0x1
|
||
\ 00000A 12.... LCALL `??ZDMatchSendState::?relay`; Banked call to: ZDMatchSendState
|
||
2430 }
|
||
\ 00000D 02.... LJMP ?Subroutine0 & 0xFFFF
|
||
2431
|
||
2432 /*********************************************************************
|
||
2433 * ZDO MESSAGE PARSING API FUNCTIONS
|
||
2434 */
|
||
2435
|
||
2436 /*********************************************************************
|
||
2437 * @fn ZDO_ParseEndDeviceBindReq
|
||
2438 *
|
||
2439 * @brief This function parses the End_Device_Bind_req message.
|
||
2440 *
|
||
2441 * NOTE: The clusters lists in bindReq are allocated in this
|
||
2442 * function and must be freed by that calling function.
|
||
2443 *
|
||
2444 * @param inMsg - incoming message (request)
|
||
2445 * @param bindReq - pointer to place to parse message to
|
||
2446 *
|
||
2447 * @return none
|
||
2448 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine18:
|
||
\ 000000 F582 MOV DPL,A
|
||
\ 000002 E4 CLR A
|
||
\ 000003 35.. ADDC A,?V1
|
||
\ 000005 REQUIRE ??Subroutine267_0
|
||
\ 000005 ; // Fall through to label ??Subroutine267_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
2449 void ZDO_ParseEndDeviceBindReq( zdoIncomingMsg_t *inMsg, ZDEndDeviceBind_t *bindReq )
|
||
\ ZDO_ParseEndDeviceBindReq:
|
||
2450 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 74F4 MOV A,#-0xc
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 12
|
||
\ 000005 ; Auto size: 0
|
||
\ 000005 8C.. MOV ?V0,R4
|
||
\ 000007 8D.. MOV ?V1,R5
|
||
2451 uint8 *msg;
|
||
2452
|
||
2453 // Parse the message
|
||
2454 bindReq->TransSeq = inMsg->TransSeq;
|
||
\ 000009 EA MOV A,R2
|
||
\ 00000A 12.... LCALL ?Subroutine201 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_323:
|
||
\ 00000D 3B ADDC A,R3
|
||
\ 00000E 12.... LCALL ??Subroutine277_0 & 0xFFFF
|
||
2455 bindReq->srcAddr = inMsg->srcAddr.addr.shortAddr;
|
||
\ ??CrossCallReturnLabel_627:
|
||
\ 000011 12.... LCALL ??Subroutine252_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_472:
|
||
\ 000014 8C82 MOV DPL,R4
|
||
\ 000016 8D83 MOV DPH,R5
|
||
\ 000018 A3 INC DPTR
|
||
\ 000019 A3 INC DPTR
|
||
\ 00001A 12.... LCALL ??Subroutine294_0 & 0xFFFF
|
||
2456 bindReq->SecurityUse = inMsg->SecurityUse;
|
||
\ ??CrossCallReturnLabel_734:
|
||
\ 00001D EA MOV A,R2
|
||
\ 00001E 12.... LCALL ??Subroutine276_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_623:
|
||
\ 000021 3B ADDC A,R3
|
||
\ 000022 F583 MOV DPH,A
|
||
\ 000024 12.... LCALL ?Subroutine94 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_154:
|
||
\ 000027 12.... LCALL ?Subroutine32 & 0xFFFF
|
||
2457 msg = inMsg->asdu;
|
||
\ ??CrossCallReturnLabel_38:
|
||
\ 00002A FE MOV R6,A
|
||
\ 00002B A3 INC DPTR
|
||
\ 00002C E0 MOVX A,@DPTR
|
||
\ 00002D FF MOV R7,A
|
||
2458
|
||
2459 bindReq->localCoordinator = BUILD_UINT16( msg[0], msg[1] );
|
||
\ 00002E 8E82 MOV DPL,R6
|
||
\ 000030 F583 MOV DPH,A
|
||
\ 000032 12.... LCALL ?Subroutine91 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_148:
|
||
\ 000035 12.... LCALL ?Subroutine20 & 0xFFFF
|
||
2460 msg += 2;
|
||
\ ??CrossCallReturnLabel_573:
|
||
\ 000038 5001 JNC ??ZDO_ParseEndDeviceBindReq_0
|
||
\ 00003A 0F INC R7
|
||
2461
|
||
2462 osal_cpyExtAddr( bindReq->ieeeAddr, msg );
|
||
\ ??ZDO_ParseEndDeviceBindReq_0:
|
||
\ 00003B ; Setup parameters for call to function sAddrExtCpy
|
||
\ 00003B FC MOV R4,A
|
||
\ 00003C EF MOV A,R7
|
||
\ 00003D FD MOV R5,A
|
||
\ 00003E E5.. MOV A,?V0
|
||
\ 000040 2406 ADD A,#0x6
|
||
\ 000042 12.... LCALL ??Subroutine274_0 & 0xFFFF
|
||
2463 msg += Z_EXTADDR_LEN;
|
||
2464
|
||
2465 bindReq->endpoint = *msg++;
|
||
\ ??CrossCallReturnLabel_583:
|
||
\ 000045 C0E0 PUSH A
|
||
\ 000047 12.... LCALL ?Subroutine147 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_238:
|
||
\ 00004A D0E0 POP A
|
||
\ 00004C 12.... LCALL ??Subroutine290_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_701:
|
||
\ 00004F 5001 JNC ??ZDO_ParseEndDeviceBindReq_1
|
||
\ 000051 0F INC R7
|
||
2466 bindReq->profileID = BUILD_UINT16( msg[0], msg[1] );
|
||
\ ??ZDO_ParseEndDeviceBindReq_1:
|
||
\ 000052 F582 MOV DPL,A
|
||
\ 000054 12.... LCALL ?Subroutine214 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_690:
|
||
\ 000057 12.... LCALL ?Subroutine144 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_232:
|
||
\ 00005A EA MOV A,R2
|
||
\ 00005B 12.... LCALL ??Subroutine295_0 & 0xFFFF
|
||
2467 msg += 2;
|
||
2468
|
||
2469 bindReq->inClusters = NULL;
|
||
\ ??CrossCallReturnLabel_719:
|
||
\ 00005E E5.. MOV A,?V0
|
||
\ 000060 2412 ADD A,#0x12
|
||
\ 000062 12.... LCALL ?Subroutine156 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_260:
|
||
\ 000065 A3 INC DPTR
|
||
\ 000066 F0 MOVX @DPTR,A
|
||
2470 bindReq->outClusters = NULL;
|
||
\ 000067 E5.. MOV A,?V0
|
||
\ 000069 2415 ADD A,#0x15
|
||
\ 00006B 12.... LCALL ?Subroutine156 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_261:
|
||
\ 00006E A3 INC DPTR
|
||
\ 00006F 12.... LCALL ?Subroutine27 & 0xFFFF
|
||
2471
|
||
2472 if ((bindReq->numInClusters = *msg++) &&
|
||
2473 (bindReq->inClusters = (uint16*)osal_mem_alloc( (bindReq->numInClusters * sizeof( uint16 )))))
|
||
\ ??CrossCallReturnLabel_25:
|
||
\ 000072 F8 MOV R0,A
|
||
\ 000073 E5.. MOV A,?V0
|
||
\ 000075 2411 ADD A,#0x11
|
||
\ 000077 12.... LCALL ??Subroutine284_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_658:
|
||
\ 00007A E8 MOV A,R0
|
||
\ 00007B F0 MOVX @DPTR,A
|
||
\ 00007C EE MOV A,R6
|
||
\ 00007D 2403 ADD A,#0x3
|
||
\ 00007F FE MOV R6,A
|
||
\ 000080 5001 JNC ??ZDO_ParseEndDeviceBindReq_2
|
||
\ 000082 0F INC R7
|
||
\ ??ZDO_ParseEndDeviceBindReq_2:
|
||
\ 000083 E8 MOV A,R0
|
||
\ 000084 6020 JZ ??ZDO_ParseEndDeviceBindReq_3
|
||
\ 000086 12.... LCALL ?Subroutine128 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_563:
|
||
\ 000089 2412 ADD A,#0x12
|
||
\ 00008B 12.... LCALL ?Subroutine18 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_561:
|
||
\ 00008E 6016 JZ ??ZDO_ParseEndDeviceBindReq_3
|
||
2474 {
|
||
2475 msg = ZDO_ConvertOTAClusters( bindReq->numInClusters, msg, bindReq->inClusters );
|
||
\ 000090 ; Setup parameters for call to function ZDO_ConvertOTAClusters
|
||
\ 000090 E5.. MOV A,?V0
|
||
\ 000092 2412 ADD A,#0x12
|
||
\ 000094 12.... LCALL ?Subroutine98 & 0xFFFF
|
||
2476 }
|
||
\ ??CrossCallReturnLabel_160:
|
||
\ 000097 2411 ADD A,#0x11
|
||
\ 000099 12.... LCALL ?Subroutine109 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_569:
|
||
\ 00009C 8A.. MOV ?V2,R2
|
||
\ 00009E 8B.. MOV ?V3,R3
|
||
\ 0000A0 AE.. MOV R6,?V2
|
||
\ 0000A2 AF.. MOV R7,?V3
|
||
\ 0000A4 8007 SJMP ??CrossCallReturnLabel_262
|
||
2477 else
|
||
2478 {
|
||
2479 bindReq->numInClusters = 0;
|
||
\ ??ZDO_ParseEndDeviceBindReq_3:
|
||
\ 0000A6 E5.. MOV A,?V0
|
||
\ 0000A8 2411 ADD A,#0x11
|
||
\ 0000AA 12.... LCALL ?Subroutine156 & 0xFFFF
|
||
2480 }
|
||
2481
|
||
2482 if ((bindReq->numOutClusters = *msg++) &&
|
||
2483 (bindReq->outClusters = (uint16*)osal_mem_alloc((bindReq->numOutClusters * sizeof(uint16)))))
|
||
\ ??CrossCallReturnLabel_262:
|
||
\ 0000AD 8E82 MOV DPL,R6
|
||
\ 0000AF 8F83 MOV DPH,R7
|
||
\ 0000B1 E0 MOVX A,@DPTR
|
||
\ 0000B2 F8 MOV R0,A
|
||
\ 0000B3 12.... LCALL ?Subroutine155 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_255:
|
||
\ 0000B6 E8 MOV A,R0
|
||
\ 0000B7 12.... LCALL ?Subroutine40 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_55:
|
||
\ 0000BA 601C JZ ??ZDO_ParseEndDeviceBindReq_4
|
||
\ 0000BC 12.... LCALL ?Subroutine155 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_256:
|
||
\ 0000BF E0 MOVX A,@DPTR
|
||
\ 0000C0 12.... LCALL ?Subroutine128 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_564:
|
||
\ 0000C3 2415 ADD A,#0x15
|
||
\ 0000C5 12.... LCALL ?Subroutine18 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_562:
|
||
\ 0000C8 600E JZ ??ZDO_ParseEndDeviceBindReq_4
|
||
2484 {
|
||
2485 msg = ZDO_ConvertOTAClusters( bindReq->numOutClusters, msg, bindReq->outClusters );
|
||
\ 0000CA ; Setup parameters for call to function ZDO_ConvertOTAClusters
|
||
\ 0000CA E5.. MOV A,?V0
|
||
\ 0000CC 2415 ADD A,#0x15
|
||
\ 0000CE 12.... LCALL ?Subroutine98 & 0xFFFF
|
||
2486 }
|
||
\ ??CrossCallReturnLabel_161:
|
||
\ 0000D1 2414 ADD A,#0x14
|
||
\ 0000D3 12.... LCALL ?Subroutine109 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_570:
|
||
\ 0000D6 8005 SJMP ??ZDO_ParseEndDeviceBindReq_5
|
||
2487 else
|
||
2488 {
|
||
2489 bindReq->numOutClusters = 0;
|
||
\ ??ZDO_ParseEndDeviceBindReq_4:
|
||
\ 0000D8 12.... LCALL ?Subroutine155 & 0xFFFF
|
||
2490 }
|
||
\ ??CrossCallReturnLabel_257:
|
||
\ 0000DB E4 CLR A
|
||
\ 0000DC F0 MOVX @DPTR,A
|
||
2491 }
|
||
\ ??ZDO_ParseEndDeviceBindReq_5:
|
||
\ 0000DD 02.... LJMP ??Subroutine222_0 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine128:
|
||
\ 000000 F8 MOV R0,A
|
||
\ 000001 ; Setup parameters for call to function osal_mem_alloc
|
||
\ 000001 ; Setup parameters for call to function osal_mem_alloc
|
||
\ 000001 REQUIRE ??Subroutine269_0
|
||
\ 000001 ; // Fall through to label ??Subroutine269_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine269_0:
|
||
\ 000000 12.... LCALL ?Subroutine196 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_567:
|
||
\ 000003 8B.. MOV ?V3,R3
|
||
\ 000005 A9.. MOV R1,?V3
|
||
\ 000007 E5.. MOV A,?V0
|
||
\ 000009 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine109:
|
||
\ 000000 12.... LCALL ?Subroutine205 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_671:
|
||
\ 000003 REQUIRE ??Subroutine270_0
|
||
\ 000003 ; // Fall through to label ??Subroutine270_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine98:
|
||
\ 000000 12.... LCALL ?Subroutine205 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_670:
|
||
\ 000003 12.... LCALL ?Subroutine189 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_308:
|
||
\ 000006 EE MOV A,R6
|
||
\ 000007 FA MOV R2,A
|
||
\ 000008 EF MOV A,R7
|
||
\ 000009 FB MOV R3,A
|
||
\ 00000A E5.. MOV A,?V0
|
||
\ 00000C 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine20:
|
||
\ 000000 A3 INC DPTR
|
||
\ 000001 REQUIRE ??Subroutine271_0
|
||
\ 000001 ; // Fall through to label ??Subroutine271_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine271_0:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 A3 INC DPTR
|
||
\ 000002 E9 MOV A,R1
|
||
\ 000003 F0 MOVX @DPTR,A
|
||
\ 000004 EE MOV A,R6
|
||
\ 000005 2402 ADD A,#0x2
|
||
\ 000007 FE MOV R6,A
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine155:
|
||
\ 000000 E5.. MOV A,?V0
|
||
\ 000002 2414 ADD A,#0x14
|
||
\ 000004 12.... LCALL ?Subroutine205 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_673:
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine274_0:
|
||
\ 000000 FA MOV R2,A
|
||
\ 000001 E4 CLR A
|
||
\ 000002 35.. ADDC A,?V1
|
||
\ 000004 FB MOV R3,A
|
||
\ 000005 12.... LCALL ?Subroutine174 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_585:
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine174:
|
||
\ 000000 12.... LCALL `??sAddrExtCpy::?relay`; Banked call to: sAddrExtCpy
|
||
\ 000003 8E82 MOV DPL,R6
|
||
\ 000005 8F83 MOV DPH,R7
|
||
\ 000007 A3 INC DPTR
|
||
\ 000008 A3 INC DPTR
|
||
\ 000009 A3 INC DPTR
|
||
\ 00000A A3 INC DPTR
|
||
\ 00000B A3 INC DPTR
|
||
\ 00000C A3 INC DPTR
|
||
\ 00000D A3 INC DPTR
|
||
\ 00000E A3 INC DPTR
|
||
\ 00000F E0 MOVX A,@DPTR
|
||
\ 000010 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine156:
|
||
\ 000000 12.... LCALL ?Subroutine205 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_674:
|
||
\ 000003 E4 CLR A
|
||
\ 000004 F0 MOVX @DPTR,A
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine40:
|
||
\ 000000 12.... LCALL ?Subroutine219 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_356:
|
||
\ 000003 AE82 MOV R6,DPL
|
||
\ 000005 AF83 MOV R7,DPH
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine94:
|
||
\ 000000 12.... LCALL ??Subroutine282_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_642:
|
||
\ 000003 A3 INC DPTR
|
||
\ 000004 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine277_0:
|
||
\ 000000 12.... LCALL ?Subroutine185 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_644:
|
||
\ 000003 REQUIRE ??Subroutine278_0
|
||
\ 000003 ; // Fall through to label ??Subroutine278_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine278_0:
|
||
\ 000000 12.... LCALL ?Subroutine170 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_683:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine170:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 8A82 MOV DPL,R2
|
||
\ 000003 8B83 MOV DPH,R3
|
||
\ 000005 A3 INC DPTR
|
||
\ 000006 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine185:
|
||
\ 000000 F583 MOV DPH,A
|
||
\ 000002 REQUIRE ??Subroutine282_0
|
||
\ 000002 ; // Fall through to label ??Subroutine282_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine282_0:
|
||
\ 000000 E0 MOVX A,@DPTR
|
||
\ 000001 8C82 MOV DPL,R4
|
||
\ 000003 8D83 MOV DPH,R5
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine147:
|
||
\ 000000 E5.. MOV A,?V0
|
||
\ 000002 240E ADD A,#0xe
|
||
\ 000004 12.... LCALL ?Subroutine205 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_672:
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine27:
|
||
\ 000000 12.... LCALL ?Subroutine172 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_286:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine172:
|
||
\ 000000 12.... LCALL ?Subroutine219 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_354:
|
||
\ 000003 A3 INC DPTR
|
||
\ 000004 E0 MOVX A,@DPTR
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine214:
|
||
\ 000000 8F83 MOV DPH,R7
|
||
\ 000002 REQUIRE ??Subroutine289_0
|
||
\ 000002 ; // Fall through to label ??Subroutine289_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine290_0:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 EE MOV A,R6
|
||
\ 000002 2409 ADD A,#0x9
|
||
\ 000004 FE MOV R6,A
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine200:
|
||
\ 000000 EA MOV A,R2
|
||
\ 000001 REQUIRE ??Subroutine292_0
|
||
\ 000001 ; // Fall through to label ??Subroutine292_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine91:
|
||
\ 000000 12.... LCALL ?Subroutine190 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_311:
|
||
\ 000003 8C82 MOV DPL,R4
|
||
\ 000005 8D83 MOV DPH,R5
|
||
\ 000007 A3 INC DPTR
|
||
\ 000008 A3 INC DPTR
|
||
\ 000009 A3 INC DPTR
|
||
\ 00000A 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine32:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 12.... LCALL ?Subroutine200 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_707:
|
||
\ 000004 F583 MOV DPH,A
|
||
\ 000006 E0 MOVX A,@DPTR
|
||
\ 000007 22 RET
|
||
2492
|
||
2493 /*********************************************************************
|
||
2494 * @fn ZDO_ParseBindUnbindReq
|
||
2495 *
|
||
2496 * @brief This function parses the Bind_req or Unbind_req message.
|
||
2497 *
|
||
2498 * @param inMsg - incoming message (request)
|
||
2499 * @param pReq - place to put parsed information
|
||
2500 *
|
||
2501 * @return none
|
||
2502 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
2503 void ZDO_ParseBindUnbindReq( zdoIncomingMsg_t *inMsg, ZDO_BindUnbindReq_t *pReq )
|
||
\ ZDO_ParseBindUnbindReq:
|
||
2504 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 74F6 MOV A,#-0xa
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 10
|
||
\ 000005 ; Auto size: 0
|
||
\ 000005 12.... LCALL ?Subroutine133 & 0xFFFF
|
||
2505 uint8 *msg;
|
||
2506
|
||
2507 msg = inMsg->asdu;
|
||
\ ??CrossCallReturnLabel_577:
|
||
\ 000008 12.... LCALL ?Subroutine97 & 0xFFFF
|
||
2508 osal_cpyExtAddr( pReq->srcAddress, msg );
|
||
\ ??CrossCallReturnLabel_391:
|
||
\ 00000B ; Setup parameters for call to function sAddrExtCpy
|
||
\ 00000B 12.... LCALL ?Subroutine44 & 0xFFFF
|
||
2509 msg += Z_EXTADDR_LEN;
|
||
2510 pReq->srcEndpoint = *msg++;
|
||
\ ??CrossCallReturnLabel_699:
|
||
\ 00000E 5001 JNC ??ZDO_ParseBindUnbindReq_0
|
||
\ 000010 0F INC R7
|
||
2511 pReq->clusterID = BUILD_UINT16( msg[0], msg[1] );
|
||
\ ??ZDO_ParseBindUnbindReq_0:
|
||
\ 000011 12.... LCALL ?Subroutine11 & 0xFFFF
|
||
2512 msg += 2;
|
||
2513 pReq->dstAddress.addrMode = *msg++;
|
||
\ ??CrossCallReturnLabel_4:
|
||
\ 000014 5001 JNC ??ZDO_ParseBindUnbindReq_1
|
||
\ 000016 0F INC R7
|
||
2514 if ( pReq->dstAddress.addrMode == Addr64Bit )
|
||
\ ??ZDO_ParseBindUnbindReq_1:
|
||
\ 000017 7403 MOV A,#0x3
|
||
\ 000019 68 XRL A,R0
|
||
\ 00001A 700C JNZ ??ZDO_ParseBindUnbindReq_2
|
||
2515 {
|
||
2516 osal_cpyExtAddr( pReq->dstAddress.addr.extAddr, msg );
|
||
\ 00001C ; Setup parameters for call to function sAddrExtCpy
|
||
\ 00001C 12.... LCALL ?Subroutine52 & 0xFFFF
|
||
2517 msg += Z_EXTADDR_LEN;
|
||
2518 pReq->dstEndpoint = *msg;
|
||
2519 }
|
||
\ ??CrossCallReturnLabel_581:
|
||
\ 00001F C0E0 PUSH A
|
||
\ 000021 12.... LCALL ?Subroutine155 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_258:
|
||
\ 000024 D0E0 POP A
|
||
\ 000026 8006 SJMP ??ZDO_ParseBindUnbindReq_3
|
||
2520 else
|
||
2521 {
|
||
2522 // copy group address
|
||
2523 pReq->dstAddress.addr.shortAddr = BUILD_UINT16( msg[0], msg[1] );
|
||
\ ??ZDO_ParseBindUnbindReq_2:
|
||
\ 000028 12.... LCALL ?Subroutine76 & 0xFFFF
|
||
2524 }
|
||
\ ??CrossCallReturnLabel_120:
|
||
\ 00002B F0 MOVX @DPTR,A
|
||
\ 00002C A3 INC DPTR
|
||
\ 00002D E9 MOV A,R1
|
||
\ ??ZDO_ParseBindUnbindReq_3:
|
||
\ 00002E F0 MOVX @DPTR,A
|
||
2525 }
|
||
\ 00002F 02.... LJMP ??Subroutine225_0 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine133:
|
||
\ 000000 8C.. MOV ?V0,R4
|
||
\ 000002 8D.. MOV ?V1,R5
|
||
\ 000004 REQUIRE ??Subroutine272_0
|
||
\ 000004 ; // Fall through to label ??Subroutine272_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine272_0:
|
||
\ 000000 EA MOV A,R2
|
||
\ 000001 REQUIRE ??Subroutine273_0
|
||
\ 000001 ; // Fall through to label ??Subroutine273_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine52:
|
||
\ 000000 EE MOV A,R6
|
||
\ 000001 FC MOV R4,A
|
||
\ 000002 EF MOV A,R7
|
||
\ 000003 FD MOV R5,A
|
||
\ 000004 E5.. MOV A,?V0
|
||
\ 000006 240B ADD A,#0xb
|
||
\ 000008 REQUIRE ??Subroutine274_0
|
||
\ 000008 ; // Fall through to label ??Subroutine274_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine76:
|
||
\ 000000 8E82 MOV DPL,R6
|
||
\ 000002 12.... LCALL ?Subroutine214 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_691:
|
||
\ 000005 E5.. MOV A,?V0
|
||
\ 000007 240B ADD A,#0xb
|
||
\ 000009 12.... LCALL ?Subroutine205 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_669:
|
||
\ 00000C EA MOV A,R2
|
||
\ 00000D 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine44:
|
||
\ 000000 EE MOV A,R6
|
||
\ 000001 FC MOV R4,A
|
||
\ 000002 EF MOV A,R7
|
||
\ 000003 FD MOV R5,A
|
||
\ 000004 AA.. MOV R2,?V0
|
||
\ 000006 AB.. MOV R3,?V1
|
||
\ 000008 12.... LCALL ?Subroutine174 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_586:
|
||
\ 00000B 85..82 MOV DPL,?V0
|
||
\ 00000E 85..83 MOV DPH,?V1
|
||
\ 000011 A3 INC DPTR
|
||
\ 000012 A3 INC DPTR
|
||
\ 000013 A3 INC DPTR
|
||
\ 000014 A3 INC DPTR
|
||
\ 000015 A3 INC DPTR
|
||
\ 000016 A3 INC DPTR
|
||
\ 000017 A3 INC DPTR
|
||
\ 000018 A3 INC DPTR
|
||
\ 000019 REQUIRE ??Subroutine290_0
|
||
\ 000019 ; // Fall through to label ??Subroutine290_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine11:
|
||
\ 000000 F582 MOV DPL,A
|
||
\ 000002 12.... LCALL ?Subroutine175 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_290:
|
||
\ 000005 A3 INC DPTR
|
||
\ 000006 A3 INC DPTR
|
||
\ 000007 F0 MOVX @DPTR,A
|
||
\ 000008 A3 INC DPTR
|
||
\ 000009 E9 MOV A,R1
|
||
\ 00000A 12.... LCALL ?Subroutine172 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_287:
|
||
\ 00000D F8 MOV R0,A
|
||
\ 00000E E5.. MOV A,?V0
|
||
\ 000010 12.... LCALL ??Subroutine247_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_453:
|
||
\ 000013 12.... LCALL ??Subroutine285_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_667:
|
||
\ 000016 E8 MOV A,R0
|
||
\ 000017 F0 MOVX @DPTR,A
|
||
\ 000018 EE MOV A,R6
|
||
\ 000019 2403 ADD A,#0x3
|
||
\ 00001B FE MOV R6,A
|
||
\ 00001C 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine175:
|
||
\ 000000 12.... LCALL ?Subroutine214 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_692:
|
||
\ 000003 EA MOV A,R2
|
||
\ 000004 85..82 MOV DPL,?V0
|
||
\ 000007 85..83 MOV DPH,?V1
|
||
\ 00000A A3 INC DPTR
|
||
\ 00000B A3 INC DPTR
|
||
\ 00000C A3 INC DPTR
|
||
\ 00000D A3 INC DPTR
|
||
\ 00000E A3 INC DPTR
|
||
\ 00000F A3 INC DPTR
|
||
\ 000010 A3 INC DPTR
|
||
\ 000011 22 RET
|
||
2526
|
||
2527 /*********************************************************************
|
||
2528 * @fn ZDO_ParseAddrRsp
|
||
2529 *
|
||
2530 * @brief Turns the inMsg (incoming message) into the out parsed
|
||
2531 * structure.
|
||
2532 *
|
||
2533 * @param inMsg - incoming message
|
||
2534 *
|
||
2535 * @return pointer to parsed structures. This structure was
|
||
2536 * allocated using osal_mem_alloc, so it must be freed
|
||
2537 * by the calling function [osal_mem_free()].
|
||
2538 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
2539 ZDO_NwkIEEEAddrResp_t *ZDO_ParseAddrRsp( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ParseAddrRsp:
|
||
2540 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V5
|
||
\ 000000 74F2 MOV A,#-0xe
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 14
|
||
\ 000005 ; Auto size: 0
|
||
\ 000005 EA MOV A,R2
|
||
\ 000006 FE MOV R6,A
|
||
\ 000007 EB MOV A,R3
|
||
\ 000008 FF MOV R7,A
|
||
2541 ZDO_NwkIEEEAddrResp_t *rsp;
|
||
2542 uint8 *msg;
|
||
2543 byte cnt = 0;
|
||
\ 000009 75..00 MOV ?V2,#0x0
|
||
2544
|
||
2545 // Calculate the number of items in the list
|
||
2546 if ( inMsg->asduLen > (1 + Z_EXTADDR_LEN + 2) )
|
||
\ 00000C EA MOV A,R2
|
||
\ 00000D 2410 ADD A,#0x10
|
||
\ 00000F F582 MOV DPL,A
|
||
\ 000011 E4 CLR A
|
||
\ 000012 3F ADDC A,R7
|
||
\ 000013 F583 MOV DPH,A
|
||
\ 000015 E0 MOVX A,@DPTR
|
||
\ 000016 C3 CLR C
|
||
\ 000017 940C SUBB A,#0xc
|
||
\ 000019 400D JC ??ZDO_ParseAddrRsp_0
|
||
2547 {
|
||
2548 cnt = inMsg->asdu[1 + Z_EXTADDR_LEN + 2];
|
||
\ 00001B 12.... LCALL ??Subroutine244_0 & 0xFFFF
|
||
2549 }
|
||
\ ??CrossCallReturnLabel_441:
|
||
\ 00001E 12.... LCALL ??Subroutine275_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_593:
|
||
\ 000021 240B ADD A,#0xb
|
||
\ 000023 12.... LCALL ?Subroutine150 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_250:
|
||
\ 000026 F5.. MOV ?V2,A
|
||
2550 else
|
||
2551 {
|
||
2552 cnt = 0;
|
||
2553 }
|
||
2554
|
||
2555 // Make buffer
|
||
2556 rsp = (ZDO_NwkIEEEAddrResp_t *)osal_mem_alloc( sizeof(ZDO_NwkIEEEAddrResp_t) + (cnt * sizeof ( uint16 )) );
|
||
\ ??ZDO_ParseAddrRsp_0:
|
||
\ 000028 ; Setup parameters for call to function osal_mem_alloc
|
||
\ 000028 A8.. MOV R0,?V2
|
||
\ 00002A E8 MOV A,R0
|
||
\ 00002B 28 ADD A,R0
|
||
\ 00002C F8 MOV R0,A
|
||
\ 00002D E4 CLR A
|
||
\ 00002E 33 RLC A
|
||
\ 00002F F9 MOV R1,A
|
||
\ 000030 E8 MOV A,R0
|
||
\ 000031 240D ADD A,#0xd
|
||
\ 000033 12.... LCALL ??Subroutine288_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_688:
|
||
\ 000036 8A.. MOV ?V0,R2
|
||
\ 000038 8B.. MOV ?V1,R3
|
||
2557
|
||
2558 if ( rsp )
|
||
\ 00003A EA MOV A,R2
|
||
\ 00003B 4B ORL A,R3
|
||
\ 00003C 7003 JNZ $+5
|
||
\ 00003E 02.... LJMP ??ZDO_ParseAddrRsp_1 & 0xFFFF
|
||
2559 {
|
||
2560 msg = inMsg->asdu;
|
||
\ 000041 EE MOV A,R6
|
||
\ 000042 12.... LCALL ??Subroutine226_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_361:
|
||
\ 000045 12.... LCALL ??Subroutine291_0 & 0xFFFF
|
||
2561
|
||
2562 rsp->status = *msg++;
|
||
\ ??CrossCallReturnLabel_705:
|
||
\ 000048 F8 MOV R0,A
|
||
\ 000049 8A82 MOV DPL,R2
|
||
\ 00004B 8B83 MOV DPH,R3
|
||
\ 00004D 12.... LCALL ?Subroutine40 & 0xFFFF
|
||
2563 if ( rsp->status == ZDO_SUCCESS )
|
||
\ ??CrossCallReturnLabel_56:
|
||
\ 000050 707C JNZ ??ZDO_ParseAddrRsp_1
|
||
2564 {
|
||
2565 osal_cpyExtAddr( rsp->extAddr, msg );
|
||
\ 000052 ; Setup parameters for call to function sAddrExtCpy
|
||
\ 000052 EE MOV A,R6
|
||
\ 000053 FC MOV R4,A
|
||
\ 000054 EF MOV A,R7
|
||
\ 000055 FD MOV R5,A
|
||
\ 000056 EA MOV A,R2
|
||
\ 000057 2403 ADD A,#0x3
|
||
\ 000059 FA MOV R2,A
|
||
\ 00005A E4 CLR A
|
||
\ 00005B 35.. ADDC A,?V1
|
||
\ 00005D FB MOV R3,A
|
||
\ 00005E 12.... LCALL `??sAddrExtCpy::?relay`; Banked call to: sAddrExtCpy
|
||
2566 msg += Z_EXTADDR_LEN;
|
||
\ 000061 EE MOV A,R6
|
||
\ 000062 2408 ADD A,#0x8
|
||
\ 000064 FE MOV R6,A
|
||
\ 000065 5001 JNC ??ZDO_ParseAddrRsp_2
|
||
\ 000067 0F INC R7
|
||
2567 rsp->nwkAddr = BUILD_UINT16( msg[0], msg[1] );
|
||
\ ??ZDO_ParseAddrRsp_2:
|
||
\ 000068 12.... LCALL ?Subroutine93 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_152:
|
||
\ 00006B A3 INC DPTR
|
||
\ 00006C 12.... LCALL ??Subroutine295_0 & 0xFFFF
|
||
2568
|
||
2569 msg += 2;
|
||
2570 rsp->numAssocDevs = 0;
|
||
\ ??CrossCallReturnLabel_720:
|
||
\ 00006F E5.. MOV A,?V0
|
||
\ 000071 240B ADD A,#0xb
|
||
\ 000073 12.... LCALL ?Subroutine156 & 0xFFFF
|
||
2571
|
||
2572 // StartIndex field is only present if NumAssocDev field is non-zero.
|
||
2573 if ( cnt > 0 )
|
||
\ ??CrossCallReturnLabel_263:
|
||
\ 000076 E5.. MOV A,?V2
|
||
\ 000078 6054 JZ ??ZDO_ParseAddrRsp_1
|
||
2574 {
|
||
2575 uint16 *pList = &(rsp->devList[0]);
|
||
\ 00007A E5.. MOV A,?V0
|
||
\ 00007C 240D ADD A,#0xd
|
||
\ 00007E F8 MOV R0,A
|
||
\ 00007F E4 CLR A
|
||
\ 000080 35.. ADDC A,?V1
|
||
\ 000082 F9 MOV R1,A
|
||
2576 byte n = cnt;
|
||
2577
|
||
2578 rsp->numAssocDevs = *msg++;
|
||
\ 000083 8E82 MOV DPL,R6
|
||
\ 000085 8F83 MOV DPH,R7
|
||
\ 000087 A3 INC DPTR
|
||
\ 000088 A3 INC DPTR
|
||
\ 000089 E0 MOVX A,@DPTR
|
||
\ 00008A C0E0 PUSH A
|
||
\ 00008C E5.. MOV A,?V0
|
||
\ 00008E 240B ADD A,#0xb
|
||
\ 000090 12.... LCALL ??Subroutine284_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_659:
|
||
\ 000093 D0E0 POP A
|
||
\ 000095 12.... LCALL ?Subroutine45 & 0xFFFF
|
||
2579 rsp->startIndex = *msg++;
|
||
\ ??CrossCallReturnLabel_62:
|
||
\ 000098 C0E0 PUSH A
|
||
\ 00009A 12.... LCALL ?Subroutine157 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_665:
|
||
\ 00009D D0E0 POP A
|
||
\ 00009F F0 MOVX @DPTR,A
|
||
\ 0000A0 EE MOV A,R6
|
||
\ 0000A1 2404 ADD A,#0x4
|
||
\ 0000A3 FE MOV R6,A
|
||
\ 0000A4 5001 JNC ??ZDO_ParseAddrRsp_3
|
||
\ 0000A6 0F INC R7
|
||
\ ??ZDO_ParseAddrRsp_3:
|
||
\ 0000A7 AC.. MOV R4,?V2
|
||
2580
|
||
2581 while ( n != 0 )
|
||
2582 {
|
||
2583 *pList++ = BUILD_UINT16( msg[0], msg[1] );
|
||
\ ??ZDO_ParseAddrRsp_4:
|
||
\ 0000A9 8E82 MOV DPL,R6
|
||
\ 0000AB 8F83 MOV DPH,R7
|
||
\ 0000AD E0 MOVX A,@DPTR
|
||
\ 0000AE F5.. MOV ?V2,A
|
||
\ 0000B0 A3 INC DPTR
|
||
\ 0000B1 E0 MOVX A,@DPTR
|
||
\ 0000B2 FB MOV R3,A
|
||
\ 0000B3 E5.. MOV A,?V2
|
||
\ 0000B5 8882 MOV DPL,R0
|
||
\ 0000B7 8983 MOV DPH,R1
|
||
\ 0000B9 12.... LCALL ??Subroutine243_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_422:
|
||
\ 0000BC E8 MOV A,R0
|
||
\ 0000BD 2402 ADD A,#0x2
|
||
\ 0000BF F8 MOV R0,A
|
||
\ 0000C0 5001 JNC ??ZDO_ParseAddrRsp_5
|
||
\ 0000C2 09 INC R1
|
||
2584 msg += sizeof( uint16 );
|
||
\ ??ZDO_ParseAddrRsp_5:
|
||
\ 0000C3 EE MOV A,R6
|
||
\ 0000C4 2402 ADD A,#0x2
|
||
\ 0000C6 FE MOV R6,A
|
||
\ 0000C7 5001 JNC ??ZDO_ParseAddrRsp_6
|
||
\ 0000C9 0F INC R7
|
||
2585 n--;
|
||
2586 }
|
||
\ ??ZDO_ParseAddrRsp_6:
|
||
\ 0000CA 1C DEC R4
|
||
\ 0000CB EC MOV A,R4
|
||
\ 0000CC 70DB JNZ ??ZDO_ParseAddrRsp_4
|
||
2587 }
|
||
2588 }
|
||
2589 }
|
||
2590
|
||
2591 return ( rsp );
|
||
\ ??ZDO_ParseAddrRsp_1:
|
||
\ 0000CE AA.. MOV R2,?V0
|
||
\ 0000D0 AB.. MOV R3,?V1
|
||
\ 0000D2 02.... LJMP ??Subroutine297_0 & 0xFFFF
|
||
2592 }
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine93:
|
||
\ 000000 F582 MOV DPL,A
|
||
\ 000002 8F83 MOV DPH,R7
|
||
\ 000004 12.... LCALL ?Subroutine190 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_312:
|
||
\ 000007 85..82 MOV DPL,?V0
|
||
\ 00000A 85..83 MOV DPH,?V1
|
||
\ 00000D 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine288_0:
|
||
\ 000000 FA MOV R2,A
|
||
\ 000001 E4 CLR A
|
||
\ 000002 39 ADDC A,R1
|
||
\ 000003 FB MOV R3,A
|
||
\ 000004 12.... LCALL `??osal_mem_alloc::?relay`; Banked call to: osal_mem_alloc
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine291_0:
|
||
\ 000000 12.... LCALL ?Subroutine193 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_717:
|
||
\ 000003 8E82 MOV DPL,R6
|
||
\ 000005 F583 MOV DPH,A
|
||
\ 000007 E0 MOVX A,@DPTR
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine45:
|
||
\ 000000 12.... LCALL ?Subroutine171 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_285:
|
||
\ 000003 E0 MOVX A,@DPTR
|
||
\ 000004 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine171:
|
||
\ 000000 12.... LCALL ?Subroutine212 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_343:
|
||
\ 000003 22 RET
|
||
2593
|
||
2594 /*********************************************************************
|
||
2595 * @fn ZDO_ParseNodeDescRsp
|
||
2596 *
|
||
2597 * @brief This function parses the Node_Desc_rsp message.
|
||
2598 *
|
||
2599 * @param inMsg - incoming message
|
||
2600 * @param pNDRsp - place to parse the message into
|
||
2601 *
|
||
2602 * @return none
|
||
2603 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
2604 void ZDO_ParseNodeDescRsp( zdoIncomingMsg_t *inMsg, ZDO_NodeDescRsp_t *pNDRsp )
|
||
\ ZDO_ParseNodeDescRsp:
|
||
2605 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 74F6 MOV A,#-0xa
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 10
|
||
\ 000005 ; Auto size: 0
|
||
2606 uint8 *msg;
|
||
2607
|
||
2608 msg = inMsg->asdu;
|
||
\ 000005 12.... LCALL ?Subroutine10 & 0xFFFF
|
||
2609
|
||
2610 pNDRsp->status = *msg++;
|
||
2611 pNDRsp->nwkAddr = BUILD_UINT16( msg[0], msg[1] );
|
||
2612
|
||
2613 if ( pNDRsp->status == ZDP_SUCCESS )
|
||
\ ??CrossCallReturnLabel_2:
|
||
\ 000008 6003 JZ $+5
|
||
\ 00000A 02.... LJMP ??ZDO_ParseNodeDescRsp_0 & 0xFFFF
|
||
2614 {
|
||
2615 msg += 2;
|
||
2616 pNDRsp->nodeDesc.LogicalType = *msg & 0x07;
|
||
\ 00000D E8 MOV A,R0
|
||
\ 00000E 2402 ADD A,#0x2
|
||
\ 000010 FA MOV R2,A
|
||
\ 000011 E4 CLR A
|
||
\ 000012 39 ADDC A,R1
|
||
\ 000013 FB MOV R3,A
|
||
\ 000014 EC MOV A,R4
|
||
\ 000015 2403 ADD A,#0x3
|
||
\ 000017 FE MOV R6,A
|
||
\ 000018 E4 CLR A
|
||
\ 000019 3D ADDC A,R5
|
||
\ 00001A FF MOV R7,A
|
||
\ 00001B 8A82 MOV DPL,R2
|
||
\ 00001D 8B83 MOV DPH,R3
|
||
\ 00001F E0 MOVX A,@DPTR
|
||
\ 000020 5407 ANL A,#0x7
|
||
\ 000022 F5.. MOV ?V0,A
|
||
\ 000024 8E82 MOV DPL,R6
|
||
\ 000026 8F83 MOV DPH,R7
|
||
\ 000028 E0 MOVX A,@DPTR
|
||
\ 000029 54F8 ANL A,#0xf8
|
||
\ 00002B 45.. ORL A,?V0
|
||
\ 00002D F5.. MOV ?V1,A
|
||
\ 00002F 12.... LCALL ?Subroutine46 & 0xFFFF
|
||
2617
|
||
2618 pNDRsp->nodeDesc.ComplexDescAvail = ( *msg & 0x08 ) >> 3;
|
||
\ ??CrossCallReturnLabel_64:
|
||
\ 000032 A2E3 MOV C,0xE0 /* A */.3
|
||
\ 000034 E4 CLR A
|
||
\ 000035 33 RLC A
|
||
\ 000036 F5.. MOV ?V0,A
|
||
\ 000038 A2E0 MOV C,0xE0 /* A */.0
|
||
\ 00003A E4 CLR A
|
||
\ 00003B 33 RLC A
|
||
\ 00003C 33 RLC A
|
||
\ 00003D 33 RLC A
|
||
\ 00003E 33 RLC A
|
||
\ 00003F F5.. MOV ?V0,A
|
||
\ 000041 74F7 MOV A,#-0x9
|
||
\ 000043 55.. ANL A,?V1
|
||
\ 000045 45.. ORL A,?V0
|
||
\ 000047 8E82 MOV DPL,R6
|
||
\ 000049 8F83 MOV DPH,R7
|
||
\ 00004B 12.... LCALL ?Subroutine46 & 0xFFFF
|
||
2619 pNDRsp->nodeDesc.UserDescAvail = ( *msg & 0x10 ) >> 4;
|
||
\ ??CrossCallReturnLabel_65:
|
||
\ 00004E A2E4 MOV C,0xE0 /* A */.4
|
||
\ 000050 E4 CLR A
|
||
\ 000051 33 RLC A
|
||
\ 000052 FA MOV R2,A
|
||
\ 000053 A2E0 MOV C,0xE0 /* A */.0
|
||
\ 000055 E4 CLR A
|
||
\ 000056 33 RLC A
|
||
\ 000057 C4 SWAP A
|
||
\ 000058 FA MOV R2,A
|
||
\ 000059 8E82 MOV DPL,R6
|
||
\ 00005B 8F83 MOV DPH,R7
|
||
\ 00005D E0 MOVX A,@DPTR
|
||
\ 00005E 54EF ANL A,#0xef
|
||
\ 000060 4A ORL A,R2
|
||
\ 000061 F0 MOVX @DPTR,A
|
||
2620
|
||
2621 msg++; // Reserved bits.
|
||
2622 pNDRsp->nodeDesc.FrequencyBand = (*msg >> 3) & 0x1f;
|
||
\ 000062 E8 MOV A,R0
|
||
\ 000063 2403 ADD A,#0x3
|
||
\ 000065 FA MOV R2,A
|
||
\ 000066 E4 CLR A
|
||
\ 000067 39 ADDC A,R1
|
||
\ 000068 FB MOV R3,A
|
||
\ 000069 EC MOV A,R4
|
||
\ 00006A 2404 ADD A,#0x4
|
||
\ 00006C 0E INC R6
|
||
\ 00006D E4 CLR A
|
||
\ 00006E 3D ADDC A,R5
|
||
\ 00006F FF MOV R7,A
|
||
\ 000070 8A82 MOV DPL,R2
|
||
\ 000072 8B83 MOV DPH,R3
|
||
\ 000074 E0 MOVX A,@DPTR
|
||
\ 000075 54F8 ANL A,#0xf8
|
||
\ 000077 F5.. MOV ?V0,A
|
||
\ 000079 8E82 MOV DPL,R6
|
||
\ 00007B 8F83 MOV DPH,R7
|
||
\ 00007D E0 MOVX A,@DPTR
|
||
\ 00007E 5407 ANL A,#0x7
|
||
\ 000080 45.. ORL A,?V0
|
||
\ 000082 F5.. MOV ?V0,A
|
||
\ 000084 12.... LCALL ?Subroutine46 & 0xFFFF
|
||
2623 pNDRsp->nodeDesc.APSFlags = *msg++ & 0x07;
|
||
\ ??CrossCallReturnLabel_66:
|
||
\ 000087 5407 ANL A,#0x7
|
||
\ 000089 FA MOV R2,A
|
||
\ 00008A 74F8 MOV A,#-0x8
|
||
\ 00008C 55.. ANL A,?V0
|
||
\ 00008E 4A ORL A,R2
|
||
\ 00008F 8E82 MOV DPL,R6
|
||
\ 000091 8F83 MOV DPH,R7
|
||
\ 000093 12.... LCALL ?Subroutine37 & 0xFFFF
|
||
2624 pNDRsp->nodeDesc.CapabilityFlags = *msg++;
|
||
\ ??CrossCallReturnLabel_48:
|
||
\ 000096 8C82 MOV DPL,R4
|
||
\ 000098 8D83 MOV DPH,R5
|
||
\ 00009A A3 INC DPTR
|
||
\ 00009B A3 INC DPTR
|
||
\ 00009C A3 INC DPTR
|
||
\ 00009D A3 INC DPTR
|
||
\ 00009E A3 INC DPTR
|
||
\ 00009F 12.... LCALL ?Subroutine38 & 0xFFFF
|
||
2625 pNDRsp->nodeDesc.ManufacturerCode[0] = *msg++;
|
||
\ ??CrossCallReturnLabel_51:
|
||
\ 0000A2 A3 INC DPTR
|
||
\ 0000A3 A3 INC DPTR
|
||
\ 0000A4 12.... LCALL ??Subroutine282_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_639:
|
||
\ 0000A7 12.... LCALL ?Subroutine34 & 0xFFFF
|
||
2626 pNDRsp->nodeDesc.ManufacturerCode[1] = *msg++;
|
||
\ ??CrossCallReturnLabel_42:
|
||
\ 0000AA 12.... LCALL ?Subroutine94 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_155:
|
||
\ 0000AD 12.... LCALL ?Subroutine34 & 0xFFFF
|
||
2627 pNDRsp->nodeDesc.MaxBufferSize = *msg++;
|
||
\ ??CrossCallReturnLabel_43:
|
||
\ 0000B0 A3 INC DPTR
|
||
\ 0000B1 12.... LCALL ??Subroutine282_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_640:
|
||
\ 0000B4 12.... LCALL ?Subroutine26 & 0xFFFF
|
||
2628 pNDRsp->nodeDesc.MaxInTransferSize[0] = *msg++;
|
||
\ ??CrossCallReturnLabel_23:
|
||
\ 0000B7 12.... LCALL ?Subroutine94 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_156:
|
||
\ 0000BA 12.... LCALL ?Subroutine26 & 0xFFFF
|
||
2629 pNDRsp->nodeDesc.MaxInTransferSize[1] = *msg++;
|
||
\ ??CrossCallReturnLabel_24:
|
||
\ 0000BD A3 INC DPTR
|
||
\ 0000BE 12.... LCALL ?Subroutine94 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_157:
|
||
\ 0000C1 A3 INC DPTR
|
||
\ 0000C2 A3 INC DPTR
|
||
\ 0000C3 A3 INC DPTR
|
||
\ 0000C4 A3 INC DPTR
|
||
\ 0000C5 A3 INC DPTR
|
||
\ 0000C6 A3 INC DPTR
|
||
\ 0000C7 A3 INC DPTR
|
||
\ 0000C8 A3 INC DPTR
|
||
\ 0000C9 A3 INC DPTR
|
||
\ 0000CA F0 MOVX @DPTR,A
|
||
\ 0000CB E8 MOV A,R0
|
||
\ 0000CC 240A ADD A,#0xa
|
||
\ 0000CE F8 MOV R0,A
|
||
\ 0000CF 5001 JNC ??ZDO_ParseNodeDescRsp_1
|
||
\ 0000D1 09 INC R1
|
||
2630 pNDRsp->nodeDesc.ServerMask = BUILD_UINT16( msg[0], msg[1] );
|
||
\ ??ZDO_ParseNodeDescRsp_1:
|
||
\ 0000D2 F582 MOV DPL,A
|
||
\ 0000D4 8983 MOV DPH,R1
|
||
\ 0000D6 E0 MOVX A,@DPTR
|
||
\ 0000D7 FE MOV R6,A
|
||
\ 0000D8 A3 INC DPTR
|
||
\ 0000D9 E0 MOVX A,@DPTR
|
||
\ 0000DA FB MOV R3,A
|
||
\ 0000DB EC MOV A,R4
|
||
\ 0000DC 240B ADD A,#0xb
|
||
\ 0000DE F582 MOV DPL,A
|
||
\ 0000E0 E4 CLR A
|
||
\ 0000E1 3D ADDC A,R5
|
||
\ 0000E2 F583 MOV DPH,A
|
||
\ 0000E4 EE MOV A,R6
|
||
\ 0000E5 12.... LCALL ??Subroutine243_0 & 0xFFFF
|
||
2631 msg += 2;
|
||
2632 pNDRsp->nodeDesc.MaxOutTransferSize[0] = *msg++;
|
||
\ ??CrossCallReturnLabel_423:
|
||
\ 0000E8 8882 MOV DPL,R0
|
||
\ 0000EA 8983 MOV DPH,R1
|
||
\ 0000EC A3 INC DPTR
|
||
\ 0000ED A3 INC DPTR
|
||
\ 0000EE E0 MOVX A,@DPTR
|
||
\ 0000EF C0E0 PUSH A
|
||
\ 0000F1 EC MOV A,R4
|
||
\ 0000F2 240D ADD A,#0xd
|
||
\ 0000F4 F582 MOV DPL,A
|
||
\ 0000F6 E4 CLR A
|
||
\ 0000F7 3D ADDC A,R5
|
||
\ 0000F8 F583 MOV DPH,A
|
||
\ 0000FA D0E0 POP A
|
||
\ 0000FC 12.... LCALL ?Subroutine38 & 0xFFFF
|
||
2633 pNDRsp->nodeDesc.MaxOutTransferSize[1] = *msg++;
|
||
2634 pNDRsp->nodeDesc.DescriptorCapability = *msg;
|
||
2635 }
|
||
\ ??CrossCallReturnLabel_52:
|
||
\ 0000FF E0 MOVX A,@DPTR
|
||
\ 000100 C0E0 PUSH A
|
||
\ 000102 EC MOV A,R4
|
||
\ 000103 12.... LCALL ??Subroutine276_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_624:
|
||
\ 000106 3D ADDC A,R5
|
||
\ 000107 F583 MOV DPH,A
|
||
\ 000109 D0E0 POP A
|
||
\ 00010B 12.... LCALL ?Subroutine37 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_49:
|
||
\ 00010E C0E0 PUSH A
|
||
\ 000110 EC MOV A,R4
|
||
\ 000111 12.... LCALL ?Subroutine201 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_324:
|
||
\ 000114 3D ADDC A,R5
|
||
\ 000115 F583 MOV DPH,A
|
||
\ 000117 D0E0 POP A
|
||
\ 000119 F0 MOVX @DPTR,A
|
||
2636 }
|
||
\ ??ZDO_ParseNodeDescRsp_0:
|
||
\ 00011A 02.... LJMP ??Subroutine225_0 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine46:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 8A82 MOV DPL,R2
|
||
\ 000003 8B83 MOV DPH,R3
|
||
\ 000005 E0 MOVX A,@DPTR
|
||
\ 000006 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine37:
|
||
\ 000000 12.... LCALL ?Subroutine173 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_289:
|
||
\ 000003 A3 INC DPTR
|
||
\ 000004 E0 MOVX A,@DPTR
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine34:
|
||
\ 000000 12.... LCALL ?Subroutine168 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_280:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine168:
|
||
\ 000000 A3 INC DPTR
|
||
\ 000001 A3 INC DPTR
|
||
\ 000002 A3 INC DPTR
|
||
\ 000003 A3 INC DPTR
|
||
\ 000004 A3 INC DPTR
|
||
\ 000005 A3 INC DPTR
|
||
\ 000006 12.... LCALL ?Subroutine210 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_337:
|
||
\ 000009 A3 INC DPTR
|
||
\ 00000A A3 INC DPTR
|
||
\ 00000B A3 INC DPTR
|
||
\ 00000C 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine26:
|
||
\ 000000 A3 INC DPTR
|
||
\ 000001 A3 INC DPTR
|
||
\ 000002 12.... LCALL ?Subroutine168 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_281:
|
||
\ 000005 A3 INC DPTR
|
||
\ 000006 A3 INC DPTR
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine10:
|
||
\ 000000 12.... LCALL ?Subroutine200 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_706:
|
||
\ 000003 12.... LCALL ?Subroutine186 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_647:
|
||
\ 000006 8882 MOV DPL,R0
|
||
\ 000008 12.... LCALL ?Subroutine185 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_643:
|
||
\ 00000B 12.... LCALL ?Subroutine211 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_341:
|
||
\ 00000E A3 INC DPTR
|
||
\ 00000F A882 MOV R0,DPL
|
||
\ 000011 A983 MOV R1,DPH
|
||
\ 000013 E0 MOVX A,@DPTR
|
||
\ 000014 FE MOV R6,A
|
||
\ 000015 A3 INC DPTR
|
||
\ 000016 E0 MOVX A,@DPTR
|
||
\ 000017 FB MOV R3,A
|
||
\ 000018 EE MOV A,R6
|
||
\ 000019 8C82 MOV DPL,R4
|
||
\ 00001B 8D83 MOV DPH,R5
|
||
\ 00001D A3 INC DPTR
|
||
\ 00001E F0 MOVX @DPTR,A
|
||
\ 00001F A3 INC DPTR
|
||
\ 000020 EB MOV A,R3
|
||
\ 000021 F0 MOVX @DPTR,A
|
||
\ 000022 8C82 MOV DPL,R4
|
||
\ 000024 8D83 MOV DPH,R5
|
||
\ 000026 E0 MOVX A,@DPTR
|
||
\ 000027 22 RET
|
||
2637
|
||
2638 /*********************************************************************
|
||
2639 * @fn ZDO_ParesPowerDescRsp
|
||
2640 *
|
||
2641 * @brief This function parses the Power_Desc_rsp message.
|
||
2642 *
|
||
2643 * @param inMsg - incoming message
|
||
2644 * @param pNPRsp - place to parse the message into
|
||
2645 *
|
||
2646 * @return none
|
||
2647 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
2648 void ZDO_ParsePowerDescRsp( zdoIncomingMsg_t *inMsg, ZDO_PowerRsp_t *pNPRsp )
|
||
\ ZDO_ParsePowerDescRsp:
|
||
2649 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 74F4 MOV A,#-0xc
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 12
|
||
\ 000005 ; Auto size: 0
|
||
2650 uint8 *msg;
|
||
2651
|
||
2652 msg = inMsg->asdu;
|
||
\ 000005 12.... LCALL ??Subroutine272_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_580:
|
||
\ 000008 F583 MOV DPH,A
|
||
\ 00000A 12.... LCALL ??Subroutine256_0 & 0xFFFF
|
||
2653 pNPRsp->status = *msg++;
|
||
\ ??CrossCallReturnLabel_490:
|
||
\ 00000D 12.... LCALL ?Subroutine29 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_629:
|
||
\ 000010 AA82 MOV R2,DPL
|
||
\ 000012 AB83 MOV R3,DPH
|
||
2654 pNPRsp->nwkAddr = BUILD_UINT16( msg[0], msg[1] );
|
||
\ 000014 E0 MOVX A,@DPTR
|
||
\ 000015 FE MOV R6,A
|
||
\ 000016 A3 INC DPTR
|
||
\ 000017 E0 MOVX A,@DPTR
|
||
\ 000018 F9 MOV R1,A
|
||
\ 000019 EE MOV A,R6
|
||
\ 00001A 8C82 MOV DPL,R4
|
||
\ 00001C 8D83 MOV DPH,R5
|
||
\ 00001E A3 INC DPTR
|
||
\ 00001F 12.... LCALL ??Subroutine295_0 & 0xFFFF
|
||
2655
|
||
2656 if ( pNPRsp->status == ZDP_SUCCESS )
|
||
\ ??CrossCallReturnLabel_721:
|
||
\ 000022 8C82 MOV DPL,R4
|
||
\ 000024 8D83 MOV DPH,R5
|
||
\ 000026 E0 MOVX A,@DPTR
|
||
\ 000027 6003 JZ $+5
|
||
\ 000029 02.... LJMP ??ZDO_ParsePowerDescRsp_0 & 0xFFFF
|
||
2657 {
|
||
2658 msg += 2;
|
||
2659 pNPRsp->pwrDesc.AvailablePowerSources = *msg >> 4;
|
||
\ 00002C EA MOV A,R2
|
||
\ 00002D 2402 ADD A,#0x2
|
||
\ 00002F F8 MOV R0,A
|
||
\ 000030 E4 CLR A
|
||
\ 000031 3B ADDC A,R3
|
||
\ 000032 F9 MOV R1,A
|
||
\ 000033 E8 MOV A,R0
|
||
\ 000034 FE MOV R6,A
|
||
\ 000035 E9 MOV A,R1
|
||
\ 000036 FF MOV R7,A
|
||
\ 000037 EC MOV A,R4
|
||
\ 000038 2403 ADD A,#0x3
|
||
\ 00003A E4 CLR A
|
||
\ 00003B 3D ADDC A,R5
|
||
\ 00003C 0C INC R4
|
||
\ 00003D 0C INC R4
|
||
\ 00003E 0C INC R4
|
||
\ 00003F FD MOV R5,A
|
||
\ 000040 8C82 MOV DPL,R4
|
||
\ 000042 F583 MOV DPH,A
|
||
\ 000044 E0 MOVX A,@DPTR
|
||
\ 000045 540F ANL A,#0xf
|
||
\ 000047 F5.. MOV ?V2,A
|
||
\ 000049 A3 INC DPTR
|
||
\ 00004A E0 MOVX A,@DPTR
|
||
\ 00004B 12.... LCALL ?Subroutine122 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_200:
|
||
\ 00004E 7404 MOV A,#0x4
|
||
\ 000050 78.. MOV R0,#?V0
|
||
\ 000052 12.... LCALL ?S_SHL
|
||
\ 000055 E5.. MOV A,?V2
|
||
\ 000057 45.. ORL A,?V0
|
||
\ 000059 F8 MOV R0,A
|
||
\ 00005A A9.. MOV R1,?V3
|
||
\ 00005C 8C82 MOV DPL,R4
|
||
\ 00005E 8D83 MOV DPH,R5
|
||
\ 000060 12.... LCALL ??Subroutine295_0 & 0xFFFF
|
||
2660 pNPRsp->pwrDesc.PowerMode = *msg++ & 0x0F;
|
||
\ ??CrossCallReturnLabel_722:
|
||
\ 000063 E8 MOV A,R0
|
||
\ 000064 54F0 ANL A,#0xf0
|
||
\ 000066 F8 MOV R0,A
|
||
\ 000067 8E82 MOV DPL,R6
|
||
\ 000069 8F83 MOV DPH,R7
|
||
\ 00006B E0 MOVX A,@DPTR
|
||
\ 00006C 540F ANL A,#0xf
|
||
\ 00006E FE MOV R6,A
|
||
\ 00006F E8 MOV A,R0
|
||
\ 000070 4E ORL A,R6
|
||
\ 000071 F5.. MOV ?V0,A
|
||
\ 000073 E9 MOV A,R1
|
||
\ 000074 F5.. MOV ?V1,A
|
||
\ 000076 8C82 MOV DPL,R4
|
||
\ 000078 8D83 MOV DPH,R5
|
||
\ 00007A E5.. MOV A,?V0
|
||
\ 00007C 12.... LCALL ??Subroutine295_0 & 0xFFFF
|
||
2661 pNPRsp->pwrDesc.CurrentPowerSourceLevel = *msg >> 4;
|
||
\ ??CrossCallReturnLabel_723:
|
||
\ 00007F EA MOV A,R2
|
||
\ 000080 2403 ADD A,#0x3
|
||
\ 000082 F8 MOV R0,A
|
||
\ 000083 E4 CLR A
|
||
\ 000084 3B ADDC A,R3
|
||
\ 000085 F9 MOV R1,A
|
||
\ 000086 E8 MOV A,R0
|
||
\ 000087 FE MOV R6,A
|
||
\ 000088 E9 MOV A,R1
|
||
\ 000089 FF MOV R7,A
|
||
\ 00008A E5.. MOV A,?V0
|
||
\ 00008C F5.. MOV ?V2,A
|
||
\ 00008E E5.. MOV A,?V1
|
||
\ 000090 540F ANL A,#0xf
|
||
\ 000092 12.... LCALL ?Subroutine122 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_201:
|
||
\ 000095 740C MOV A,#0xc
|
||
\ 000097 78.. MOV R0,#?V0
|
||
\ 000099 12.... LCALL ?S_SHL
|
||
\ 00009C E5.. MOV A,?V3
|
||
\ 00009E 45.. ORL A,?V1
|
||
\ 0000A0 F9 MOV R1,A
|
||
\ 0000A1 8C82 MOV DPL,R4
|
||
\ 0000A3 8D83 MOV DPH,R5
|
||
\ 0000A5 E5.. MOV A,?V2
|
||
\ 0000A7 12.... LCALL ??Subroutine295_0 & 0xFFFF
|
||
2662 pNPRsp->pwrDesc.CurrentPowerSource = *msg++ & 0x0F;
|
||
\ ??CrossCallReturnLabel_724:
|
||
\ 0000AA 8E82 MOV DPL,R6
|
||
\ 0000AC 8F83 MOV DPH,R7
|
||
\ 0000AE E0 MOVX A,@DPTR
|
||
\ 0000AF 540F ANL A,#0xf
|
||
\ 0000B1 F8 MOV R0,A
|
||
\ 0000B2 EA MOV A,R2
|
||
\ 0000B3 2404 ADD A,#0x4
|
||
\ 0000B5 8C82 MOV DPL,R4
|
||
\ 0000B7 8D83 MOV DPH,R5
|
||
\ 0000B9 A3 INC DPTR
|
||
\ 0000BA E0 MOVX A,@DPTR
|
||
\ 0000BB 54F0 ANL A,#0xf0
|
||
\ 0000BD F0 MOVX @DPTR,A
|
||
\ 0000BE E8 MOV A,R0
|
||
\ 0000BF F9 MOV R1,A
|
||
\ 0000C0 8C82 MOV DPL,R4
|
||
\ 0000C2 8D83 MOV DPH,R5
|
||
\ 0000C4 A3 INC DPTR
|
||
\ 0000C5 E0 MOVX A,@DPTR
|
||
\ 0000C6 49 ORL A,R1
|
||
\ 0000C7 F0 MOVX @DPTR,A
|
||
2663 }
|
||
2664 }
|
||
\ ??ZDO_ParsePowerDescRsp_0:
|
||
\ 0000C8 02.... LJMP ??Subroutine222_0 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine122:
|
||
\ 000000 F5.. MOV ?V3,A
|
||
\ 000002 8882 MOV DPL,R0
|
||
\ 000004 8983 MOV DPH,R1
|
||
\ 000006 E0 MOVX A,@DPTR
|
||
\ 000007 C4 SWAP A
|
||
\ 000008 540F ANL A,#0xf
|
||
\ 00000A F5.. MOV ?V0,A
|
||
\ 00000C 75..00 MOV ?V1,#0x0
|
||
\ 00000F 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine29:
|
||
\ 000000 8A82 MOV DPL,R2
|
||
\ 000002 REQUIRE ??Subroutine277_0
|
||
\ 000002 ; // Fall through to label ??Subroutine277_0
|
||
2665
|
||
2666 /*********************************************************************
|
||
2667 * @fn ZDO_ParseSimpleDescRsp
|
||
2668 *
|
||
2669 * @brief This function parse the Simple_Desc_rsp message.
|
||
2670 *
|
||
2671 * NOTE: The pAppInClusterList and pAppOutClusterList fields
|
||
2672 * in the SimpleDescriptionFormat_t structure are allocated
|
||
2673 * and the calling function needs to free [osal_msg_free()]
|
||
2674 * these buffers.
|
||
2675 *
|
||
2676 * @param inMsg - incoming message
|
||
2677 * @param pSimpleDescRsp - place to parse the message into
|
||
2678 *
|
||
2679 * @return none
|
||
2680 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
2681 void ZDO_ParseSimpleDescRsp( zdoIncomingMsg_t *inMsg, ZDO_SimpleDescRsp_t *pSimpleDescRsp )
|
||
\ ZDO_ParseSimpleDescRsp:
|
||
2682 {
|
||
\ 000000 74F7 MOV A,#-0x9
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 9
|
||
\ 000005 ; Auto size: 0
|
||
2683 uint8 *msg;
|
||
2684
|
||
2685 msg = inMsg->asdu;
|
||
\ 000005 12.... LCALL ?Subroutine10 & 0xFFFF
|
||
2686 pSimpleDescRsp->status = *msg++;
|
||
2687 pSimpleDescRsp->nwkAddr = BUILD_UINT16( msg[0], msg[1] );
|
||
2688 msg += sizeof ( uint16 );
|
||
2689 msg++; // Skip past the length field.
|
||
2690
|
||
2691 if ( pSimpleDescRsp->status == ZDP_SUCCESS )
|
||
\ ??CrossCallReturnLabel_3:
|
||
\ 000008 7011 JNZ ??ZDO_ParseSimpleDescRsp_0
|
||
2692 {
|
||
2693 ZDO_ParseSimpleDescBuf( msg, &(pSimpleDescRsp->simpleDesc) );
|
||
\ 00000A ; Setup parameters for call to function ZDO_ParseSimpleDescBuf
|
||
\ 00000A EC MOV A,R4
|
||
\ 00000B 2403 ADD A,#0x3
|
||
\ 00000D FC MOV R4,A
|
||
\ 00000E 5001 JNC ??ZDO_ParseSimpleDescRsp_1
|
||
\ 000010 0D INC R5
|
||
\ ??ZDO_ParseSimpleDescRsp_1:
|
||
\ 000011 E8 MOV A,R0
|
||
\ 000012 2403 ADD A,#0x3
|
||
\ 000014 FA MOV R2,A
|
||
\ 000015 E4 CLR A
|
||
\ 000016 39 ADDC A,R1
|
||
\ 000017 FB MOV R3,A
|
||
\ 000018 12.... LCALL `??ZDO_ParseSimpleDescBuf::?relay`; Banked call to: ZDO_ParseSimpleDescBuf
|
||
2694 }
|
||
2695 }
|
||
\ ??ZDO_ParseSimpleDescRsp_0:
|
||
\ 00001B 02.... LJMP ?Subroutine1 & 0xFFFF
|
||
2696
|
||
2697 /*********************************************************************
|
||
2698 * @fn ZDO_ParseEPListRsp
|
||
2699 *
|
||
2700 * @brief This parse the Active_EP_rsp or Match_Desc_rsp message.
|
||
2701 *
|
||
2702 * @param inMsg - incoming message
|
||
2703 *
|
||
2704 * @return none
|
||
2705 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
2706 ZDO_ActiveEndpointRsp_t *ZDO_ParseEPListRsp( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ParseEPListRsp:
|
||
2707 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V5
|
||
\ 000000 REQUIRE ?V6
|
||
\ 000000 74F1 MOV A,#-0xf
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 15
|
||
\ 000005 ; Auto size: 0
|
||
2708 ZDO_ActiveEndpointRsp_t *pRsp;
|
||
2709 uint8 *msg;
|
||
2710 uint8 Status;
|
||
2711 uint8 cnt;
|
||
2712
|
||
2713 msg = inMsg->asdu;
|
||
\ 000005 12.... LCALL ?Subroutine80 & 0xFFFF
|
||
2714 Status = *msg++;
|
||
\ ??CrossCallReturnLabel_128:
|
||
\ 000008 F5.. MOV ?V3,A
|
||
\ 00000A A3 INC DPTR
|
||
\ 00000B AE82 MOV R6,DPL
|
||
\ 00000D AF83 MOV R7,DPH
|
||
2715 cnt = msg[2];
|
||
\ 00000F A3 INC DPTR
|
||
\ 000010 A3 INC DPTR
|
||
\ 000011 E0 MOVX A,@DPTR
|
||
\ 000012 F5.. MOV ?V2,A
|
||
2716
|
||
2717 pRsp = (ZDO_ActiveEndpointRsp_t *)osal_mem_alloc( sizeof( ZDO_ActiveEndpointRsp_t ) + cnt );
|
||
\ 000014 ; Setup parameters for call to function osal_mem_alloc
|
||
\ 000014 12.... LCALL ?Subroutine153 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_631:
|
||
\ 000017 8A.. MOV ?V0,R2
|
||
\ 000019 8B.. MOV ?V1,R3
|
||
2718 if ( pRsp )
|
||
\ 00001B EA MOV A,R2
|
||
\ 00001C 4B ORL A,R3
|
||
\ 00001D 6045 JZ ??ZDO_ParseEPListRsp_0
|
||
2719 {
|
||
2720 pRsp->status = Status;
|
||
\ 00001F 8A82 MOV DPL,R2
|
||
\ 000021 8B83 MOV DPH,R3
|
||
\ 000023 E5.. MOV A,?V3
|
||
\ 000025 F0 MOVX @DPTR,A
|
||
2721 pRsp->nwkAddr = BUILD_UINT16( msg[0], msg[1] );
|
||
\ 000026 8E82 MOV DPL,R6
|
||
\ 000028 8F83 MOV DPH,R7
|
||
\ 00002A 12.... LCALL ?Subroutine116 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_369:
|
||
\ 00002D 85..82 MOV DPL,?V0
|
||
\ 000030 8B83 MOV DPH,R3
|
||
\ 000032 A3 INC DPTR
|
||
\ 000033 12.... LCALL ??Subroutine295_0 & 0xFFFF
|
||
2722 msg += sizeof( uint16 );
|
||
2723 pRsp->cnt = cnt;
|
||
\ ??CrossCallReturnLabel_725:
|
||
\ 000036 85..82 MOV DPL,?V0
|
||
\ 000039 8B83 MOV DPH,R3
|
||
\ 00003B A3 INC DPTR
|
||
\ 00003C A3 INC DPTR
|
||
\ 00003D A3 INC DPTR
|
||
\ 00003E E5.. MOV A,?V2
|
||
\ 000040 12.... LCALL ?Subroutine171 & 0xFFFF
|
||
2724 msg++; // pass cnt
|
||
2725 osal_memcpy( pRsp->epList, msg, cnt );
|
||
2726 }
|
||
\ ??CrossCallReturnLabel_284:
|
||
\ 000043 A982 MOV R1,DPL
|
||
\ 000045 AA83 MOV R2,DPH
|
||
\ 000047 89.. MOV ?V4,R1
|
||
\ 000049 8A.. MOV ?V5,R2
|
||
\ 00004B 88.. MOV ?V6,R0
|
||
\ 00004D 78.. MOV R0,#?V4
|
||
\ 00004F 12.... LCALL ?PUSH_XSTACK_I_THREE
|
||
\ 000052 AC.. MOV R4,?V2
|
||
\ 000054 7D00 MOV R5,#0x0
|
||
\ 000056 E5.. MOV A,?V0
|
||
\ 000058 2404 ADD A,#0x4
|
||
\ 00005A FA MOV R2,A
|
||
\ 00005B E4 CLR A
|
||
\ 00005C 35.. ADDC A,?V1
|
||
\ 00005E 12.... LCALL ?Subroutine152 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_634:
|
||
\ 000061 12.... LCALL ?DEALLOC_XSTACK8
|
||
2727
|
||
2728 return ( pRsp );
|
||
\ ??ZDO_ParseEPListRsp_0:
|
||
\ 000064 AA.. MOV R2,?V0
|
||
\ 000066 AB.. MOV R3,?V1
|
||
\ 000068 REQUIRE ?Subroutine6
|
||
\ 000068 ; // Fall through to label ?Subroutine6
|
||
2729 }
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine6:
|
||
\ 000000 7F07 MOV R7,#0x7
|
||
\ 000002 02.... LJMP ?BANKED_LEAVE_XDATA
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine153:
|
||
\ 000000 2404 ADD A,#0x4
|
||
\ 000002 REQUIRE ??Subroutine279_0
|
||
\ 000002 ; // Fall through to label ??Subroutine279_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine279_0:
|
||
\ 000000 FA MOV R2,A
|
||
\ 000001 E4 CLR A
|
||
\ 000002 3400 ADDC A,#0x0
|
||
\ 000004 FB MOV R3,A
|
||
\ 000005 12.... LCALL `??osal_mem_alloc::?relay`; Banked call to: osal_mem_alloc
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine152:
|
||
\ 000000 FB MOV R3,A
|
||
\ 000001 REQUIRE ??Subroutine280_0
|
||
\ 000001 ; // Fall through to label ??Subroutine280_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine80:
|
||
\ 000000 12.... LCALL ?Subroutine194 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_313:
|
||
\ 000003 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine194:
|
||
\ 000000 EA MOV A,R2
|
||
\ 000001 12.... LCALL ?Subroutine217 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_710:
|
||
\ 000004 3B ADDC A,R3
|
||
\ 000005 F583 MOV DPH,A
|
||
\ 000007 E0 MOVX A,@DPTR
|
||
\ 000008 FE MOV R6,A
|
||
\ 000009 A3 INC DPTR
|
||
\ 00000A E0 MOVX A,@DPTR
|
||
\ 00000B 8E82 MOV DPL,R6
|
||
\ 00000D F583 MOV DPH,A
|
||
\ 00000F E0 MOVX A,@DPTR
|
||
\ 000010 22 RET
|
||
2730
|
||
2731 /*********************************************************************
|
||
2732 * @fn ZDO_ParseServerDiscRsp
|
||
2733 *
|
||
2734 * @brief Parse the Server_Discovery_rsp message.
|
||
2735 *
|
||
2736 * @param inMsg - incoming message.
|
||
2737 * @param pRsp - place to put the parsed information.
|
||
2738 *
|
||
2739 * @return none
|
||
2740 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
2741 void ZDO_ParseServerDiscRsp( zdoIncomingMsg_t *inMsg, ZDO_ServerDiscRsp_t *pRsp )
|
||
\ ZDO_ParseServerDiscRsp:
|
||
2742 {
|
||
\ 000000 74F7 MOV A,#-0x9
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 9
|
||
\ 000005 ; Auto size: 0
|
||
2743 pRsp->status = inMsg->asdu[0];
|
||
\ 000005 EA MOV A,R2
|
||
\ 000006 2413 ADD A,#0x13
|
||
\ 000008 F8 MOV R0,A
|
||
\ 000009 E4 CLR A
|
||
\ 00000A 3B ADDC A,R3
|
||
\ 00000B F9 MOV R1,A
|
||
\ 00000C 8882 MOV DPL,R0
|
||
\ 00000E F583 MOV DPH,A
|
||
\ 000010 12.... LCALL ??Subroutine281_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_693:
|
||
\ 000013 F583 MOV DPH,A
|
||
\ 000015 8A82 MOV DPL,R2
|
||
\ 000017 12.... LCALL ??Subroutine282_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_641:
|
||
\ 00001A 12.... LCALL ?Subroutine36 & 0xFFFF
|
||
2744 pRsp->serverMask = BUILD_UINT16( inMsg->asdu[1], inMsg->asdu[2] );
|
||
\ ??CrossCallReturnLabel_47:
|
||
\ 00001D 8882 MOV DPL,R0
|
||
\ 00001F F583 MOV DPH,A
|
||
\ 000021 A3 INC DPTR
|
||
\ 000022 E0 MOVX A,@DPTR
|
||
\ 000023 FA MOV R2,A
|
||
\ 000024 8882 MOV DPL,R0
|
||
\ 000026 8983 MOV DPH,R1
|
||
\ 000028 A3 INC DPTR
|
||
\ 000029 12.... LCALL ??Subroutine296_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_737:
|
||
\ 00002C A3 INC DPTR
|
||
\ 00002D 12.... LCALL ??Subroutine295_0 & 0xFFFF
|
||
2745 }
|
||
\ ??CrossCallReturnLabel_726:
|
||
\ 000030 02.... LJMP ?Subroutine1 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine296_0:
|
||
\ 000000 A3 INC DPTR
|
||
\ 000001 E0 MOVX A,@DPTR
|
||
\ 000002 F9 MOV R1,A
|
||
\ 000003 EA MOV A,R2
|
||
\ 000004 8C82 MOV DPL,R4
|
||
\ 000006 8D83 MOV DPH,R5
|
||
\ 000008 22 RET
|
||
2746
|
||
2747 /*********************************************************************
|
||
2748 * @fn ZDO_ParseMgmtLqiRsp
|
||
2749 *
|
||
2750 * @brief This function parses the incoming Management
|
||
2751 * LQI response
|
||
2752 *
|
||
2753 * @param inMsg - incoming message
|
||
2754 *
|
||
2755 * @return a pointer to parsed response structure (NULL if not allocated).
|
||
2756 * This structure was allocated using osal_mem_alloc, so it must be freed
|
||
2757 * by the calling function [osal_mem_free()].
|
||
2758 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine3:
|
||
\ 000000 AA.. MOV R2,?V2
|
||
\ 000002 AB.. MOV R3,?V3
|
||
\ 000004 REQUIRE ??Subroutine230_0
|
||
\ 000004 ; // Fall through to label ??Subroutine230_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
2759 ZDO_MgmtLqiRsp_t *ZDO_ParseMgmtLqiRsp( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ParseMgmtLqiRsp:
|
||
2760 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V5
|
||
\ 000000 REQUIRE ?V6
|
||
\ 000000 REQUIRE ?V7
|
||
\ 000000 74F0 MOV A,#-0x10
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 16
|
||
\ 000005 ; Auto size: 0
|
||
2761 ZDO_MgmtLqiRsp_t *pRsp;
|
||
2762 uint8 status;
|
||
2763 uint8 startIndex = 0;
|
||
\ 000005 75..00 MOV ?V6,#0x0
|
||
2764 uint8 neighborLqiCount = 0;
|
||
\ 000008 75..00 MOV ?V5,#0x0
|
||
2765 uint8 neighborLqiEntries = 0;
|
||
\ 00000B 75..00 MOV ?V4,#0x0
|
||
2766 uint8 *msg;
|
||
2767
|
||
2768 msg = inMsg->asdu;
|
||
\ 00000E 12.... LCALL ?Subroutine77 & 0xFFFF
|
||
2769
|
||
2770 status = *msg++;
|
||
2771 if ( status == ZSuccess )
|
||
\ ??CrossCallReturnLabel_122:
|
||
\ 000011 7017 JNZ ??ZDO_ParseMgmtLqiRsp_0
|
||
2772 {
|
||
2773 neighborLqiEntries = *msg++;
|
||
\ 000013 E0 MOVX A,@DPTR
|
||
\ 000014 F5.. MOV ?V4,A
|
||
2774 startIndex = *msg++;
|
||
\ 000016 A3 INC DPTR
|
||
\ 000017 E0 MOVX A,@DPTR
|
||
\ 000018 F5.. MOV ?V6,A
|
||
2775 neighborLqiCount = *msg++;
|
||
\ 00001A 8E82 MOV DPL,R6
|
||
\ 00001C 8F83 MOV DPH,R7
|
||
\ 00001E A3 INC DPTR
|
||
\ 00001F A3 INC DPTR
|
||
\ 000020 E0 MOVX A,@DPTR
|
||
\ 000021 F5.. MOV ?V5,A
|
||
\ 000023 EE MOV A,R6
|
||
\ 000024 2403 ADD A,#0x3
|
||
\ 000026 FE MOV R6,A
|
||
\ 000027 5001 JNC ??ZDO_ParseMgmtLqiRsp_0
|
||
\ 000029 0F INC R7
|
||
2776 }
|
||
2777
|
||
2778 // Allocate a buffer big enough to handle the list.
|
||
2779 pRsp = (ZDO_MgmtLqiRsp_t *)osal_mem_alloc(
|
||
2780 sizeof( ZDO_MgmtLqiRsp_t ) + (neighborLqiCount * sizeof( neighborLqiItem_t )) );
|
||
\ ??ZDO_ParseMgmtLqiRsp_0:
|
||
\ 00002A ; Setup parameters for call to function osal_mem_alloc
|
||
\ 00002A E5.. MOV A,?V5
|
||
\ 00002C 75F00E MOV B,#0xe
|
||
\ 00002F 12.... LCALL ?Subroutine127 & 0xFFFF
|
||
2781 if ( pRsp )
|
||
\ ??CrossCallReturnLabel_210:
|
||
\ 000032 605D JZ ??ZDO_ParseMgmtLqiRsp_1
|
||
2782 {
|
||
2783 uint8 x;
|
||
2784 neighborLqiItem_t *pList = pRsp->list;
|
||
\ 000034 12.... LCALL ?Subroutine17 & 0xFFFF
|
||
2785 pRsp->status = status;
|
||
2786 pRsp->neighborLqiEntries = neighborLqiEntries;
|
||
2787 pRsp->startIndex = startIndex;
|
||
\ ??CrossCallReturnLabel_676:
|
||
\ 000037 E5.. MOV A,?V6
|
||
\ 000039 12.... LCALL ??Subroutine287_0 & 0xFFFF
|
||
2788 pRsp->neighborLqiCount = neighborLqiCount;
|
||
\ ??CrossCallReturnLabel_681:
|
||
\ 00003C E5.. MOV A,?V5
|
||
\ 00003E F0 MOVX @DPTR,A
|
||
2789
|
||
2790 for ( x = 0; x < neighborLqiCount; x++ )
|
||
\ 00003F 75..00 MOV ?V4,#0x0
|
||
\ 000042 8046 SJMP ??ZDO_ParseMgmtLqiRsp_2
|
||
2791 {
|
||
2792 osal_cpyExtAddr(pList->extPANId, msg); //Copy extended PAN ID
|
||
\ ??ZDO_ParseMgmtLqiRsp_3:
|
||
\ 000044 ; Setup parameters for call to function sAddrExtCpy
|
||
\ 000044 EE MOV A,R6
|
||
\ 000045 FC MOV R4,A
|
||
\ 000046 EF MOV A,R7
|
||
\ 000047 FD MOV R5,A
|
||
\ 000048 E5.. MOV A,?V0
|
||
\ 00004A 2404 ADD A,#0x4
|
||
\ 00004C FA MOV R2,A
|
||
\ 00004D E4 CLR A
|
||
\ 00004E 35.. ADDC A,?V1
|
||
\ 000050 FB MOV R3,A
|
||
\ 000051 12.... LCALL `??sAddrExtCpy::?relay`; Banked call to: sAddrExtCpy
|
||
2793 msg += Z_EXTADDR_LEN;
|
||
2794
|
||
2795 msg += Z_EXTADDR_LEN; // Throwing away IEEE.
|
||
\ 000054 EE MOV A,R6
|
||
\ 000055 2410 ADD A,#0x10
|
||
\ 000057 FE MOV R6,A
|
||
\ 000058 5001 JNC ??ZDO_ParseMgmtLqiRsp_4
|
||
\ 00005A 0F INC R7
|
||
2796 pList->nwkAddr = BUILD_UINT16( msg[0], msg[1] );
|
||
\ ??ZDO_ParseMgmtLqiRsp_4:
|
||
\ 00005B 12.... LCALL ?Subroutine93 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_153:
|
||
\ 00005E F0 MOVX @DPTR,A
|
||
\ 00005F A3 INC DPTR
|
||
\ 000060 E9 MOV A,R1
|
||
\ 000061 12.... LCALL ?Subroutine35 & 0xFFFF
|
||
2797 msg += 2 + 1 + 1 + 1; // Skip DeviceType, RxOnIdle, Rlationship, PermitJoining and Depth
|
||
2798 pList->rxLqi = *msg++;
|
||
\ ??CrossCallReturnLabel_45:
|
||
\ 000064 C0E0 PUSH A
|
||
\ 000066 E5.. MOV A,?V0
|
||
\ 000068 240D ADD A,#0xd
|
||
\ 00006A 12.... LCALL ??Subroutine284_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_660:
|
||
\ 00006D D0E0 POP A
|
||
\ 00006F F0 MOVX @DPTR,A
|
||
\ 000070 EE MOV A,R6
|
||
\ 000071 2406 ADD A,#0x6
|
||
\ 000073 FE MOV R6,A
|
||
\ 000074 5001 JNC ??ZDO_ParseMgmtLqiRsp_5
|
||
\ 000076 0F INC R7
|
||
2799 pList->txQuality = 0; // This is not specified OTA by ZigBee 1.1.
|
||
\ ??ZDO_ParseMgmtLqiRsp_5:
|
||
\ 000077 E5.. MOV A,?V0
|
||
\ 000079 240C ADD A,#0xc
|
||
\ 00007B 12.... LCALL ?Subroutine156 & 0xFFFF
|
||
2800 pList++;
|
||
\ ??CrossCallReturnLabel_264:
|
||
\ 00007E E5.. MOV A,?V0
|
||
\ 000080 240E ADD A,#0xe
|
||
\ 000082 F5.. MOV ?V0,A
|
||
\ 000084 5002 JNC ??ZDO_ParseMgmtLqiRsp_6
|
||
\ 000086 05.. INC ?V1
|
||
2801 }
|
||
\ ??ZDO_ParseMgmtLqiRsp_6:
|
||
\ 000088 05.. INC ?V4
|
||
\ ??ZDO_ParseMgmtLqiRsp_2:
|
||
\ 00008A E5.. MOV A,?V4
|
||
\ 00008C C3 CLR C
|
||
\ 00008D 95.. SUBB A,?V5
|
||
\ 00008F 40B3 JC ??ZDO_ParseMgmtLqiRsp_3
|
||
2802 }
|
||
2803
|
||
2804 return ( pRsp );
|
||
\ ??ZDO_ParseMgmtLqiRsp_1:
|
||
\ 000091 02.... LJMP ?Subroutine3 & 0xFFFF
|
||
2805 }
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine17:
|
||
\ 000000 12.... LCALL ?Subroutine209 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_335:
|
||
\ 000003 8A82 MOV DPL,R2
|
||
\ 000005 8B83 MOV DPH,R3
|
||
\ 000007 E5.. MOV A,?V7
|
||
\ 000009 REQUIRE ??Subroutine286_0
|
||
\ 000009 ; // Fall through to label ??Subroutine286_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine286_0:
|
||
\ 000000 F0 MOVX @DPTR,A
|
||
\ 000001 A3 INC DPTR
|
||
\ 000002 E5.. MOV A,?V4
|
||
\ 000004 12.... LCALL ?Subroutine170 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_684:
|
||
\ 000007 A3 INC DPTR
|
||
\ 000008 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine209:
|
||
\ 000000 EA MOV A,R2
|
||
\ 000001 2404 ADD A,#0x4
|
||
\ 000003 F5.. MOV ?V0,A
|
||
\ 000005 E4 CLR A
|
||
\ 000006 35.. ADDC A,?V3
|
||
\ 000008 F5.. MOV ?V1,A
|
||
\ 00000A 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ??Subroutine287_0:
|
||
\ 000000 12.... LCALL ?Subroutine170 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_685:
|
||
\ 000003 A3 INC DPTR
|
||
\ 000004 A3 INC DPTR
|
||
\ 000005 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine195:
|
||
\ 000000 A4 MUL AB
|
||
\ 000001 A9F0 MOV R1,B
|
||
\ 000003 2404 ADD A,#0x4
|
||
\ 000005 REQUIRE ??Subroutine288_0
|
||
\ 000005 ; // Fall through to label ??Subroutine288_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine127:
|
||
\ 000000 12.... LCALL ?Subroutine195 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_687:
|
||
\ 000003 8A.. MOV ?V2,R2
|
||
\ 000005 8B.. MOV ?V3,R3
|
||
\ 000007 EA MOV A,R2
|
||
\ 000008 4B ORL A,R3
|
||
\ 000009 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine77:
|
||
\ 000000 12.... LCALL ?Subroutine194 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_314:
|
||
\ 000003 F5.. MOV ?V7,A
|
||
\ 000005 A3 INC DPTR
|
||
\ 000006 AE82 MOV R6,DPL
|
||
\ 000008 AF83 MOV R7,DPH
|
||
\ 00000A 22 RET
|
||
2806
|
||
2807 /*********************************************************************
|
||
2808 * @fn ZDO_ParseMgmNwkDiscRsp
|
||
2809 *
|
||
2810 * @brief This function parses the incoming Management
|
||
2811 * Network Discover response.
|
||
2812 *
|
||
2813 * @param inMsg - incoming message
|
||
2814 *
|
||
2815 * @return pointer to parsed response. This structure was
|
||
2816 * allocated using osal_mem_alloc, so it must be freed
|
||
2817 * by the calling function [osal_mem_free()].
|
||
2818 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
2819 ZDO_MgmNwkDiscRsp_t *ZDO_ParseMgmNwkDiscRsp( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ParseMgmNwkDiscRsp:
|
||
2820 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V5
|
||
\ 000000 REQUIRE ?V6
|
||
\ 000000 REQUIRE ?V7
|
||
\ 000000 74F0 MOV A,#-0x10
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 16
|
||
\ 000005 ; Auto size: 0
|
||
2821 ZDO_MgmNwkDiscRsp_t *pRsp;
|
||
2822 uint8 status;
|
||
2823 uint8 networkCount = 0;
|
||
\ 000005 75..00 MOV ?V0,#0x0
|
||
2824 uint8 startIndex = 0;
|
||
\ 000008 75..00 MOV ?V1,#0x0
|
||
2825 uint8 networkListCount = 0;
|
||
\ 00000B 75..00 MOV ?V7,#0x0
|
||
2826 uint8 *msg;
|
||
2827
|
||
2828 msg = inMsg->asdu;
|
||
\ 00000E 12.... LCALL ?Subroutine80 & 0xFFFF
|
||
2829 status = *msg++;
|
||
\ ??CrossCallReturnLabel_129:
|
||
\ 000011 F5.. MOV ?V6,A
|
||
\ 000013 A3 INC DPTR
|
||
\ 000014 AE82 MOV R6,DPL
|
||
\ 000016 AF83 MOV R7,DPH
|
||
2830
|
||
2831 if ( status == ZSuccess )
|
||
\ 000018 700F JNZ ??ZDO_ParseMgmNwkDiscRsp_0
|
||
2832 {
|
||
2833 networkCount = *msg++;
|
||
\ 00001A E0 MOVX A,@DPTR
|
||
\ 00001B F5.. MOV ?V0,A
|
||
2834 startIndex = *msg++;
|
||
\ 00001D 12.... LCALL ?Subroutine110 & 0xFFFF
|
||
2835 networkListCount = *msg++;
|
||
2836 }
|
||
\ ??CrossCallReturnLabel_179:
|
||
\ 000020 F5.. MOV ?V7,A
|
||
\ 000022 EE MOV A,R6
|
||
\ 000023 2403 ADD A,#0x3
|
||
\ 000025 FE MOV R6,A
|
||
\ 000026 5001 JNC ??ZDO_ParseMgmNwkDiscRsp_0
|
||
\ 000028 0F INC R7
|
||
2837
|
||
2838 // Allocate a buffer big enough to handle the list.
|
||
2839 pRsp = (ZDO_MgmNwkDiscRsp_t *)osal_mem_alloc( sizeof( ZDO_MgmNwkDiscRsp_t )
|
||
2840 + (networkListCount * sizeof( mgmtNwkDiscItem_t )) );
|
||
\ ??ZDO_ParseMgmNwkDiscRsp_0:
|
||
\ 000029 ; Setup parameters for call to function osal_mem_alloc
|
||
\ 000029 E5.. MOV A,?V7
|
||
\ 00002B F5.. MOV ?V2,A
|
||
\ 00002D 75..00 MOV ?V3,#0x0
|
||
\ 000030 7404 MOV A,#0x4
|
||
\ 000032 78.. MOV R0,#?V2
|
||
\ 000034 12.... LCALL ?S_SHL
|
||
\ 000037 E5.. MOV A,?V2
|
||
\ 000039 2404 ADD A,#0x4
|
||
\ 00003B FA MOV R2,A
|
||
\ 00003C E4 CLR A
|
||
\ 00003D 35.. ADDC A,?V3
|
||
\ 00003F FB MOV R3,A
|
||
\ 000040 12.... LCALL `??osal_mem_alloc::?relay`; Banked call to: osal_mem_alloc
|
||
\ 000043 8A.. MOV ?V2,R2
|
||
\ 000045 8B.. MOV ?V3,R3
|
||
2841 if ( pRsp )
|
||
\ 000047 EA MOV A,R2
|
||
\ 000048 4B ORL A,R3
|
||
\ 000049 7003 JNZ $+5
|
||
\ 00004B 02.... LJMP ??ZDO_ParseMgmNwkDiscRsp_1 & 0xFFFF
|
||
2842 {
|
||
2843 uint8 x;
|
||
2844 mgmtNwkDiscItem_t *pList;
|
||
2845
|
||
2846 pRsp->status = status;
|
||
\ 00004E 8A82 MOV DPL,R2
|
||
\ 000050 8B83 MOV DPH,R3
|
||
\ 000052 E5.. MOV A,?V6
|
||
\ 000054 F0 MOVX @DPTR,A
|
||
2847 pRsp->networkCount = networkCount;
|
||
\ 000055 A3 INC DPTR
|
||
\ 000056 E5.. MOV A,?V0
|
||
\ 000058 12.... LCALL ??Subroutine278_0 & 0xFFFF
|
||
2848 pRsp->startIndex = startIndex;
|
||
\ ??CrossCallReturnLabel_628:
|
||
\ 00005B A3 INC DPTR
|
||
\ 00005C 12.... LCALL ?Subroutine21 & 0xFFFF
|
||
2849 pRsp->networkListCount = networkListCount;
|
||
\ ??CrossCallReturnLabel_679:
|
||
\ 00005F E5.. MOV A,?V7
|
||
\ 000061 F0 MOVX @DPTR,A
|
||
2850 pList = pRsp->list;
|
||
\ 000062 12.... LCALL ?Subroutine209 & 0xFFFF
|
||
2851
|
||
2852 for ( x = 0; x < networkListCount; x++ )
|
||
\ ??CrossCallReturnLabel_334:
|
||
\ 000065 75..00 MOV ?V4,#0x0
|
||
\ 000068 807D SJMP ??ZDO_ParseMgmNwkDiscRsp_2
|
||
2853 {
|
||
2854 osal_cpyExtAddr(pList->extendedPANID, msg); //Copy extended PAN ID
|
||
\ ??ZDO_ParseMgmNwkDiscRsp_3:
|
||
\ 00006A ; Setup parameters for call to function sAddrExtCpy
|
||
\ 00006A EE MOV A,R6
|
||
\ 00006B FC MOV R4,A
|
||
\ 00006C EF MOV A,R7
|
||
\ 00006D FD MOV R5,A
|
||
\ 00006E AA.. MOV R2,?V0
|
||
\ 000070 AB.. MOV R3,?V1
|
||
\ 000072 12.... LCALL `??sAddrExtCpy::?relay`; Banked call to: sAddrExtCpy
|
||
2855 pList->PANId = BUILD_UINT16( msg[0], msg[1] );
|
||
\ 000075 12.... LCALL ?Subroutine70 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_109:
|
||
\ 000078 A3 INC DPTR
|
||
\ 000079 F0 MOVX @DPTR,A
|
||
\ 00007A A3 INC DPTR
|
||
\ 00007B E9 MOV A,R1
|
||
\ 00007C 12.... LCALL ?Subroutine24 & 0xFFFF
|
||
2856 msg += Z_EXTADDR_LEN;
|
||
2857
|
||
2858 pList->logicalChannel = *msg++;
|
||
\ ??CrossCallReturnLabel_20:
|
||
\ 00007F 85..82 MOV DPL,?V0
|
||
\ 000082 85..83 MOV DPH,?V1
|
||
\ 000085 A3 INC DPTR
|
||
\ 000086 A3 INC DPTR
|
||
\ 000087 A3 INC DPTR
|
||
\ 000088 A3 INC DPTR
|
||
\ 000089 A3 INC DPTR
|
||
\ 00008A A3 INC DPTR
|
||
\ 00008B A3 INC DPTR
|
||
\ 00008C A3 INC DPTR
|
||
\ 00008D A3 INC DPTR
|
||
\ 00008E A3 INC DPTR
|
||
\ 00008F F0 MOVX @DPTR,A
|
||
2859 pList->stackProfile = (*msg) & 0x0F;
|
||
\ 000090 EE MOV A,R6
|
||
\ 000091 2409 ADD A,#0x9
|
||
\ 000093 F8 MOV R0,A
|
||
\ 000094 12.... LCALL ?Subroutine141 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_227:
|
||
\ 000097 C0E0 PUSH A
|
||
\ 000099 E5.. MOV A,?V0
|
||
\ 00009B 240B ADD A,#0xb
|
||
\ 00009D 12.... LCALL ??Subroutine284_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_661:
|
||
\ 0000A0 D0E0 POP A
|
||
\ 0000A2 12.... LCALL ?Subroutine47 & 0xFFFF
|
||
2860 pList->version = (*msg++ >> 4) & 0x0F;
|
||
\ ??CrossCallReturnLabel_67:
|
||
\ 0000A5 C0E0 PUSH A
|
||
\ 0000A7 12.... LCALL ?Subroutine157 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_666:
|
||
\ 0000AA D0E0 POP A
|
||
\ 0000AC F0 MOVX @DPTR,A
|
||
2861 pList->beaconOrder = (*msg) & 0x0F;
|
||
\ 0000AD EE MOV A,R6
|
||
\ 0000AE 240A ADD A,#0xa
|
||
\ 0000B0 08 INC R0
|
||
\ 0000B1 12.... LCALL ?Subroutine141 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_228:
|
||
\ 0000B4 C0E0 PUSH A
|
||
\ 0000B6 E5.. MOV A,?V0
|
||
\ 0000B8 240D ADD A,#0xd
|
||
\ 0000BA 12.... LCALL ??Subroutine284_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_662:
|
||
\ 0000BD D0E0 POP A
|
||
\ 0000BF 12.... LCALL ?Subroutine47 & 0xFFFF
|
||
2862 pList->superFrameOrder = (*msg++ >> 4) & 0x0F;
|
||
\ ??CrossCallReturnLabel_68:
|
||
\ 0000C2 C0E0 PUSH A
|
||
\ 0000C4 12.... LCALL ?Subroutine147 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_239:
|
||
\ 0000C7 D0E0 POP A
|
||
\ 0000C9 12.... LCALL ?Subroutine33 & 0xFFFF
|
||
2863 pList->permitJoining = *msg++;
|
||
\ ??CrossCallReturnLabel_41:
|
||
\ 0000CC C0E0 PUSH A
|
||
\ 0000CE 12.... LCALL ?Subroutine144 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_233:
|
||
\ 0000D1 D0E0 POP A
|
||
\ 0000D3 F0 MOVX @DPTR,A
|
||
\ 0000D4 EE MOV A,R6
|
||
\ 0000D5 240C ADD A,#0xc
|
||
\ 0000D7 FE MOV R6,A
|
||
\ 0000D8 5001 JNC ??ZDO_ParseMgmNwkDiscRsp_4
|
||
\ 0000DA 0F INC R7
|
||
2864 pList++;
|
||
\ ??ZDO_ParseMgmNwkDiscRsp_4:
|
||
\ 0000DB E5.. MOV A,?V0
|
||
\ 0000DD 2410 ADD A,#0x10
|
||
\ 0000DF F5.. MOV ?V0,A
|
||
\ 0000E1 5002 JNC ??ZDO_ParseMgmNwkDiscRsp_5
|
||
\ 0000E3 05.. INC ?V1
|
||
2865 }
|
||
\ ??ZDO_ParseMgmNwkDiscRsp_5:
|
||
\ 0000E5 05.. INC ?V4
|
||
\ ??ZDO_ParseMgmNwkDiscRsp_2:
|
||
\ 0000E7 E5.. MOV A,?V4
|
||
\ 0000E9 C3 CLR C
|
||
\ 0000EA 95.. SUBB A,?V7
|
||
\ 0000EC 5003 JNC $+5
|
||
\ 0000EE 02.... LJMP ??ZDO_ParseMgmNwkDiscRsp_3 & 0xFFFF
|
||
2866 }
|
||
2867
|
||
2868 return ( pRsp );
|
||
\ ??ZDO_ParseMgmNwkDiscRsp_1:
|
||
\ 0000F1 02.... LJMP ?Subroutine3 & 0xFFFF
|
||
2869 }
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine141:
|
||
\ 000000 E4 CLR A
|
||
\ 000001 3F ADDC A,R7
|
||
\ 000002 F9 MOV R1,A
|
||
\ 000003 8882 MOV DPL,R0
|
||
\ 000005 F583 MOV DPH,A
|
||
\ 000007 E0 MOVX A,@DPTR
|
||
\ 000008 540F ANL A,#0xf
|
||
\ 00000A 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine47:
|
||
\ 000000 12.... LCALL ?Subroutine211 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_340:
|
||
\ 000003 E0 MOVX A,@DPTR
|
||
\ 000004 C4 SWAP A
|
||
\ 000005 540F ANL A,#0xf
|
||
\ 000007 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine21:
|
||
\ 000000 E5.. MOV A,?V1
|
||
\ 000002 REQUIRE ??Subroutine287_0
|
||
\ 000002 ; // Fall through to label ??Subroutine287_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine110:
|
||
\ 000000 A3 INC DPTR
|
||
\ 000001 E0 MOVX A,@DPTR
|
||
\ 000002 F5.. MOV ?V1,A
|
||
\ 000004 8E82 MOV DPL,R6
|
||
\ 000006 8F83 MOV DPH,R7
|
||
\ 000008 A3 INC DPTR
|
||
\ 000009 A3 INC DPTR
|
||
\ 00000A E0 MOVX A,@DPTR
|
||
\ 00000B 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine70:
|
||
\ 000000 8E82 MOV DPL,R6
|
||
\ 000002 12.... LCALL ?Subroutine175 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_291:
|
||
\ 000005 22 RET
|
||
2870
|
||
2871 /*********************************************************************
|
||
2872 * @fn ZDO_ParseMgmtRtgRsp
|
||
2873 *
|
||
2874 * @brief This function parses the incoming Management
|
||
2875 * Routing response.
|
||
2876 *
|
||
2877 * @param inMsg - incoming message
|
||
2878 *
|
||
2879 * @return a pointer to parsed response structure (NULL if not allocated).
|
||
2880 * This structure was allocated using osal_mem_alloc, so it must be freed
|
||
2881 * by the calling function [osal_mem_free()].
|
||
2882 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
2883 ZDO_MgmtRtgRsp_t *ZDO_ParseMgmtRtgRsp( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ParseMgmtRtgRsp:
|
||
2884 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V5
|
||
\ 000000 74F2 MOV A,#-0xe
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 14
|
||
\ 000005 ; Auto size: 0
|
||
2885 ZDO_MgmtRtgRsp_t *pRsp;
|
||
2886 uint8 status;
|
||
2887 uint8 rtgCount = 0;
|
||
\ 000005 75..00 MOV ?V4,#0x0
|
||
2888 uint8 startIndex = 0;
|
||
\ 000008 75..00 MOV ?V1,#0x0
|
||
2889 uint8 rtgListCount = 0;
|
||
\ 00000B 75..00 MOV ?V0,#0x0
|
||
2890 uint8 *msg;
|
||
2891
|
||
2892 msg = inMsg->asdu;
|
||
\ 00000E 12.... LCALL ?Subroutine80 & 0xFFFF
|
||
2893
|
||
2894 status = *msg++;
|
||
\ ??CrossCallReturnLabel_130:
|
||
\ 000011 F5.. MOV ?V5,A
|
||
\ 000013 A3 INC DPTR
|
||
\ 000014 AE82 MOV R6,DPL
|
||
\ 000016 AF83 MOV R7,DPH
|
||
2895 if ( status == ZSuccess )
|
||
\ 000018 700F JNZ ??ZDO_ParseMgmtRtgRsp_0
|
||
2896 {
|
||
2897 rtgCount = *msg++;
|
||
\ 00001A E0 MOVX A,@DPTR
|
||
\ 00001B F5.. MOV ?V4,A
|
||
2898 startIndex = *msg++;
|
||
\ 00001D 12.... LCALL ?Subroutine110 & 0xFFFF
|
||
2899 rtgListCount = *msg++;
|
||
2900 }
|
||
\ ??CrossCallReturnLabel_180:
|
||
\ 000020 F5.. MOV ?V0,A
|
||
\ 000022 EE MOV A,R6
|
||
\ 000023 2403 ADD A,#0x3
|
||
\ 000025 FE MOV R6,A
|
||
\ 000026 5001 JNC ??ZDO_ParseMgmtRtgRsp_0
|
||
\ 000028 0F INC R7
|
||
2901
|
||
2902 // Allocate a buffer big enough to handle the list
|
||
2903 pRsp = (ZDO_MgmtRtgRsp_t *)osal_mem_alloc(
|
||
2904 sizeof( ZDO_MgmtRtgRsp_t ) + (rtgListCount * sizeof( rtgItem_t )) );
|
||
\ ??ZDO_ParseMgmtRtgRsp_0:
|
||
\ 000029 ; Setup parameters for call to function osal_mem_alloc
|
||
\ 000029 E5.. MOV A,?V0
|
||
\ 00002B 75F007 MOV B,#0x7
|
||
\ 00002E 12.... LCALL ?Subroutine195 & 0xFFFF
|
||
2905 if ( pRsp )
|
||
\ ??CrossCallReturnLabel_686:
|
||
\ 000031 EA MOV A,R2
|
||
\ 000032 4B ORL A,R3
|
||
\ 000033 6058 JZ ??ZDO_ParseMgmtRtgRsp_1
|
||
2906 {
|
||
2907 uint8 x;
|
||
2908 rtgItem_t *pList = pRsp->list;
|
||
\ 000035 EA MOV A,R2
|
||
\ 000036 2404 ADD A,#0x4
|
||
\ 000038 F8 MOV R0,A
|
||
\ 000039 E4 CLR A
|
||
\ 00003A 3B ADDC A,R3
|
||
\ 00003B F9 MOV R1,A
|
||
2909 pRsp->status = status;
|
||
\ 00003C 8A82 MOV DPL,R2
|
||
\ 00003E 8B83 MOV DPH,R3
|
||
\ 000040 E5.. MOV A,?V5
|
||
\ 000042 12.... LCALL ??Subroutine286_0 & 0xFFFF
|
||
2910 pRsp->rtgCount = rtgCount;
|
||
2911 pRsp->startIndex = startIndex;
|
||
\ ??CrossCallReturnLabel_678:
|
||
\ 000045 12.... LCALL ?Subroutine21 & 0xFFFF
|
||
2912 pRsp->rtgListCount = rtgListCount;
|
||
\ ??CrossCallReturnLabel_680:
|
||
\ 000048 E5.. MOV A,?V0
|
||
\ 00004A F0 MOVX @DPTR,A
|
||
2913
|
||
2914 for ( x = 0; x < rtgListCount; x++ )
|
||
\ 00004B 7C00 MOV R4,#0x0
|
||
\ 00004D 8038 SJMP ??ZDO_ParseMgmtRtgRsp_2
|
||
2915 {
|
||
2916 pList->dstAddress = BUILD_UINT16( msg[0], msg[1] );
|
||
\ ??ZDO_ParseMgmtRtgRsp_3:
|
||
\ 00004F 8E82 MOV DPL,R6
|
||
\ 000051 12.... LCALL ?Subroutine92 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_150:
|
||
\ 000054 F0 MOVX @DPTR,A
|
||
\ 000055 A3 INC DPTR
|
||
\ 000056 E5.. MOV A,?V3
|
||
\ 000058 12.... LCALL ?Subroutine27 & 0xFFFF
|
||
2917 msg += 2;
|
||
2918 pList->status = *msg++;
|
||
\ ??CrossCallReturnLabel_26:
|
||
\ 00005B 8882 MOV DPL,R0
|
||
\ 00005D 8983 MOV DPH,R1
|
||
\ 00005F A3 INC DPTR
|
||
\ 000060 A3 INC DPTR
|
||
\ 000061 A3 INC DPTR
|
||
\ 000062 A3 INC DPTR
|
||
\ 000063 A3 INC DPTR
|
||
\ 000064 F0 MOVX @DPTR,A
|
||
\ 000065 EE MOV A,R6
|
||
\ 000066 2403 ADD A,#0x3
|
||
\ 000068 FE MOV R6,A
|
||
\ 000069 5001 JNC ??ZDO_ParseMgmtRtgRsp_4
|
||
\ 00006B 0F INC R7
|
||
2919 pList->nextHopAddress = BUILD_UINT16( msg[0], msg[1] );
|
||
\ ??ZDO_ParseMgmtRtgRsp_4:
|
||
\ 00006C F582 MOV DPL,A
|
||
\ 00006E 12.... LCALL ?Subroutine92 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_151:
|
||
\ 000071 A3 INC DPTR
|
||
\ 000072 A3 INC DPTR
|
||
\ 000073 F0 MOVX @DPTR,A
|
||
\ 000074 A3 INC DPTR
|
||
\ 000075 E5.. MOV A,?V3
|
||
\ 000077 F0 MOVX @DPTR,A
|
||
2920 msg += 2;
|
||
\ 000078 EE MOV A,R6
|
||
\ 000079 2402 ADD A,#0x2
|
||
\ 00007B FE MOV R6,A
|
||
\ 00007C 5001 JNC ??ZDO_ParseMgmtRtgRsp_5
|
||
\ 00007E 0F INC R7
|
||
2921 pList++;
|
||
\ ??ZDO_ParseMgmtRtgRsp_5:
|
||
\ 00007F E8 MOV A,R0
|
||
\ 000080 2407 ADD A,#0x7
|
||
\ 000082 F8 MOV R0,A
|
||
\ 000083 5001 JNC ??ZDO_ParseMgmtRtgRsp_6
|
||
\ 000085 09 INC R1
|
||
2922 }
|
||
\ ??ZDO_ParseMgmtRtgRsp_6:
|
||
\ 000086 0C INC R4
|
||
\ ??ZDO_ParseMgmtRtgRsp_2:
|
||
\ 000087 EC MOV A,R4
|
||
\ 000088 C3 CLR C
|
||
\ 000089 95.. SUBB A,?V0
|
||
\ 00008B 40C2 JC ??ZDO_ParseMgmtRtgRsp_3
|
||
2923 }
|
||
2924
|
||
2925 return ( pRsp );
|
||
\ ??ZDO_ParseMgmtRtgRsp_1:
|
||
\ 00008D 02.... LJMP ??Subroutine297_0 & 0xFFFF
|
||
2926 }
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine92:
|
||
\ 000000 8F83 MOV DPH,R7
|
||
\ 000002 E0 MOVX A,@DPTR
|
||
\ 000003 F5.. MOV ?V4,A
|
||
\ 000005 A3 INC DPTR
|
||
\ 000006 E0 MOVX A,@DPTR
|
||
\ 000007 F5.. MOV ?V3,A
|
||
\ 000009 E5.. MOV A,?V4
|
||
\ 00000B 8882 MOV DPL,R0
|
||
\ 00000D 8983 MOV DPH,R1
|
||
\ 00000F 22 RET
|
||
2927
|
||
2928 /*********************************************************************
|
||
2929 * @fn ZDO_ParseMgmtBindRsp
|
||
2930 *
|
||
2931 * @brief This function parses the incoming Management
|
||
2932 * Binding response.
|
||
2933 *
|
||
2934 * @param inMsg - pointer to message to parse
|
||
2935 *
|
||
2936 * @return a pointer to parsed response structure (NULL if not allocated).
|
||
2937 * This structure was allocated using osal_mem_alloc, so it must be freed
|
||
2938 * by the calling function [osal_mem_free()].
|
||
2939 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
2940 ZDO_MgmtBindRsp_t *ZDO_ParseMgmtBindRsp( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ParseMgmtBindRsp:
|
||
2941 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V5
|
||
\ 000000 REQUIRE ?V6
|
||
\ 000000 REQUIRE ?V7
|
||
\ 000000 74F0 MOV A,#-0x10
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 16
|
||
\ 000005 ; Auto size: 0
|
||
2942 ZDO_MgmtBindRsp_t *pRsp;
|
||
2943 uint8 status;
|
||
2944 uint8 bindingCount = 0;
|
||
\ 000005 75..00 MOV ?V4,#0x0
|
||
2945 uint8 startIndex = 0;
|
||
\ 000008 75..00 MOV ?V5,#0x0
|
||
2946 uint8 bindingListCount = 0;
|
||
\ 00000B 75..00 MOV ?V6,#0x0
|
||
2947 uint8 *msg;
|
||
2948
|
||
2949 msg = inMsg->asdu;
|
||
\ 00000E 12.... LCALL ?Subroutine77 & 0xFFFF
|
||
2950
|
||
2951 status = *msg++;
|
||
2952 if ( status == ZSuccess )
|
||
\ ??CrossCallReturnLabel_123:
|
||
\ 000011 7017 JNZ ??ZDO_ParseMgmtBindRsp_0
|
||
2953 {
|
||
2954 bindingCount = *msg++;
|
||
\ 000013 E0 MOVX A,@DPTR
|
||
\ 000014 F5.. MOV ?V4,A
|
||
2955 startIndex = *msg++;
|
||
\ 000016 A3 INC DPTR
|
||
\ 000017 E0 MOVX A,@DPTR
|
||
\ 000018 F5.. MOV ?V5,A
|
||
2956 bindingListCount = *msg++;
|
||
\ 00001A 8E82 MOV DPL,R6
|
||
\ 00001C 8F83 MOV DPH,R7
|
||
\ 00001E A3 INC DPTR
|
||
\ 00001F A3 INC DPTR
|
||
\ 000020 E0 MOVX A,@DPTR
|
||
\ 000021 F5.. MOV ?V6,A
|
||
\ 000023 EE MOV A,R6
|
||
\ 000024 2403 ADD A,#0x3
|
||
\ 000026 FE MOV R6,A
|
||
\ 000027 5001 JNC ??ZDO_ParseMgmtBindRsp_0
|
||
\ 000029 0F INC R7
|
||
2957 }
|
||
2958
|
||
2959 // Allocate a buffer big enough to handle the list
|
||
2960 pRsp = (ZDO_MgmtBindRsp_t *)osal_mem_alloc(
|
||
2961 (sizeof ( ZDO_MgmtBindRsp_t ) + (bindingListCount * sizeof( apsBindingItem_t ))) );
|
||
\ ??ZDO_ParseMgmtBindRsp_0:
|
||
\ 00002A ; Setup parameters for call to function osal_mem_alloc
|
||
\ 00002A E5.. MOV A,?V6
|
||
\ 00002C 75F015 MOV B,#0x15
|
||
\ 00002F 12.... LCALL ?Subroutine127 & 0xFFFF
|
||
2962 if ( pRsp )
|
||
\ ??CrossCallReturnLabel_211:
|
||
\ 000032 604F JZ ??ZDO_ParseMgmtBindRsp_1
|
||
2963 {
|
||
2964 uint8 x;
|
||
2965 apsBindingItem_t *pList = pRsp->list;
|
||
\ 000034 12.... LCALL ?Subroutine17 & 0xFFFF
|
||
2966 pRsp->status = status;
|
||
2967 pRsp->bindingCount = bindingCount;
|
||
2968 pRsp->startIndex = startIndex;
|
||
\ ??CrossCallReturnLabel_677:
|
||
\ 000037 E5.. MOV A,?V5
|
||
\ 000039 12.... LCALL ??Subroutine287_0 & 0xFFFF
|
||
2969 pRsp->bindingListCount = bindingListCount;
|
||
\ ??CrossCallReturnLabel_682:
|
||
\ 00003C E5.. MOV A,?V6
|
||
\ 00003E F0 MOVX @DPTR,A
|
||
2970
|
||
2971 for ( x = 0; x < bindingListCount; x++ )
|
||
\ 00003F 75..00 MOV ?V4,#0x0
|
||
\ 000042 8015 SJMP ??ZDO_ParseMgmtBindRsp_2
|
||
2972 {
|
||
2973 osal_cpyExtAddr( pList->srcAddr, msg );
|
||
2974 msg += Z_EXTADDR_LEN;
|
||
2975 pList->srcEP = *msg++;
|
||
2976
|
||
2977 // Get the Cluster ID
|
||
2978
|
||
2979 pList->clusterID = BUILD_UINT16( msg[0], msg[1] );
|
||
2980 msg += 2;
|
||
2981 pList->dstAddr.addrMode = *msg++;
|
||
2982 if ( pList->dstAddr.addrMode == Addr64Bit )
|
||
2983 {
|
||
2984 osal_cpyExtAddr( pList->dstAddr.addr.extAddr, msg );
|
||
2985 msg += Z_EXTADDR_LEN;
|
||
2986 pList->dstEP = *msg++;
|
||
2987 }
|
||
2988 else
|
||
2989 {
|
||
2990 pList->dstAddr.addr.shortAddr = BUILD_UINT16( msg[0], msg[1] );
|
||
\ ??ZDO_ParseMgmtBindRsp_3:
|
||
\ 000044 12.... LCALL ?Subroutine76 & 0xFFFF
|
||
2991 msg += 2;
|
||
2992 }
|
||
\ ??CrossCallReturnLabel_121:
|
||
\ 000047 12.... LCALL ??Subroutine271_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_575:
|
||
\ 00004A 5001 JNC ??ZDO_ParseMgmtBindRsp_4
|
||
\ 00004C 0F INC R7
|
||
2993
|
||
2994 pList++;
|
||
\ ??ZDO_ParseMgmtBindRsp_4:
|
||
\ 00004D E5.. MOV A,?V0
|
||
\ 00004F 2415 ADD A,#0x15
|
||
\ 000051 F5.. MOV ?V0,A
|
||
\ 000053 5002 JNC ??ZDO_ParseMgmtBindRsp_5
|
||
\ 000055 05.. INC ?V1
|
||
\ ??ZDO_ParseMgmtBindRsp_5:
|
||
\ 000057 05.. INC ?V4
|
||
\ ??ZDO_ParseMgmtBindRsp_2:
|
||
\ 000059 E5.. MOV A,?V4
|
||
\ 00005B C3 CLR C
|
||
\ 00005C 95.. SUBB A,?V6
|
||
\ 00005E 5023 JNC ??ZDO_ParseMgmtBindRsp_1
|
||
\ 000060 ; Setup parameters for call to function sAddrExtCpy
|
||
\ 000060 12.... LCALL ?Subroutine44 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_700:
|
||
\ 000063 5001 JNC ??ZDO_ParseMgmtBindRsp_6
|
||
\ 000065 0F INC R7
|
||
\ ??ZDO_ParseMgmtBindRsp_6:
|
||
\ 000066 12.... LCALL ?Subroutine11 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_5:
|
||
\ 000069 5001 JNC ??ZDO_ParseMgmtBindRsp_7
|
||
\ 00006B 0F INC R7
|
||
\ ??ZDO_ParseMgmtBindRsp_7:
|
||
\ 00006C 7403 MOV A,#0x3
|
||
\ 00006E 68 XRL A,R0
|
||
\ 00006F 70D3 JNZ ??ZDO_ParseMgmtBindRsp_3
|
||
\ 000071 ; Setup parameters for call to function sAddrExtCpy
|
||
\ 000071 12.... LCALL ?Subroutine52 & 0xFFFF
|
||
2995 }
|
||
2996 }
|
||
\ ??CrossCallReturnLabel_582:
|
||
\ 000074 C0E0 PUSH A
|
||
\ 000076 12.... LCALL ?Subroutine155 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_259:
|
||
\ 000079 D0E0 POP A
|
||
\ 00007B 12.... LCALL ??Subroutine290_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_702:
|
||
\ 00007E 50CD JNC ??ZDO_ParseMgmtBindRsp_4
|
||
\ 000080 0F INC R7
|
||
\ ??ZDO_ParseMgmtBindRsp_8:
|
||
\ 000081 80CA SJMP ??ZDO_ParseMgmtBindRsp_4
|
||
2997
|
||
2998 return ( pRsp );
|
||
\ ??ZDO_ParseMgmtBindRsp_1:
|
||
\ 000083 02.... LJMP ?Subroutine3 & 0xFFFF
|
||
2999 }
|
||
3000
|
||
3001 /*********************************************************************
|
||
3002 * @fn ZDO_ParseUserDescRsp
|
||
3003 *
|
||
3004 * @brief This function parses the incoming User
|
||
3005 * Descriptor Response.
|
||
3006 *
|
||
3007 * @param inMsg - incoming response message
|
||
3008 *
|
||
3009 * @return a pointer to parsed response structure (NULL if not allocated).
|
||
3010 * This structure was allocated using osal_mem_alloc, so it must be freed
|
||
3011 * by the calling function [osal_mem_free()].
|
||
3012 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
3013 ZDO_UserDescRsp_t *ZDO_ParseUserDescRsp( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ParseUserDescRsp:
|
||
3014 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V5
|
||
\ 000000 REQUIRE ?V6
|
||
\ 000000 74F1 MOV A,#-0xf
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 15
|
||
\ 000005 ; Auto size: 0
|
||
3015 ZDO_UserDescRsp_t *pRsp;
|
||
3016 uint8 *msg;
|
||
3017 uint8 descLen = 0;
|
||
\ 000005 75..00 MOV ?V0,#0x0
|
||
3018
|
||
3019 msg = inMsg->asdu;
|
||
\ 000008 12.... LCALL ?Subroutine74 & 0xFFFF
|
||
3020
|
||
3021 if ( msg[0] == ZSuccess )
|
||
\ ??CrossCallReturnLabel_703:
|
||
\ 00000B 7006 JNZ ??ZDO_ParseUserDescRsp_0
|
||
3022 {
|
||
3023 descLen = msg[3];
|
||
\ 00000D A3 INC DPTR
|
||
\ 00000E A3 INC DPTR
|
||
\ 00000F A3 INC DPTR
|
||
\ 000010 E0 MOVX A,@DPTR
|
||
\ 000011 F5.. MOV ?V0,A
|
||
3024 }
|
||
3025
|
||
3026 pRsp = (ZDO_UserDescRsp_t *)osal_mem_alloc( sizeof ( ZDO_UserDescRsp_t ) + descLen );
|
||
\ ??ZDO_ParseUserDescRsp_0:
|
||
\ 000013 ; Setup parameters for call to function osal_mem_alloc
|
||
\ 000013 E5.. MOV A,?V0
|
||
\ 000015 12.... LCALL ?Subroutine153 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_632:
|
||
\ 000018 8A.. MOV ?V2,R2
|
||
\ 00001A 8B.. MOV ?V3,R3
|
||
3027 if ( pRsp )
|
||
\ 00001C EA MOV A,R2
|
||
\ 00001D 4B ORL A,R3
|
||
\ 00001E 604E JZ ??ZDO_ParseUserDescRsp_1
|
||
3028 {
|
||
3029 pRsp->status = msg[0];
|
||
\ 000020 8E82 MOV DPL,R6
|
||
\ 000022 8F83 MOV DPH,R7
|
||
\ 000024 12.... LCALL ?Subroutine121 & 0xFFFF
|
||
3030 pRsp->nwkAddr = BUILD_UINT16( msg[1], msg[2] );
|
||
\ ??CrossCallReturnLabel_199:
|
||
\ 000027 8E82 MOV DPL,R6
|
||
\ 000029 8F83 MOV DPH,R7
|
||
\ 00002B A3 INC DPTR
|
||
\ 00002C E0 MOVX A,@DPTR
|
||
\ 00002D FA MOV R2,A
|
||
\ 00002E 8E82 MOV DPL,R6
|
||
\ 000030 8F83 MOV DPH,R7
|
||
\ 000032 A3 INC DPTR
|
||
\ 000033 12.... LCALL ??Subroutine228_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_367:
|
||
\ 000036 85..82 MOV DPL,?V2
|
||
\ 000039 8B83 MOV DPH,R3
|
||
\ 00003B A3 INC DPTR
|
||
\ 00003C 12.... LCALL ??Subroutine295_0 & 0xFFFF
|
||
3031 pRsp->length = descLen;
|
||
\ ??CrossCallReturnLabel_727:
|
||
\ 00003F 85..82 MOV DPL,?V2
|
||
\ 000042 8B83 MOV DPH,R3
|
||
\ 000044 A3 INC DPTR
|
||
\ 000045 A3 INC DPTR
|
||
\ 000046 A3 INC DPTR
|
||
\ 000047 E5.. MOV A,?V0
|
||
\ 000049 F0 MOVX @DPTR,A
|
||
3032 if ( descLen )
|
||
\ 00004A 6022 JZ ??ZDO_ParseUserDescRsp_1
|
||
3033 {
|
||
3034 osal_memcpy( pRsp->desc, &msg[4], descLen );
|
||
\ 00004C ; Setup parameters for call to function osal_memcpy
|
||
\ 00004C EE MOV A,R6
|
||
\ 00004D 2404 ADD A,#0x4
|
||
\ 00004F F5.. MOV ?V4,A
|
||
\ 000051 E4 CLR A
|
||
\ 000052 3F ADDC A,R7
|
||
\ 000053 F5.. MOV ?V5,A
|
||
\ 000055 88.. MOV ?V6,R0
|
||
\ 000057 78.. MOV R0,#?V4
|
||
\ 000059 12.... LCALL ?PUSH_XSTACK_I_THREE
|
||
\ 00005C AC.. MOV R4,?V0
|
||
\ 00005E 7D00 MOV R5,#0x0
|
||
\ 000060 E5.. MOV A,?V2
|
||
\ 000062 2404 ADD A,#0x4
|
||
\ 000064 FA MOV R2,A
|
||
\ 000065 E4 CLR A
|
||
\ 000066 35.. ADDC A,?V3
|
||
\ 000068 12.... LCALL ?Subroutine152 & 0xFFFF
|
||
3035 }
|
||
3036 }
|
||
\ ??CrossCallReturnLabel_635:
|
||
\ 00006B 12.... LCALL ?DEALLOC_XSTACK8
|
||
3037
|
||
3038 return ( pRsp );
|
||
\ ??ZDO_ParseUserDescRsp_1:
|
||
\ 00006E AA.. MOV R2,?V2
|
||
\ 000070 AB.. MOV R3,?V3
|
||
\ 000072 02.... LJMP ?Subroutine6 & 0xFFFF
|
||
3039 }
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine74:
|
||
\ 000000 12.... LCALL ?Subroutine200 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_708:
|
||
\ 000003 REQUIRE ??Subroutine291_0
|
||
\ 000003 ; // Fall through to label ??Subroutine291_0
|
||
3040
|
||
3041 /*********************************************************************
|
||
3042 * @fn ZDO_ParseSimpleDescBuf
|
||
3043 *
|
||
3044 * @brief Parse a byte sequence representation of a Simple Descriptor.
|
||
3045 *
|
||
3046 * @param buf - pointer to a byte array representing a Simple Desc.
|
||
3047 * @param desc - SimpleDescriptionFormat_t *
|
||
3048 *
|
||
3049 * This routine allocates storage for the cluster IDs because
|
||
3050 * they are 16-bit and need to be aligned to be properly processed.
|
||
3051 * This routine returns non-zero if an allocation fails.
|
||
3052 *
|
||
3053 * NOTE: This means that the caller or user of the input structure
|
||
3054 * is responsible for freeing the memory
|
||
3055 *
|
||
3056 * @return 0: success
|
||
3057 * 1: failure due to malloc failure.
|
||
3058 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
3059 uint8 ZDO_ParseSimpleDescBuf( uint8 *buf, SimpleDescriptionFormat_t *desc )
|
||
\ ZDO_ParseSimpleDescBuf:
|
||
3060 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V5
|
||
\ 000000 74F2 MOV A,#-0xe
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 14
|
||
\ 000005 ; Auto size: 0
|
||
\ 000005 EB MOV A,R3
|
||
\ 000006 8C.. MOV ?V0,R4
|
||
\ 000008 8D.. MOV ?V1,R5
|
||
3061 uint8 num, i;
|
||
3062
|
||
3063 desc->EndPoint = *buf++;
|
||
\ 00000A 12.... LCALL ?Subroutine29 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_630:
|
||
\ 00000D AE82 MOV R6,DPL
|
||
\ 00000F AF83 MOV R7,DPH
|
||
3064 desc->AppProfId = BUILD_UINT16( buf[0], buf[1] );
|
||
\ 000011 E0 MOVX A,@DPTR
|
||
\ 000012 12.... LCALL ?Subroutine96 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_738:
|
||
\ 000015 12.... LCALL ?Subroutine20 & 0xFFFF
|
||
3065 buf += 2;
|
||
\ ??CrossCallReturnLabel_574:
|
||
\ 000018 5001 JNC ??ZDO_ParseSimpleDescBuf_0
|
||
\ 00001A 0F INC R7
|
||
3066 desc->AppDeviceId = BUILD_UINT16( buf[0], buf[1] );
|
||
\ ??ZDO_ParseSimpleDescBuf_0:
|
||
\ 00001B F582 MOV DPL,A
|
||
\ 00001D 8F83 MOV DPH,R7
|
||
\ 00001F 12.... LCALL ?Subroutine91 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_149:
|
||
\ 000022 F0 MOVX @DPTR,A
|
||
\ 000023 A3 INC DPTR
|
||
\ 000024 E9 MOV A,R1
|
||
\ 000025 12.... LCALL ?Subroutine27 & 0xFFFF
|
||
3067 buf += 2;
|
||
3068 desc->AppDevVer = *buf >> 4;
|
||
\ ??CrossCallReturnLabel_27:
|
||
\ 000028 C4 SWAP A
|
||
\ 000029 540F ANL A,#0xf
|
||
3069
|
||
3070 desc->Reserved = 0;
|
||
\ 00002B 8C82 MOV DPL,R4
|
||
\ 00002D 8D83 MOV DPH,R5
|
||
\ 00002F A3 INC DPTR
|
||
\ 000030 A3 INC DPTR
|
||
\ 000031 A3 INC DPTR
|
||
\ 000032 A3 INC DPTR
|
||
\ 000033 A3 INC DPTR
|
||
\ 000034 12.... LCALL ?Subroutine45 & 0xFFFF
|
||
3071 buf++;
|
||
3072
|
||
3073 // move in input cluster list (if any). allocate aligned memory.
|
||
3074 num = desc->AppNumInClusters = *buf++;
|
||
\ ??CrossCallReturnLabel_63:
|
||
\ 000037 F5.. MOV ?V4,A
|
||
\ 000039 EE MOV A,R6
|
||
\ 00003A 2404 ADD A,#0x4
|
||
\ 00003C FE MOV R6,A
|
||
\ 00003D 5001 JNC ??ZDO_ParseSimpleDescBuf_1
|
||
\ 00003F 0F INC R7
|
||
\ ??ZDO_ParseSimpleDescBuf_1:
|
||
\ 000040 8C82 MOV DPL,R4
|
||
\ 000042 8D83 MOV DPH,R5
|
||
\ 000044 A3 INC DPTR
|
||
\ 000045 A3 INC DPTR
|
||
\ 000046 A3 INC DPTR
|
||
\ 000047 A3 INC DPTR
|
||
\ 000048 A3 INC DPTR
|
||
\ 000049 A3 INC DPTR
|
||
\ 00004A E5.. MOV A,?V4
|
||
\ 00004C F0 MOVX @DPTR,A
|
||
3075 if ( num )
|
||
\ 00004D 6026 JZ ??ZDO_ParseSimpleDescBuf_2
|
||
3076 {
|
||
3077 if (!(desc->pAppInClusterList = (uint16 *)osal_mem_alloc(num*sizeof(uint16))))
|
||
\ 00004F ; Setup parameters for call to function osal_mem_alloc
|
||
\ 00004F 12.... LCALL ??Subroutine269_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_565:
|
||
\ 000052 2407 ADD A,#0x7
|
||
\ 000054 F5.. MOV ?V2,A
|
||
\ 000056 E4 CLR A
|
||
\ 000057 35.. ADDC A,?V1
|
||
\ 000059 85..82 MOV DPL,?V2
|
||
\ 00005C 12.... LCALL ??Subroutine267_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_560:
|
||
\ 00005F 607B JZ ??ZDO_ParseSimpleDescBuf_3
|
||
3078 {
|
||
3079 // malloc failed. we're done.
|
||
3080 return 1;
|
||
3081 }
|
||
3082 for (i=0; i<num; ++i)
|
||
\ 000061 7800 MOV R0,#0x0
|
||
\ 000063 800A SJMP ??ZDO_ParseSimpleDescBuf_4
|
||
3083 {
|
||
3084 desc->pAppInClusterList[i] = BUILD_UINT16( buf[0], buf[1] );
|
||
\ ??ZDO_ParseSimpleDescBuf_5:
|
||
\ 000065 12.... LCALL ?Subroutine62 & 0xFFFF
|
||
3085 buf += 2;
|
||
3086 }
|
||
\ ??CrossCallReturnLabel_93:
|
||
\ 000068 12.... LCALL ?Subroutine48 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_69:
|
||
\ 00006B 5001 JNC ??ZDO_ParseSimpleDescBuf_6
|
||
\ 00006D 0F INC R7
|
||
\ ??ZDO_ParseSimpleDescBuf_6:
|
||
\ 00006E 08 INC R0
|
||
\ ??ZDO_ParseSimpleDescBuf_4:
|
||
\ 00006F E8 MOV A,R0
|
||
\ 000070 C3 CLR C
|
||
\ 000071 95.. SUBB A,?V4
|
||
\ 000073 40F0 JC ??ZDO_ParseSimpleDescBuf_5
|
||
3087 }
|
||
3088
|
||
3089 // move in output cluster list (if any). allocate aligned memory.
|
||
3090 num = desc->AppNumOutClusters = *buf++;
|
||
\ ??ZDO_ParseSimpleDescBuf_2:
|
||
\ 000075 8E82 MOV DPL,R6
|
||
\ 000077 8F83 MOV DPH,R7
|
||
\ 000079 E0 MOVX A,@DPTR
|
||
\ 00007A F5.. MOV ?V2,A
|
||
\ 00007C A3 INC DPTR
|
||
\ 00007D AE82 MOV R6,DPL
|
||
\ 00007F AF83 MOV R7,DPH
|
||
\ 000081 85..82 MOV DPL,?V0
|
||
\ 000084 85..83 MOV DPH,?V1
|
||
\ 000087 A3 INC DPTR
|
||
\ 000088 A3 INC DPTR
|
||
\ 000089 A3 INC DPTR
|
||
\ 00008A A3 INC DPTR
|
||
\ 00008B A3 INC DPTR
|
||
\ 00008C A3 INC DPTR
|
||
\ 00008D A3 INC DPTR
|
||
\ 00008E A3 INC DPTR
|
||
\ 00008F A3 INC DPTR
|
||
\ 000090 F0 MOVX @DPTR,A
|
||
3091 if (num)
|
||
\ 000091 6064 JZ ??ZDO_ParseSimpleDescBuf_7
|
||
3092 {
|
||
3093 if (!(desc->pAppOutClusterList = (uint16 *)osal_mem_alloc(num*sizeof(uint16))))
|
||
\ 000093 ; Setup parameters for call to function osal_mem_alloc
|
||
\ 000093 12.... LCALL ?Subroutine132 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_219:
|
||
\ 000096 8B.. MOV ?V5,R3
|
||
\ 000098 A9.. MOV R1,?V5
|
||
\ 00009A 85..82 MOV DPL,?V0
|
||
\ 00009D 85..83 MOV DPH,?V1
|
||
\ 0000A0 A3 INC DPTR
|
||
\ 0000A1 A3 INC DPTR
|
||
\ 0000A2 A3 INC DPTR
|
||
\ 0000A3 A3 INC DPTR
|
||
\ 0000A4 A3 INC DPTR
|
||
\ 0000A5 A3 INC DPTR
|
||
\ 0000A6 A3 INC DPTR
|
||
\ 0000A7 A3 INC DPTR
|
||
\ 0000A8 A3 INC DPTR
|
||
\ 0000A9 A3 INC DPTR
|
||
\ 0000AA 12.... LCALL ??Subroutine268_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_559:
|
||
\ 0000AD 7031 JNZ ??ZDO_ParseSimpleDescBuf_8
|
||
3094 {
|
||
3095 // malloc failed. free input cluster list memory if there is any
|
||
3096 if ( desc->pAppInClusterList != NULL )
|
||
\ 0000AF 85..82 MOV DPL,?V0
|
||
\ 0000B2 85..83 MOV DPH,?V1
|
||
\ 0000B5 A3 INC DPTR
|
||
\ 0000B6 A3 INC DPTR
|
||
\ 0000B7 A3 INC DPTR
|
||
\ 0000B8 A3 INC DPTR
|
||
\ 0000B9 A3 INC DPTR
|
||
\ 0000BA A3 INC DPTR
|
||
\ 0000BB A3 INC DPTR
|
||
\ 0000BC 12.... LCALL ??Subroutine260_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_516:
|
||
\ 0000BF 601B JZ ??ZDO_ParseSimpleDescBuf_3
|
||
3097 {
|
||
3098 osal_mem_free(desc->pAppInClusterList);
|
||
\ 0000C1 E5.. MOV A,?V0
|
||
\ 0000C3 2407 ADD A,#0x7
|
||
\ 0000C5 F5.. MOV ?V2,A
|
||
\ 0000C7 E4 CLR A
|
||
\ 0000C8 35.. ADDC A,?V1
|
||
\ 0000CA F5.. MOV ?V3,A
|
||
\ 0000CC ; Setup parameters for call to function osal_mem_free
|
||
\ 0000CC 85..82 MOV DPL,?V2
|
||
\ 0000CF 12.... LCALL ??Subroutine240_0 & 0xFFFF
|
||
3099
|
||
3100 desc->pAppInClusterList = NULL;
|
||
\ ??CrossCallReturnLabel_412:
|
||
\ 0000D2 85..82 MOV DPL,?V2
|
||
\ 0000D5 85..83 MOV DPH,?V3
|
||
\ 0000D8 E4 CLR A
|
||
\ 0000D9 F0 MOVX @DPTR,A
|
||
\ 0000DA A3 INC DPTR
|
||
\ 0000DB F0 MOVX @DPTR,A
|
||
3101 }
|
||
3102 return 1;
|
||
\ ??ZDO_ParseSimpleDescBuf_3:
|
||
\ 0000DC 7901 MOV R1,#0x1
|
||
\ 0000DE 8019 SJMP ??ZDO_ParseSimpleDescBuf_9
|
||
3103 }
|
||
3104 for (i=0; i<num; ++i)
|
||
\ ??ZDO_ParseSimpleDescBuf_8:
|
||
\ 0000E0 7800 MOV R0,#0x0
|
||
\ 0000E2 800D SJMP ??ZDO_ParseSimpleDescBuf_10
|
||
3105 {
|
||
3106 desc->pAppOutClusterList[i] = BUILD_UINT16( buf[0], buf[1] );
|
||
\ ??ZDO_ParseSimpleDescBuf_11:
|
||
\ 0000E4 12.... LCALL ?Subroutine62 & 0xFFFF
|
||
3107 buf += 2;
|
||
3108 }
|
||
\ ??CrossCallReturnLabel_94:
|
||
\ 0000E7 A3 INC DPTR
|
||
\ 0000E8 A3 INC DPTR
|
||
\ 0000E9 A3 INC DPTR
|
||
\ 0000EA 12.... LCALL ?Subroutine48 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_70:
|
||
\ 0000ED 5001 JNC ??ZDO_ParseSimpleDescBuf_12
|
||
\ 0000EF 0F INC R7
|
||
\ ??ZDO_ParseSimpleDescBuf_12:
|
||
\ 0000F0 08 INC R0
|
||
\ ??ZDO_ParseSimpleDescBuf_10:
|
||
\ 0000F1 E8 MOV A,R0
|
||
\ 0000F2 C3 CLR C
|
||
\ 0000F3 95.. SUBB A,?V2
|
||
\ 0000F5 40ED JC ??ZDO_ParseSimpleDescBuf_11
|
||
3109 }
|
||
3110 return 0;
|
||
\ ??ZDO_ParseSimpleDescBuf_7:
|
||
\ 0000F7 7900 MOV R1,#0x0
|
||
\ ??ZDO_ParseSimpleDescBuf_9:
|
||
\ 0000F9 02.... LJMP ??Subroutine297_0 & 0xFFFF
|
||
3111 }
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine96:
|
||
\ 000000 FA MOV R2,A
|
||
\ 000001 REQUIRE ??Subroutine296_0
|
||
\ 000001 ; // Fall through to label ??Subroutine296_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine62:
|
||
\ 000000 8E82 MOV DPL,R6
|
||
\ 000002 8F83 MOV DPH,R7
|
||
\ 000004 E0 MOVX A,@DPTR
|
||
\ 000005 FC MOV R4,A
|
||
\ 000006 A3 INC DPTR
|
||
\ 000007 E0 MOVX A,@DPTR
|
||
\ 000008 FA MOV R2,A
|
||
\ 000009 E4 CLR A
|
||
\ 00000A CA XCH A,R2
|
||
\ 00000B FB MOV R3,A
|
||
\ 00000C EC MOV A,R4
|
||
\ 00000D 2A ADD A,R2
|
||
\ 00000E E4 CLR A
|
||
\ 00000F 3B ADDC A,R3
|
||
\ 000010 FD MOV R5,A
|
||
\ 000011 E8 MOV A,R0
|
||
\ 000012 25E0 ADD A,0xE0 /* A */
|
||
\ 000014 FA MOV R2,A
|
||
\ 000015 E4 CLR A
|
||
\ 000016 33 RLC A
|
||
\ 000017 FB MOV R3,A
|
||
\ 000018 85..82 MOV DPL,?V0
|
||
\ 00001B 85..83 MOV DPH,?V1
|
||
\ 00001E 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine48:
|
||
\ 000000 A3 INC DPTR
|
||
\ 000001 A3 INC DPTR
|
||
\ 000002 A3 INC DPTR
|
||
\ 000003 A3 INC DPTR
|
||
\ 000004 A3 INC DPTR
|
||
\ 000005 A3 INC DPTR
|
||
\ 000006 A3 INC DPTR
|
||
\ 000007 E0 MOVX A,@DPTR
|
||
\ 000008 2A ADD A,R2
|
||
\ 000009 F9 MOV R1,A
|
||
\ 00000A A3 INC DPTR
|
||
\ 00000B E0 MOVX A,@DPTR
|
||
\ 00000C 3B ADDC A,R3
|
||
\ 00000D 8982 MOV DPL,R1
|
||
\ 00000F F583 MOV DPH,A
|
||
\ 000011 EC MOV A,R4
|
||
\ 000012 F0 MOVX @DPTR,A
|
||
\ 000013 A3 INC DPTR
|
||
\ 000014 ED MOV A,R5
|
||
\ 000015 F0 MOVX @DPTR,A
|
||
\ 000016 EE MOV A,R6
|
||
\ 000017 2402 ADD A,#0x2
|
||
\ 000019 FE MOV R6,A
|
||
\ 00001A 22 RET
|
||
3112
|
||
3113 /*********************************************************************
|
||
3114 * @fn ZDO_ParseDeviceAnnce
|
||
3115 *
|
||
3116 * @brief Parse a Device Announce message.
|
||
3117 *
|
||
3118 * @param inMsg - Incoming message
|
||
3119 * @param pAnnce - place to put the parsed information
|
||
3120 *
|
||
3121 * @return none
|
||
3122 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
3123 void ZDO_ParseDeviceAnnce( zdoIncomingMsg_t *inMsg, ZDO_DeviceAnnce_t *pAnnce )
|
||
\ ZDO_ParseDeviceAnnce:
|
||
3124 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 74F6 MOV A,#-0xa
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 10
|
||
\ 000005 ; Auto size: 0
|
||
\ 000005 8C.. MOV ?V0,R4
|
||
\ 000007 8D.. MOV ?V1,R5
|
||
3125 uint8 *msg;
|
||
3126
|
||
3127 // Parse incoming message
|
||
3128 msg = inMsg->asdu;
|
||
\ 000009 12.... LCALL ?Subroutine74 & 0xFFFF
|
||
3129 pAnnce->nwkAddr = BUILD_UINT16( msg[0], msg[1] );
|
||
\ ??CrossCallReturnLabel_704:
|
||
\ 00000C 12.... LCALL ?Subroutine96 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_739:
|
||
\ 00000F 12.... LCALL ??Subroutine271_0 & 0xFFFF
|
||
3130 msg += 2;
|
||
\ ??CrossCallReturnLabel_576:
|
||
\ 000012 5001 JNC ??ZDO_ParseDeviceAnnce_0
|
||
\ 000014 0F INC R7
|
||
3131 osal_cpyExtAddr( pAnnce->extAddr, msg );
|
||
\ ??ZDO_ParseDeviceAnnce_0:
|
||
\ 000015 ; Setup parameters for call to function sAddrExtCpy
|
||
\ 000015 FC MOV R4,A
|
||
\ 000016 EF MOV A,R7
|
||
\ 000017 FD MOV R5,A
|
||
\ 000018 E5.. MOV A,?V0
|
||
\ 00001A 2402 ADD A,#0x2
|
||
\ 00001C 12.... LCALL ??Subroutine274_0 & 0xFFFF
|
||
3132 msg += Z_EXTADDR_LEN;
|
||
3133 pAnnce->capabilities = *msg;
|
||
\ ??CrossCallReturnLabel_584:
|
||
\ 00001F 85..82 MOV DPL,?V0
|
||
\ 000022 85..83 MOV DPH,?V1
|
||
\ 000025 A3 INC DPTR
|
||
\ 000026 A3 INC DPTR
|
||
\ 000027 A3 INC DPTR
|
||
\ 000028 A3 INC DPTR
|
||
\ 000029 A3 INC DPTR
|
||
\ 00002A A3 INC DPTR
|
||
\ 00002B A3 INC DPTR
|
||
\ 00002C A3 INC DPTR
|
||
\ 00002D A3 INC DPTR
|
||
\ 00002E A3 INC DPTR
|
||
\ 00002F F0 MOVX @DPTR,A
|
||
3134 }
|
||
\ 000030 02.... LJMP ??Subroutine225_0 & 0xFFFF
|
||
3135
|
||
3136 /*********************************************************************
|
||
3137 * @fn ZDO_ParseMgmtNwkUpdateNotify
|
||
3138 *
|
||
3139 * @brief This function handles parsing of the incoming Management
|
||
3140 * Network Update notify.
|
||
3141 *
|
||
3142 * @param inMsg - incoming message (request)
|
||
3143 *
|
||
3144 * @return a pointer to parsed response structure (NULL if not allocated).
|
||
3145 * This structure was allocated using osal_mem_alloc, so it must be freed
|
||
3146 * by the calling function [osal_mem_free()].
|
||
3147 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine42:
|
||
\ 000000 12.... LCALL ?Subroutine188 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_305:
|
||
\ 000003 REQUIRE ??Subroutine294_0
|
||
\ 000003 ; // Fall through to label ??Subroutine294_0
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
3148 ZDO_MgmtNwkUpdateNotify_t *ZDO_ParseMgmtNwkUpdateNotify( zdoIncomingMsg_t *inMsg )
|
||
\ ZDO_ParseMgmtNwkUpdateNotify:
|
||
3149 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 REQUIRE ?V2
|
||
\ 000000 REQUIRE ?V3
|
||
\ 000000 REQUIRE ?V4
|
||
\ 000000 REQUIRE ?V5
|
||
\ 000000 74F2 MOV A,#-0xe
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 14
|
||
\ 000005 ; Auto size: 6
|
||
\ 000005 74FA MOV A,#-0x6
|
||
\ 000007 12.... LCALL ?ALLOC_XSTACK8
|
||
3150 uint8 status;
|
||
3151 uint32 scannedChannels = 0;
|
||
\ 00000A 75..00 MOV ?V0,#0x0
|
||
\ 00000D 75..00 MOV ?V1,#0x0
|
||
\ 000010 75..00 MOV ?V2,#0x0
|
||
\ 000013 75..00 MOV ?V3,#0x0
|
||
3152 uint16 totalTransmissions = 0;
|
||
\ 000016 75..00 MOV ?V4,#0x0
|
||
\ 000019 75..00 MOV ?V5,#0x0
|
||
3153 uint16 transmissionFailures = 0;
|
||
\ 00001C 7E00 MOV R6,#0x0
|
||
\ 00001E 7F00 MOV R7,#0x0
|
||
3154 uint8 listCount = 0;
|
||
\ 000020 7402 MOV A,#0x2
|
||
\ 000022 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000025 E4 CLR A
|
||
\ 000026 12.... LCALL ?Subroutine32 & 0xFFFF
|
||
3155 uint8 *msg = inMsg->asdu;
|
||
\ ??CrossCallReturnLabel_39:
|
||
\ 000029 F8 MOV R0,A
|
||
\ 00002A A3 INC DPTR
|
||
\ 00002B E0 MOVX A,@DPTR
|
||
\ 00002C F9 MOV R1,A
|
||
\ 00002D 85..82 MOV DPL,?XSP + 0
|
||
\ 000030 85..83 MOV DPH,?XSP + 1
|
||
\ 000033 12.... LCALL ?Subroutine30 & 0xFFFF
|
||
3156 ZDO_MgmtNwkUpdateNotify_t *pRsp;
|
||
3157
|
||
3158 status = *msg++;
|
||
\ ??CrossCallReturnLabel_31:
|
||
\ 000036 12.... LCALL ??Subroutine239_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_392:
|
||
\ 000039 C0E0 PUSH A
|
||
\ 00003B 7405 MOV A,#0x5
|
||
\ 00003D 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000040 D0E0 POP A
|
||
\ 000042 12.... LCALL ?Subroutine31 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_36:
|
||
\ 000045 2401 ADD A,#0x1
|
||
\ 000047 12.... LCALL ?Subroutine42 & 0xFFFF
|
||
3159 if ( status == ZSuccess )
|
||
\ ??CrossCallReturnLabel_735:
|
||
\ 00004A 7405 MOV A,#0x5
|
||
\ 00004C 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00004F E0 MOVX A,@DPTR
|
||
\ 000050 704F JNZ ??CrossCallReturnLabel_736
|
||
3160 {
|
||
3161 scannedChannels = osal_build_uint32( msg, 4 );
|
||
\ 000052 ; Setup parameters for call to function osal_build_uint32
|
||
\ 000052 7904 MOV R1,#0x4
|
||
\ 000054 12.... LCALL ??Subroutine255_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_493:
|
||
\ 000057 12.... LCALL `??osal_build_uint32::?relay`; Banked call to: osal_build_uint32
|
||
\ 00005A 8A.. MOV ?V0,R2
|
||
\ 00005C 8B.. MOV ?V1,R3
|
||
\ 00005E 8C.. MOV ?V2,R4
|
||
\ 000060 8D.. MOV ?V3,R5
|
||
3162 msg += 4;
|
||
\ 000062 85..82 MOV DPL,?XSP + 0
|
||
\ 000065 85..83 MOV DPH,?XSP + 1
|
||
\ 000068 E0 MOVX A,@DPTR
|
||
\ 000069 2404 ADD A,#0x4
|
||
\ 00006B 12.... LCALL ?Subroutine9 & 0xFFFF
|
||
3163 totalTransmissions = BUILD_UINT16( msg[0], msg[1] );
|
||
\ ??CrossCallReturnLabel_0:
|
||
\ 00006E F5.. MOV ?V4,A
|
||
\ 000070 E4 CLR A
|
||
\ 000071 39 ADDC A,R1
|
||
\ 000072 F5.. MOV ?V5,A
|
||
3164 msg += 2;
|
||
\ 000074 85..82 MOV DPL,?XSP + 0
|
||
\ 000077 85..83 MOV DPH,?XSP + 1
|
||
\ 00007A E0 MOVX A,@DPTR
|
||
\ 00007B 2402 ADD A,#0x2
|
||
\ 00007D 12.... LCALL ?Subroutine9 & 0xFFFF
|
||
3165 transmissionFailures = BUILD_UINT16( msg[0], msg[1] );
|
||
\ ??CrossCallReturnLabel_1:
|
||
\ 000080 FE MOV R6,A
|
||
\ 000081 E4 CLR A
|
||
\ 000082 39 ADDC A,R1
|
||
\ 000083 FF MOV R7,A
|
||
3166 msg += 2;
|
||
3167 listCount = *msg++;
|
||
\ 000084 85..82 MOV DPL,?XSP + 0
|
||
\ 000087 85..83 MOV DPH,?XSP + 1
|
||
\ 00008A 12.... LCALL ?Subroutine112 & 0xFFFF
|
||
3168 }
|
||
\ ??CrossCallReturnLabel_185:
|
||
\ 00008D A3 INC DPTR
|
||
\ 00008E A3 INC DPTR
|
||
\ 00008F E0 MOVX A,@DPTR
|
||
\ 000090 C0E0 PUSH A
|
||
\ 000092 7402 MOV A,#0x2
|
||
\ 000094 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000097 D0E0 POP A
|
||
\ 000099 12.... LCALL ?Subroutine31 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_37:
|
||
\ 00009C 2403 ADD A,#0x3
|
||
\ 00009E 12.... LCALL ?Subroutine42 & 0xFFFF
|
||
3169
|
||
3170 pRsp = (ZDO_MgmtNwkUpdateNotify_t *)osal_mem_alloc( sizeof ( ZDO_MgmtNwkUpdateNotify_t ) + listCount );
|
||
\ ??CrossCallReturnLabel_736:
|
||
\ 0000A1 ; Setup parameters for call to function osal_mem_alloc
|
||
\ 0000A1 7402 MOV A,#0x2
|
||
\ 0000A3 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000A6 E0 MOVX A,@DPTR
|
||
\ 0000A7 240A ADD A,#0xa
|
||
\ 0000A9 12.... LCALL ??Subroutine279_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_633:
|
||
\ 0000AC 7403 MOV A,#0x3
|
||
\ 0000AE 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000B1 12.... LCALL ??Subroutine242_0 & 0xFFFF
|
||
3171
|
||
3172 if ( pRsp )
|
||
\ ??CrossCallReturnLabel_435:
|
||
\ 0000B4 7403 MOV A,#0x3
|
||
\ 0000B6 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000B9 12.... LCALL ??Subroutine260_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_517:
|
||
\ 0000BC 7003 JNZ $+5
|
||
\ 0000BE 02.... LJMP ??ZDO_ParseMgmtNwkUpdateNotify_0 & 0xFFFF
|
||
3173 {
|
||
3174 pRsp->status = status;
|
||
\ 0000C1 7405 MOV A,#0x5
|
||
\ 0000C3 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000C6 E0 MOVX A,@DPTR
|
||
\ 0000C7 C0E0 PUSH A
|
||
\ 0000C9 7403 MOV A,#0x3
|
||
\ 0000CB 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000CE 12.... LCALL ?Subroutine112 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_186:
|
||
\ 0000D1 D0E0 POP A
|
||
\ 0000D3 F0 MOVX @DPTR,A
|
||
3175 pRsp->scannedChannels = scannedChannels;
|
||
\ 0000D4 7403 MOV A,#0x3
|
||
\ 0000D6 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000D9 12.... LCALL ?Subroutine88 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_143:
|
||
\ 0000DC A3 INC DPTR
|
||
\ 0000DD 78.. MOV R0,#?V0
|
||
\ 0000DF 12.... LCALL ?L_MOV_TO_X
|
||
3176 pRsp->totalTransmissions = totalTransmissions;
|
||
\ 0000E2 7403 MOV A,#0x3
|
||
\ 0000E4 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000E7 12.... LCALL ?Subroutine81 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_742:
|
||
\ 0000EA A3 INC DPTR
|
||
\ 0000EB E5.. MOV A,?V4
|
||
\ 0000ED F0 MOVX @DPTR,A
|
||
\ 0000EE A3 INC DPTR
|
||
\ 0000EF E5.. MOV A,?V5
|
||
\ 0000F1 F0 MOVX @DPTR,A
|
||
3177 pRsp->transmissionFailures = transmissionFailures;
|
||
\ 0000F2 7403 MOV A,#0x3
|
||
\ 0000F4 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 0000F7 12.... LCALL ??Subroutine275_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_594:
|
||
\ 0000FA 2407 ADD A,#0x7
|
||
\ 0000FC F582 MOV DPL,A
|
||
\ 0000FE E4 CLR A
|
||
\ 0000FF 38 ADDC A,R0
|
||
\ 000100 F583 MOV DPH,A
|
||
\ 000102 EE MOV A,R6
|
||
\ 000103 F0 MOVX @DPTR,A
|
||
\ 000104 A3 INC DPTR
|
||
\ 000105 EF MOV A,R7
|
||
\ 000106 F0 MOVX @DPTR,A
|
||
3178 pRsp->listCount = listCount;
|
||
\ 000107 7402 MOV A,#0x2
|
||
\ 000109 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00010C E0 MOVX A,@DPTR
|
||
\ 00010D C0E0 PUSH A
|
||
\ 00010F 7403 MOV A,#0x3
|
||
\ 000111 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000114 12.... LCALL ?Subroutine89 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_145:
|
||
\ 000117 D0E0 POP A
|
||
\ 000119 F0 MOVX @DPTR,A
|
||
3179
|
||
3180 // Allocate a buffer big enough to handle the list.
|
||
3181 if ( listCount > 0 )
|
||
\ 00011A 7402 MOV A,#0x2
|
||
\ 00011C 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00011F E0 MOVX A,@DPTR
|
||
\ 000120 6028 JZ ??ZDO_ParseMgmtNwkUpdateNotify_0
|
||
3182 {
|
||
3183 osal_memcpy( pRsp->energyValues, msg, listCount );
|
||
\ 000122 ; Setup parameters for call to function osal_memcpy
|
||
\ 000122 85..82 MOV DPL,?XSP + 0
|
||
\ 000125 85..83 MOV DPH,?XSP + 1
|
||
\ 000128 12.... LCALL ?Subroutine66 & 0xFFFF
|
||
3184 }
|
||
3185 }
|
||
\ ??CrossCallReturnLabel_104:
|
||
\ 00012B 12.... LCALL ?PUSH_XSTACK_I_THREE
|
||
\ 00012E 7405 MOV A,#0x5
|
||
\ 000130 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 000133 E0 MOVX A,@DPTR
|
||
\ 000134 FC MOV R4,A
|
||
\ 000135 7D00 MOV R5,#0x0
|
||
\ 000137 7406 MOV A,#0x6
|
||
\ 000139 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00013C E0 MOVX A,@DPTR
|
||
\ 00013D 240A ADD A,#0xa
|
||
\ 00013F FA MOV R2,A
|
||
\ 000140 A3 INC DPTR
|
||
\ 000141 E0 MOVX A,@DPTR
|
||
\ 000142 3400 ADDC A,#0x0
|
||
\ 000144 12.... LCALL ?Subroutine152 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_636:
|
||
\ 000147 12.... LCALL ?DEALLOC_XSTACK8
|
||
3186
|
||
3187 return ( pRsp );
|
||
\ ??ZDO_ParseMgmtNwkUpdateNotify_0:
|
||
\ 00014A 7403 MOV A,#0x3
|
||
\ 00014C 12.... LCALL ?XSTACK_DISP0_8
|
||
\ 00014F 12.... LCALL ??Subroutine256_0 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_491:
|
||
\ 000152 7406 MOV A,#0x6
|
||
\ 000154 REQUIRE ?Subroutine5
|
||
\ 000154 ; // Fall through to label ?Subroutine5
|
||
3188 }
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine9:
|
||
\ 000000 12.... LCALL ?Subroutine188 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_304:
|
||
\ 000003 12.... LCALL ?Subroutine164 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_749:
|
||
\ 000006 12.... LCALL ?Subroutine191 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_401:
|
||
\ 000009 FA MOV R2,A
|
||
\ 00000A 85..82 MOV DPL,?XSP + 0
|
||
\ 00000D 85..83 MOV DPH,?XSP + 1
|
||
\ 000010 12.... LCALL ?Subroutine192 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_743:
|
||
\ 000013 A3 INC DPTR
|
||
\ 000014 E0 MOVX A,@DPTR
|
||
\ 000015 F9 MOV R1,A
|
||
\ 000016 EA MOV A,R2
|
||
\ 000017 2E ADD A,R6
|
||
\ 000018 22 RET
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine188:
|
||
\ 000000 F8 MOV R0,A
|
||
\ 000001 A3 INC DPTR
|
||
\ 000002 E0 MOVX A,@DPTR
|
||
\ 000003 3400 ADDC A,#0x0
|
||
\ 000005 F9 MOV R1,A
|
||
\ 000006 85..82 MOV DPL,?XSP + 0
|
||
\ 000009 85..83 MOV DPH,?XSP + 1
|
||
\ 00000C 22 RET
|
||
3189
|
||
3190 /*********************************************************************
|
||
3191 * @fn ZDO_ParseMgmtNwkUpdateReq
|
||
3192 *
|
||
3193 * @brief This function handles parsing the incoming Management
|
||
3194 * Network Update request and starts the request (if needed).
|
||
3195 *
|
||
3196 * @param inMsg - incoming message (request)
|
||
3197 * @param pReq - pointer to place to parse message to
|
||
3198 *
|
||
3199 * @return none
|
||
3200 */
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
3201 void ZDO_ParseMgmtNwkUpdateReq( zdoIncomingMsg_t *inMsg, ZDO_MgmtNwkUpdateReq_t *pReq )
|
||
\ ZDO_ParseMgmtNwkUpdateReq:
|
||
3202 {
|
||
\ 000000 REQUIRE ?V0
|
||
\ 000000 REQUIRE ?V1
|
||
\ 000000 74F6 MOV A,#-0xa
|
||
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
|
||
\ 000005 ; Saved register size: 10
|
||
\ 000005 ; Auto size: 0
|
||
\ 000005 12.... LCALL ?Subroutine133 & 0xFFFF
|
||
3203 uint8 *msg = inMsg->asdu;
|
||
\ ??CrossCallReturnLabel_578:
|
||
\ 000008 12.... LCALL ?Subroutine65 & 0xFFFF
|
||
3204
|
||
3205 pReq->channelMask = osal_build_uint32( msg, 4 );
|
||
\ ??CrossCallReturnLabel_101:
|
||
\ 00000B 85..82 MOV DPL,?V0
|
||
\ 00000E 85..83 MOV DPH,?V1
|
||
\ 000011 12.... LCALL ?XSTORE_R0123
|
||
3206 msg += 4;
|
||
3207 pReq->scanDuration = *msg++;
|
||
\ 000014 8E82 MOV DPL,R6
|
||
\ 000016 8F83 MOV DPH,R7
|
||
\ 000018 A3 INC DPTR
|
||
\ 000019 A3 INC DPTR
|
||
\ 00001A A3 INC DPTR
|
||
\ 00001B A3 INC DPTR
|
||
\ 00001C E0 MOVX A,@DPTR
|
||
\ 00001D F8 MOV R0,A
|
||
\ 00001E 85..82 MOV DPL,?V0
|
||
\ 000021 85..83 MOV DPH,?V1
|
||
\ 000024 A3 INC DPTR
|
||
\ 000025 A3 INC DPTR
|
||
\ 000026 A3 INC DPTR
|
||
\ 000027 A3 INC DPTR
|
||
\ 000028 F0 MOVX @DPTR,A
|
||
3208
|
||
3209 if ( pReq->scanDuration <= 0x05 )
|
||
\ 000029 C3 CLR C
|
||
\ 00002A 9406 SUBB A,#0x6
|
||
\ 00002C 5005 JNC ??ZDO_ParseMgmtNwkUpdateReq_0
|
||
3210 {
|
||
3211 // Request is to scan over channelMask
|
||
3212 pReq->scanCount = *msg;
|
||
\ 00002E 12.... LCALL ?Subroutine95 & 0xFFFF
|
||
3213 }
|
||
\ ??CrossCallReturnLabel_158:
|
||
\ 000031 803D SJMP ??ZDO_ParseMgmtNwkUpdateReq_1
|
||
3214 else if ( ( pReq->scanDuration == 0xFE ) || ( pReq->scanDuration == 0xFF ) )
|
||
\ ??ZDO_ParseMgmtNwkUpdateReq_0:
|
||
\ 000033 85..82 MOV DPL,?V0
|
||
\ 000036 85..83 MOV DPH,?V1
|
||
\ 000039 A3 INC DPTR
|
||
\ 00003A A3 INC DPTR
|
||
\ 00003B A3 INC DPTR
|
||
\ 00003C A3 INC DPTR
|
||
\ 00003D E0 MOVX A,@DPTR
|
||
\ 00003E 64FE XRL A,#0xfe
|
||
\ 000040 600E JZ ??ZDO_ParseMgmtNwkUpdateReq_2
|
||
\ 000042 85..82 MOV DPL,?V0
|
||
\ 000045 85..83 MOV DPH,?V1
|
||
\ 000048 A3 INC DPTR
|
||
\ 000049 A3 INC DPTR
|
||
\ 00004A A3 INC DPTR
|
||
\ 00004B A3 INC DPTR
|
||
\ 00004C E0 MOVX A,@DPTR
|
||
\ 00004D F4 CPL A
|
||
\ 00004E 7021 JNZ ??ZDO_ParseMgmtNwkUpdateReq_3
|
||
3215 {
|
||
3216 // Request is to change Channel (0xFE) or apsChannelMask and NwkManagerAddr (0xFF)
|
||
3217 pReq->nwkUpdateId = *msg++;
|
||
\ ??ZDO_ParseMgmtNwkUpdateReq_2:
|
||
\ 000050 12.... LCALL ?Subroutine95 & 0xFFFF
|
||
\ ??CrossCallReturnLabel_159:
|
||
\ 000053 A3 INC DPTR
|
||
\ 000054 F0 MOVX @DPTR,A
|
||
\ 000055 EE MOV A,R6
|
||
\ 000056 2406 ADD A,#0x6
|
||
\ 000058 FE MOV R6,A
|
||
\ 000059 5001 JNC ??ZDO_ParseMgmtNwkUpdateReq_4
|
||
\ 00005B 0F INC R7
|
||
3218
|
||
3219 if ( pReq->scanDuration == 0xFF )
|
||
\ ??ZDO_ParseMgmtNwkUpdateReq_4:
|
||
\ 00005C 85..82 MOV DPL,?V0
|
||
\ 00005F 85..83 MOV DPH,?V1
|
||
\ 000062 A3 INC DPTR
|
||
\ 000063 A3 INC DPTR
|
||
\ 000064 A3 INC DPTR
|
||
\ 000065 A3 INC DPTR
|
||
\ 000066 E0 MOVX A,@DPTR
|
||
\ 000067 F4 CPL A
|
||
\ 000068 7007 JNZ ??ZDO_ParseMgmtNwkUpdateReq_3
|
||
3220 {
|
||
3221 pReq->nwkManagerAddr = BUILD_UINT16( msg[0], msg[1] );
|
||
\ 00006A 12.... LCALL ?Subroutine70 & 0xFFFF
|
||
3222 }
|
||
3223 }
|
||
\ ??CrossCallReturnLabel_110:
|
||
\ 00006D F0 MOVX @DPTR,A
|
||
\ 00006E A3 INC DPTR
|
||
\ 00006F E9 MOV A,R1
|
||
\ ??ZDO_ParseMgmtNwkUpdateReq_1:
|
||
\ 000070 F0 MOVX @DPTR,A
|
||
3224 }
|
||
\ ??ZDO_ParseMgmtNwkUpdateReq_3:
|
||
\ 000071 02.... LJMP ??Subroutine225_0 & 0xFFFF
|
||
|
||
\ In segment BANKED_CODE, align 1, keep-with-next
|
||
\ ?Subroutine95:
|
||
\ 000000 8E82 MOV DPL,R6
|
||
\ 000002 8F83 MOV DPH,R7
|
||
\ 000004 A3 INC DPTR
|
||
\ 000005 A3 INC DPTR
|
||
\ 000006 A3 INC DPTR
|
||
\ 000007 A3 INC DPTR
|
||
\ 000008 A3 INC DPTR
|
||
\ 000009 E0 MOVX A,@DPTR
|
||
\ 00000A 85..82 MOV DPL,?V0
|
||
\ 00000D 85..83 MOV DPH,?V1
|
||
\ 000010 A3 INC DPTR
|
||
\ 000011 A3 INC DPTR
|
||
\ 000012 A3 INC DPTR
|
||
\ 000013 A3 INC DPTR
|
||
\ 000014 A3 INC DPTR
|
||
\ 000015 22 RET
|
||
|
||
\ In segment XDATA_ROM_C, align 1
|
||
\ `?<Constant "StartDevice ERR">`:
|
||
\ 000000 53746172 DB "StartDevice ERR"
|
||
\ 74446576
|
||
\ 69636520
|
||
\ 45525200
|
||
|
||
\ In segment XDATA_ROM_C, align 1
|
||
\ `?<Constant "MODE unknown">`:
|
||
\ 000000 4D4F4445 DB "MODE unknown"
|
||
\ 20756E6B
|
||
\ 6E6F776E
|
||
\ 00
|
||
|
||
\ In segment XDATA_ROM_C, align 1
|
||
\ `?<Constant "End Device Bind">`:
|
||
\ 000000 456E6420 DB "End Device Bind"
|
||
\ 44657669
|
||
\ 63652042
|
||
\ 696E6400
|
||
|
||
\ In segment XDATA_ROM_C, align 1
|
||
\ `?<Constant "Success Sent">`:
|
||
\ 000000 53756363 DB "Success Sent"
|
||
\ 65737320
|
||
\ 53656E74
|
||
\ 00
|
||
|
||
\ In segment XDATA_ROM_C, align 1
|
||
\ `?<Constant "Timeout">`:
|
||
\ 000000 54696D65 DB "Timeout"
|
||
\ 6F757400
|
||
|
||
\ In segment XDATA_ROM_C, align 1
|
||
\ `?<Constant "Match Desc Req">`:
|
||
\ 000000 4D617463 DB "Match Desc Req"
|
||
\ 68204465
|
||
\ 73632052
|
||
\ 657100
|
||
|
||
\ In segment XDATA_ROM_C, align 1
|
||
\ `?<Constant "Rsp Sent">`:
|
||
\ 000000 52737020 DB "Rsp Sent"
|
||
\ 53656E74
|
||
\ 00
|
||
|
||
\ In segment XDATA_ROM_C, align 1
|
||
\ `?<Constant "Rsp Non Matched">`:
|
||
\ 000000 52737020 DB "Rsp Non Matched"
|
||
\ 4E6F6E20
|
||
\ 4D617463
|
||
\ 68656400
|
||
|
||
\ In segment XDATA_ROM_C, align 1
|
||
\ `?<Constant "Non Matched">`:
|
||
\ 000000 4E6F6E20 DB "Non Matched"
|
||
\ 4D617463
|
||
\ 68656400
|
||
3225
|
||
3226 /*********************************************************************
|
||
3227 *********************************************************************/
|
||
|
||
Maximum stack usage in bytes:
|
||
|
||
ISTACK XSTACK Function
|
||
------ ------ --------
|
||
0 0 NLME_PermitJoiningTimeout
|
||
1 69 ZDMatchSendState
|
||
0 37 -> APS_SetEndDeviceBindTimeout
|
||
0 37 -> ZDO_RemoveMatchMemory
|
||
0 45 -> ZDP_BindUnbindReq
|
||
0 42 -> ZDP_SendData
|
||
0 37 -> sAddrExtCpy
|
||
0 43 ZDO_AnyClusterMatches
|
||
1 10 ZDO_BuildSimpleDescBuf
|
||
0 44 ZDO_CompareClusterLists
|
||
0 39 ZDO_ConvertOTAClusters
|
||
0 41 ZDO_CopyMatchInfo
|
||
0 14 -> osal_mem_alloc
|
||
0 14 -> osal_mem_free
|
||
0 17 -> osal_memcpy
|
||
2 0 ZDO_EndDeviceBindMatchTimeoutCB
|
||
2 0 -> ZDMatchSendState
|
||
1 17 ZDO_EndDeviceTimeoutCB
|
||
0 12 -> HalLcdWriteString
|
||
0 17 -> ZDP_SendData
|
||
0 12 -> osal_mem_free
|
||
2 0 ZDO_Init
|
||
2 0 -> APS_ReflectorInit
|
||
2 0 -> NLME_DeviceJoiningInit
|
||
2 0 -> sAddrExtCpy
|
||
1 29 ZDO_MatchEndDeviceBind
|
||
0 24 -> APS_SetEndDeviceBindTimeout
|
||
0 24 -> ZDMatchSendState
|
||
0 28 -> ZDO_CompareClusterLists
|
||
0 24 -> ZDO_CopyMatchInfo
|
||
0 24 -> ZDO_RemoveMatchMemory
|
||
0 29 -> ZDP_SendData
|
||
0 24 -> osal_mem_alloc
|
||
0 27 -> osal_memcpy
|
||
0 24 -> osal_memset
|
||
1 14 ZDO_ParseAddrRsp
|
||
0 14 -> osal_mem_alloc
|
||
0 14 -> sAddrExtCpy
|
||
1 10 ZDO_ParseBindUnbindReq
|
||
0 10 -> sAddrExtCpy
|
||
1 52 ZDO_ParseDeviceAnnce
|
||
0 10 -> sAddrExtCpy
|
||
1 18 ZDO_ParseEPListRsp
|
||
0 15 -> osal_mem_alloc
|
||
0 18 -> osal_memcpy
|
||
1 12 ZDO_ParseEndDeviceBindReq
|
||
0 12 -> ZDO_ConvertOTAClusters
|
||
0 12 -> osal_mem_alloc
|
||
0 12 -> sAddrExtCpy
|
||
1 16 ZDO_ParseMgmNwkDiscRsp
|
||
0 16 -> osal_mem_alloc
|
||
0 16 -> sAddrExtCpy
|
||
1 16 ZDO_ParseMgmtBindRsp
|
||
0 16 -> osal_mem_alloc
|
||
0 16 -> sAddrExtCpy
|
||
1 16 ZDO_ParseMgmtLqiRsp
|
||
0 16 -> osal_mem_alloc
|
||
0 16 -> sAddrExtCpy
|
||
1 23 ZDO_ParseMgmtNwkUpdateNotify
|
||
0 20 -> osal_build_uint32
|
||
0 20 -> osal_mem_alloc
|
||
0 23 -> osal_memcpy
|
||
1 10 ZDO_ParseMgmtNwkUpdateReq
|
||
0 10 -> osal_build_uint32
|
||
1 14 ZDO_ParseMgmtRtgRsp
|
||
0 14 -> osal_mem_alloc
|
||
1 10 ZDO_ParseNodeDescRsp
|
||
1 12 ZDO_ParsePowerDescRsp
|
||
1 9 ZDO_ParseServerDiscRsp
|
||
1 23 ZDO_ParseSimpleDescBuf
|
||
0 14 -> osal_mem_alloc
|
||
0 14 -> osal_mem_free
|
||
1 9 ZDO_ParseSimpleDescRsp
|
||
0 9 -> ZDO_ParseSimpleDescBuf
|
||
1 18 ZDO_ParseUserDescRsp
|
||
0 15 -> osal_mem_alloc
|
||
0 18 -> osal_memcpy
|
||
0 21 ZDO_ProcessActiveEPReq
|
||
0 14 -> NLME_GetShortAddr
|
||
0 21 -> ZDP_EPRsp
|
||
0 14 -> afEndPoints
|
||
0 14 -> afNumEndPoints
|
||
0 29 ZDO_ProcessBindUnbindReq
|
||
0 25 -> APSME_BindRequest
|
||
0 24 -> APSME_LookupNwkAddr
|
||
0 25 -> APSME_UnBindRequest
|
||
0 24 -> NLME_GetExtAddr
|
||
0 24 -> ZDApp_NVUpdate
|
||
0 24 -> ZDP_NwkAddrReq
|
||
0 29 -> ZDP_SendData
|
||
0 24 -> sAddrExtCmp
|
||
0 24 -> sAddrExtCpy
|
||
0 42 ZDO_ProcessDeviceAnnce
|
||
0 42 -> AddrMgrEntryLookupExt
|
||
0 42 -> AddrMgrEntryLookupNwk
|
||
0 42 -> AddrMgrEntryUpdate
|
||
0 42 -> AddrMgrExtAddrSet
|
||
0 42 -> AssocChangeNwkAddr
|
||
0 42 -> AssocGetWithExt
|
||
0 42 -> AssocRemove
|
||
0 42 -> NLME_CheckNewAddrSet
|
||
0 42 -> NLME_GetCoordExtAddr
|
||
0 42 -> NLME_GetCoordShortAddr
|
||
0 42 -> NLME_GetShortAddr
|
||
0 42 -> RTG_RemoveRtgEntry
|
||
0 42 -> ZDApp_NVUpdate
|
||
0 42 -> ZDO_ParseDeviceAnnce
|
||
0 42 -> ZMacSetReq
|
||
0 42 -> nwkNeighborRemoveAllStranded
|
||
0 42 -> nwkNeighborUpdateNwkAddr
|
||
0 42 -> osal_memset
|
||
0 42 -> sAddrExtCmp
|
||
1 36 ZDO_ProcessMatchDescReq
|
||
0 29 -> HalLcdWriteScreen
|
||
0 29 -> NLME_IsAddressBroadcast
|
||
0 31 -> ZDO_AnyClusterMatches
|
||
0 29 -> ZDO_ConvertOTAClusters
|
||
0 36 -> ZDP_EPRsp
|
||
0 29 -> osal_mem_alloc
|
||
0 29 -> osal_mem_free
|
||
0 32 -> osal_memcpy
|
||
0 29 -> osal_msg_allocate
|
||
0 29 -> osal_msg_send
|
||
0 25 ZDO_ProcessMgmtBindReq
|
||
0 20 -> APSME_GetRequest
|
||
0 25 -> ZDP_MgmtBindRsp
|
||
0 20 -> osal_mem_alloc
|
||
0 20 -> osal_mem_free
|
||
1 16 ZDO_ProcessMgmtDirectJoinReq
|
||
0 11 -> NLME_DirectJoinRequest
|
||
0 16 -> ZDP_SendData
|
||
1 23 ZDO_ProcessMgmtLeaveReq
|
||
0 18 -> AddrMgrExtAddrValid
|
||
0 18 -> NLME_GetExtAddr
|
||
0 18 -> NLME_LeaveReq
|
||
0 23 -> ZDP_SendData
|
||
0 18 -> sAddrExtCmp
|
||
1 63 ZDO_ProcessMgmtLqiReq
|
||
0 58 -> AddrMgrEntryLookupNwk
|
||
0 58 -> AssocCount
|
||
0 58 -> AssocFindDevice
|
||
0 58 -> NLME_GetRequest
|
||
0 63 -> ZDP_MgmtLqiRsp
|
||
0 58 -> osal_mem_alloc
|
||
0 58 -> osal_mem_free
|
||
0 58 -> osal_memset
|
||
0 58 -> sAddrExtCpy
|
||
1 17 ZDO_ProcessMgmtNwkDiscReq
|
||
0 17 -> NLME_NwkDiscReq2
|
||
0 17 -> NLME_NwkDiscTerm
|
||
0 17 -> osal_build_uint32
|
||
1 16 ZDO_ProcessMgmtPermitJoinReq
|
||
0 11 -> NLME_PermitJoiningRequest
|
||
0 16 -> ZDP_SendData
|
||
0 22 ZDO_ProcessMgmtRtgReq
|
||
0 17 -> NLME_GetRequest
|
||
0 22 -> ZDP_MgmtRtgRsp
|
||
0 17 -> osal_mem_alloc
|
||
0 17 -> osal_mem_free
|
||
0 14 ZDO_ProcessNodeDescReq
|
||
0 14 -> ZDP_GenericRsp
|
||
0 12 -> ZDP_NodeDescMsg
|
||
0 14 ZDO_ProcessPowerDescReq
|
||
0 14 -> ZDP_GenericRsp
|
||
0 12 -> ZDP_PowerDescMsg
|
||
0 14 ZDO_ProcessServerDiscReq
|
||
0 14 -> ZDP_ServerDiscRsp
|
||
0 12 ZDO_ProcessSimpleDescReq
|
||
0 12 -> ZDP_SimpleDescMsg
|
||
0 12 -> afFindSimpleDesc
|
||
0 12 -> osal_mem_free
|
||
0 33 ZDO_ProcessUserDescReq
|
||
0 33 -> ZDP_GenericRsp
|
||
0 32 -> ZDP_UserDescRsp
|
||
0 33 -> osal_nv_read
|
||
1 40 ZDO_ProcessUserDescSet
|
||
0 40 -> ZDP_SendData
|
||
0 38 -> osal_memcpy
|
||
0 39 -> osal_nv_write
|
||
2 37 ZDO_RemoveMatchMemory
|
||
2 0 -> osal_mem_free
|
||
0 20 ZDO_StartDevice
|
||
0 20 -> HalLcdWriteScreen
|
||
0 20 -> NLME_NetworkDiscoveryRequest
|
||
0 20 -> NLME_OrphanJoinRequest
|
||
0 20 -> nwk_ScanJoiningOrphan
|
||
0 20 -> osal_start_timerEx
|
||
2 13 ZDO_UpdateAddrManager
|
||
2 13 -> AddrMgrEntryUpdate
|
||
2 13 -> AddrMgrExtAddrSet
|
||
1 12 ZDO_UpdateNwkStatus
|
||
0 12 -> NLME_GetExtAddr
|
||
0 12 -> NLME_GetShortAddr
|
||
0 12 -> osal_msg_allocate
|
||
0 12 -> osal_msg_find
|
||
0 12 -> osal_msg_send
|
||
0 12 -> osal_set_event
|
||
|
||
|
||
Segment part sizes:
|
||
|
||
Bytes Function/Label
|
||
----- --------------
|
||
16 ?<Constant "End Device Bind">
|
||
13 ?<Constant "MODE unknown">
|
||
15 ?<Constant "Match Desc Req">
|
||
12 ?<Constant "Non Matched">
|
||
16 ?<Constant "Rsp Non Matched">
|
||
9 ?<Constant "Rsp Sent">
|
||
16 ?<Constant "StartDevice ERR">
|
||
13 ?<Constant "Success Sent">
|
||
8 ?<Constant "Timeout">
|
||
5 ??Subroutine222_0
|
||
8 ??Subroutine223_0
|
||
3 ??Subroutine224_0
|
||
5 ??Subroutine225_0
|
||
5 ??Subroutine226_0
|
||
7 ??Subroutine227_0
|
||
8 ??Subroutine228_0
|
||
8 ??Subroutine229_0
|
||
5 ??Subroutine230_0
|
||
8 ??Subroutine231_0
|
||
7 ??Subroutine232_0
|
||
2 ??Subroutine233_0
|
||
9 ??Subroutine234_0
|
||
4 ??Subroutine235_0
|
||
1 ??Subroutine236_0
|
||
1 ??Subroutine237_0
|
||
1 ??Subroutine238_0
|
||
4 ??Subroutine239_0
|
||
2 ??Subroutine240_0
|
||
7 ??Subroutine241_0
|
||
1 ??Subroutine242_0
|
||
5 ??Subroutine243_0
|
||
5 ??Subroutine244_0
|
||
6 ??Subroutine245_0
|
||
4 ??Subroutine246_0
|
||
4 ??Subroutine247_0
|
||
2 ??Subroutine248_0
|
||
6 ??Subroutine249_0
|
||
1 ??Subroutine250_0
|
||
1 ??Subroutine251_0
|
||
1 ??Subroutine252_0
|
||
4 ??Subroutine253_0
|
||
6 ??Subroutine254_0
|
||
6 ??Subroutine255_0
|
||
4 ??Subroutine256_0
|
||
6 ??Subroutine257_0
|
||
4 ??Subroutine258_0
|
||
2 ??Subroutine259_0
|
||
6 ??Subroutine260_0
|
||
5 ??Subroutine261_0
|
||
8 ??Subroutine262_0
|
||
7 ??Subroutine263_0
|
||
8 ??Subroutine264_0
|
||
2 ??Subroutine265_0
|
||
9 ??Subroutine266_0
|
||
2 ??Subroutine267_0
|
||
8 ??Subroutine268_0
|
||
10 ??Subroutine269_0
|
||
6 ??Subroutine270_0
|
||
9 ??Subroutine271_0
|
||
1 ??Subroutine272_0
|
||
4 ??Subroutine273_0
|
||
9 ??Subroutine274_0
|
||
4 ??Subroutine275_0
|
||
6 ??Subroutine276_0
|
||
3 ??Subroutine277_0
|
||
4 ??Subroutine278_0
|
||
9 ??Subroutine279_0
|
||
6 ??Subroutine280_0
|
||
5 ??Subroutine281_0
|
||
6 ??Subroutine282_0
|
||
5 ??Subroutine283_0
|
||
4 ??Subroutine284_0
|
||
5 ??Subroutine285_0
|
||
9 ??Subroutine286_0
|
||
6 ??Subroutine287_0
|
||
8 ??Subroutine288_0
|
||
5 ??Subroutine289_0
|
||
6 ??Subroutine290_0
|
||
9 ??Subroutine291_0
|
||
5 ??Subroutine292_0
|
||
6 ??Subroutine293_0
|
||
1 ??Subroutine294_0
|
||
5 ??Subroutine295_0
|
||
9 ??Subroutine296_0
|
||
5 ??Subroutine297_0
|
||
8 ??Subroutine298_0
|
||
9 ??Subroutine299_0
|
||
7 ?Subroutine0
|
||
5 ?Subroutine1
|
||
40 ?Subroutine10
|
||
6 ?Subroutine100
|
||
6 ?Subroutine101
|
||
3 ?Subroutine102
|
||
6 ?Subroutine103
|
||
6 ?Subroutine104
|
||
6 ?Subroutine105
|
||
3 ?Subroutine106
|
||
2 ?Subroutine107
|
||
10 ?Subroutine108
|
||
3 ?Subroutine109
|
||
29 ?Subroutine11
|
||
12 ?Subroutine110
|
||
10 ?Subroutine111
|
||
4 ?Subroutine112
|
||
8 ?Subroutine113
|
||
7 ?Subroutine114
|
||
11 ?Subroutine115
|
||
2 ?Subroutine116
|
||
14 ?Subroutine117
|
||
4 ?Subroutine118
|
||
13 ?Subroutine119
|
||
20 ?Subroutine12
|
||
10 ?Subroutine120
|
||
5 ?Subroutine121
|
||
16 ?Subroutine122
|
||
13 ?Subroutine123
|
||
11 ?Subroutine124
|
||
12 ?Subroutine125
|
||
12 ?Subroutine126
|
||
10 ?Subroutine127
|
||
1 ?Subroutine128
|
||
8 ?Subroutine129
|
||
23 ?Subroutine13
|
||
4 ?Subroutine130
|
||
9 ?Subroutine131
|
||
4 ?Subroutine132
|
||
4 ?Subroutine133
|
||
7 ?Subroutine134
|
||
1 ?Subroutine135
|
||
1 ?Subroutine136
|
||
4 ?Subroutine137
|
||
4 ?Subroutine138
|
||
19 ?Subroutine139
|
||
17 ?Subroutine14
|
||
1 ?Subroutine140
|
||
11 ?Subroutine141
|
||
3 ?Subroutine142
|
||
23 ?Subroutine143
|
||
9 ?Subroutine144
|
||
14 ?Subroutine145
|
||
4 ?Subroutine146
|
||
8 ?Subroutine147
|
||
2 ?Subroutine148
|
||
10 ?Subroutine149
|
||
9 ?Subroutine15
|
||
4 ?Subroutine150
|
||
16 ?Subroutine151
|
||
1 ?Subroutine152
|
||
2 ?Subroutine153
|
||
17 ?Subroutine154
|
||
8 ?Subroutine155
|
||
6 ?Subroutine156
|
||
4 ?Subroutine157
|
||
9 ?Subroutine158
|
||
1 ?Subroutine159
|
||
27 ?Subroutine16
|
||
1 ?Subroutine160
|
||
4 ?Subroutine161
|
||
4 ?Subroutine162
|
||
10 ?Subroutine163
|
||
4 ?Subroutine164
|
||
1 ?Subroutine165
|
||
8 ?Subroutine166
|
||
10 ?Subroutine167
|
||
13 ?Subroutine168
|
||
6 ?Subroutine169
|
||
9 ?Subroutine17
|
||
7 ?Subroutine170
|
||
4 ?Subroutine171
|
||
6 ?Subroutine172
|
||
4 ?Subroutine173
|
||
17 ?Subroutine174
|
||
18 ?Subroutine175
|
||
15 ?Subroutine176
|
||
2 ?Subroutine177
|
||
10 ?Subroutine178
|
||
5 ?Subroutine179
|
||
5 ?Subroutine18
|
||
13 ?Subroutine180
|
||
12 ?Subroutine181
|
||
9 ?Subroutine182
|
||
7 ?Subroutine183
|
||
3 ?Subroutine184
|
||
2 ?Subroutine185
|
||
2 ?Subroutine186
|
||
1 ?Subroutine187
|
||
13 ?Subroutine188
|
||
6 ?Subroutine189
|
||
6 ?Subroutine19
|
||
5 ?Subroutine190
|
||
9 ?Subroutine191
|
||
7 ?Subroutine192
|
||
2 ?Subroutine193
|
||
17 ?Subroutine194
|
||
5 ?Subroutine195
|
||
10 ?Subroutine196
|
||
19 ?Subroutine197
|
||
12 ?Subroutine198
|
||
7 ?Subroutine199
|
||
3 ?Subroutine2
|
||
1 ?Subroutine20
|
||
1 ?Subroutine200
|
||
6 ?Subroutine201
|
||
9 ?Subroutine202
|
||
7 ?Subroutine203
|
||
1 ?Subroutine204
|
||
3 ?Subroutine205
|
||
10 ?Subroutine206
|
||
1 ?Subroutine207
|
||
9 ?Subroutine208
|
||
11 ?Subroutine209
|
||
2 ?Subroutine21
|
||
9 ?Subroutine210
|
||
6 ?Subroutine211
|
||
6 ?Subroutine212
|
||
5 ?Subroutine213
|
||
2 ?Subroutine214
|
||
8 ?Subroutine215
|
||
8 ?Subroutine216
|
||
6 ?Subroutine217
|
||
9 ?Subroutine218
|
||
7 ?Subroutine219
|
||
16 ?Subroutine22
|
||
5 ?Subroutine220
|
||
7 ?Subroutine221
|
||
6 ?Subroutine23
|
||
8 ?Subroutine24
|
||
18 ?Subroutine25
|
||
8 ?Subroutine26
|
||
4 ?Subroutine27
|
||
6 ?Subroutine28
|
||
2 ?Subroutine29
|
||
4 ?Subroutine3
|
||
4 ?Subroutine30
|
||
4 ?Subroutine31
|
||
8 ?Subroutine32
|
||
12 ?Subroutine33
|
||
4 ?Subroutine34
|
||
5 ?Subroutine35
|
||
7 ?Subroutine36
|
||
6 ?Subroutine37
|
||
4 ?Subroutine38
|
||
13 ?Subroutine39
|
||
2 ?Subroutine4
|
||
8 ?Subroutine40
|
||
8 ?Subroutine41
|
||
3 ?Subroutine42
|
||
10 ?Subroutine43
|
||
25 ?Subroutine44
|
||
5 ?Subroutine45
|
||
7 ?Subroutine46
|
||
8 ?Subroutine47
|
||
27 ?Subroutine48
|
||
9 ?Subroutine49
|
||
3 ?Subroutine5
|
||
8 ?Subroutine50
|
||
4 ?Subroutine51
|
||
8 ?Subroutine52
|
||
4 ?Subroutine53
|
||
4 ?Subroutine54
|
||
13 ?Subroutine55
|
||
4 ?Subroutine56
|
||
13 ?Subroutine57
|
||
6 ?Subroutine58
|
||
9 ?Subroutine59
|
||
5 ?Subroutine6
|
||
21 ?Subroutine60
|
||
14 ?Subroutine61
|
||
31 ?Subroutine62
|
||
29 ?Subroutine63
|
||
4 ?Subroutine64
|
||
21 ?Subroutine65
|
||
9 ?Subroutine66
|
||
17 ?Subroutine67
|
||
3 ?Subroutine68
|
||
38 ?Subroutine69
|
||
6 ?Subroutine7
|
||
6 ?Subroutine70
|
||
12 ?Subroutine71
|
||
4 ?Subroutine72
|
||
8 ?Subroutine73
|
||
3 ?Subroutine74
|
||
7 ?Subroutine75
|
||
14 ?Subroutine76
|
||
11 ?Subroutine77
|
||
10 ?Subroutine78
|
||
10 ?Subroutine79
|
||
5 ?Subroutine8
|
||
4 ?Subroutine80
|
||
2 ?Subroutine81
|
||
4 ?Subroutine82
|
||
6 ?Subroutine83
|
||
5 ?Subroutine84
|
||
12 ?Subroutine85
|
||
4 ?Subroutine86
|
||
10 ?Subroutine87
|
||
6 ?Subroutine88
|
||
12 ?Subroutine89
|
||
25 ?Subroutine9
|
||
13 ?Subroutine90
|
||
11 ?Subroutine91
|
||
16 ?Subroutine92
|
||
14 ?Subroutine93
|
||
5 ?Subroutine94
|
||
22 ?Subroutine95
|
||
1 ?Subroutine96
|
||
2 ?Subroutine97
|
||
13 ?Subroutine98
|
||
4 ?Subroutine99
|
||
3 NLME_PermitJoiningTimeout
|
||
644 ZDMatchSendState
|
||
52 ZDOBuildBuf
|
||
90 ZDO_AnyClusterMatches
|
||
194 ZDO_BuildSimpleDescBuf
|
||
126 ZDO_CompareClusterLists
|
||
66 ZDO_ConvertOTAClusters
|
||
197 ZDO_CopyMatchInfo
|
||
2 ZDO_EDBind
|
||
16 ZDO_EndDeviceBindMatchTimeoutCB
|
||
215 ZDO_EndDeviceTimeoutCB
|
||
43 ZDO_Init
|
||
544 ZDO_MatchEndDeviceBind
|
||
213 ZDO_ParseAddrRsp
|
||
50 ZDO_ParseBindUnbindReq
|
||
51 ZDO_ParseDeviceAnnce
|
||
104 ZDO_ParseEPListRsp
|
||
224 ZDO_ParseEndDeviceBindReq
|
||
244 ZDO_ParseMgmNwkDiscRsp
|
||
134 ZDO_ParseMgmtBindRsp
|
||
148 ZDO_ParseMgmtLqiRsp
|
||
340 ZDO_ParseMgmtNwkUpdateNotify
|
||
116 ZDO_ParseMgmtNwkUpdateReq
|
||
144 ZDO_ParseMgmtRtgRsp
|
||
285 ZDO_ParseNodeDescRsp
|
||
203 ZDO_ParsePowerDescRsp
|
||
51 ZDO_ParseServerDiscRsp
|
||
252 ZDO_ParseSimpleDescBuf
|
||
30 ZDO_ParseSimpleDescRsp
|
||
117 ZDO_ParseUserDescRsp
|
||
123 ZDO_ProcessActiveEPReq
|
||
299 ZDO_ProcessBindUnbindReq
|
||
430 ZDO_ProcessDeviceAnnce
|
||
1166 ZDO_ProcessMatchDescReq
|
||
265 ZDO_ProcessMgmtBindReq
|
||
80 ZDO_ProcessMgmtDirectJoinReq
|
||
157 ZDO_ProcessMgmtLeaveReq
|
||
647 ZDO_ProcessMgmtLqiReq
|
||
117 ZDO_ProcessMgmtNwkDiscReq
|
||
74 ZDO_ProcessMgmtPermitJoinReq
|
||
288 ZDO_ProcessMgmtRtgReq
|
||
66 ZDO_ProcessNodeDescReq
|
||
66 ZDO_ProcessPowerDescReq
|
||
63 ZDO_ProcessServerDiscReq
|
||
146 ZDO_ProcessSimpleDescReq
|
||
157 ZDO_ProcessUserDescReq
|
||
290 ZDO_ProcessUserDescSet
|
||
115 ZDO_RemoveMatchMemory
|
||
209 ZDO_StartDevice
|
||
51 ZDO_UpdateAddrManager
|
||
123 ZDO_UpdateNwkStatus
|
||
4 apsChannelMask
|
||
1 discRetries
|
||
2 matchED
|
||
1 scanCnt
|
||
294 -- Other
|
||
|
||
|
||
12 085 bytes in segment BANKED_CODE
|
||
294 bytes in segment BANK_RELAYS
|
||
118 bytes in segment XDATA_ROM_C
|
||
62 bytes in segment XDATA_Z
|
||
|
||
294 bytes of CODE memory
|
||
118 bytes of CONST memory
|
||
12 085 bytes of HUGECODE memory
|
||
62 bytes of XDATA memory
|
||
|
||
Errors: none
|
||
Warnings: none
|