############################################################################### # # IAR C/C++ Compiler V10.30.1.6000 for 8051 23/Aug/2019 12:14:01 # 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\ZDConfig.c # Command line = # -f C:\Users\VULCAN\AppData\Local\Temp\EWAD52.tmp # (E:\qqÏÂÔØÎļþ\ZStack-CC2530-r200\ZStack-CC2530-r200\Components\stack\zdo\ZDConfig.c # -D ZIGBEEPRO -D NWK_AUTO_POLL -D ZTOOL_P1 -D xMT_TASK -D xMT_SYS_FUNC # -D MT_ZDO_FUNC -D SAPP_ZSTACK -lC # E:\qqÏÂÔØÎļþ\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\EndDeviceEB\List # -lA # E:\qqÏÂÔØÎļþ\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\EndDeviceEB\List # --diag_suppress Pe001,Pa010 -o # E:\qqÏÂÔØÎļþ\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\EndDeviceEB\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\f8wEndev.cfg # (-DCPU32MHZ -DROOT=__near_func -DMAC_CFG_TX_DATA_MAX=3 # -DMAC_CFG_TX_MAX=6 -DMAC_CFG_RX_MAX=3) -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\EndDeviceEB\List\ZDConfig.lst # Object file = # E:\qqÏÂÔØÎļþ\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\EndDeviceEB\Obj\ZDConfig.r51 # ############################################################################### E:\qqÏÂÔØÎļþ\ZStack-CC2530-r200\ZStack-CC2530-r200\Components\stack\zdo\ZDConfig.c 1 /************************************************************************************************** 2 Filename: ZDConfig.c 3 Revised: $Date: 2008-02-12 16:32:50 -0800 (Tue, 12 Feb 2008) $ 4 Revision: $Revision: 16393 $ 5 6 7 Description: This file contains the configuration attributes for the Zigbee Device Object. 8 These are references to Configuration items that MUST be defined in ZDApp.c. 9 The names mustn't change. 10 11 12 Copyright 2004-2007 Texas Instruments Incorporated. All rights reserved. 13 14 IMPORTANT: Your use of this Software is limited to those specific rights 15 granted under the terms of a software license agreement between the user 16 who downloaded the software, his/her employer (which must be your employer) 17 and Texas Instruments Incorporated (the "License"). You may not use this 18 Software unless you agree to abide by the terms of the License. The License 19 limits your use, and you acknowledge, that the Software may not be modified, 20 copied or distributed unless embedded on a Texas Instruments microcontroller 21 or used solely and exclusively in conjunction with a Texas Instruments radio 22 frequency transceiver, which is integrated into your product. Other than for 23 the foregoing purpose, you may not use, reproduce, copy, prepare derivative 24 works of, modify, distribute, perform, display or sell this Software and/or 25 its documentation for any purpose. 26 27 YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE 28 PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, 29 INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE, 30 NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL 31 TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT, 32 NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER 33 LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES 34 INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE 35 OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT 36 OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES 37 (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS. 38 39 Should you have any questions regarding your right to use this Software, 40 contact Texas Instruments Incorporated at www.TI.com. 41 **************************************************************************************************/ 42 43 /********************************************************************* 44 * INCLUDES 45 */ 46 #include "ZComdef.h" 47 #include "AF.h" 48 #include "ZDObject.h" 49 #include "ZDConfig.h" 50 51 /********************************************************************* 52 * MACROS 53 */ 54 55 /********************************************************************* 56 * CONSTANTS 57 */ 58 59 /********************************************************************* 60 * TYPEDEFS 61 */ 62 63 /********************************************************************* 64 * GLOBAL VARIABLES 65 */ \ In segment XDATA_Z, align 1, keep-with-next 66 NodeDescriptorFormat_t ZDO_Config_Node_Descriptor; \ ZDO_Config_Node_Descriptor: \ 000000 DS 13 \ 00000D REQUIRE __INIT_XDATA_Z \ In segment XDATA_Z, align 1, keep-with-next 67 NodePowerDescriptorFormat_t ZDO_Config_Power_Descriptor; \ ZDO_Config_Power_Descriptor: \ 000000 DS 2 \ 000002 REQUIRE __INIT_XDATA_Z 68 69 /********************************************************************* 70 * EXTERNAL VARIABLES 71 */ 72 73 /********************************************************************* 74 * EXTERNAL FUNCTIONS 75 */ 76 77 /********************************************************************* 78 * LOCAL FUNCTIONS 79 */ 80 81 /********************************************************************* 82 * LOCAL VARIABLES 83 */ 84 85 /********************************************************************* 86 * @fn ZDConfig_InitDescriptors() 87 * 88 * @brief Setup the ZDO descriptors 89 * Node, Power 90 * 91 * @param none 92 * 93 * @return none 94 */ \ In segment BANKED_CODE, align 1, keep-with-next 95 void ZDConfig_InitDescriptors( void ) \ ZDConfig_InitDescriptors: 96 { \ 000000 C082 PUSH DPL \ 000002 C083 PUSH DPH \ 000004 ; Saved register size: 2 \ 000004 ; Auto size: 0 97 ZDConfig_UpdateNodeDescriptor(); \ 000004 ; Setup parameters for call to function ZDConfig_UpdateNodeDescriptor \ 000004 12.... LCALL `??ZDConfig_UpdateNodeDescriptor::?relay`; Banked call to: ZDConfig_UpdateNodeDescriptor 98 ZDConfig_UpdatePowerDescriptor(); \ 000007 ; Setup parameters for call to function ZDConfig_UpdatePowerDescriptor \ 000007 12.... LCALL `??ZDConfig_UpdatePowerDescriptor::?relay`; Banked call to: ZDConfig_UpdatePowerDescriptor 99 } \ 00000A 80.. SJMP ??Subroutine1_0 \ In segment BANKED_CODE, align 1, keep-with-next \ ??Subroutine1_0: \ 000000 D083 POP DPH \ 000002 D082 POP DPL \ 000004 02.... LJMP ?BRET 100 101 /********************************************************************* 102 * @fn ZDConfig_UpdateNodeDescriptor() 103 * 104 * @brief Update the ZDO Node Descriptor 105 * 106 * @param none 107 * 108 * @return none 109 */ \ In segment BANKED_CODE, align 1, keep-with-next 110 void ZDConfig_UpdateNodeDescriptor( void ) \ ZDConfig_UpdateNodeDescriptor: 111 { \ 000000 C082 PUSH DPL \ 000002 C083 PUSH DPH \ 000004 ; Saved register size: 2 \ 000004 ; Auto size: 0 112 // Build the Node Descriptor 113 if ( ZG_BUILD_COORDINATOR_TYPE && ZG_DEVICE_COORDINATOR_TYPE ) 114 ZDO_Config_Node_Descriptor.LogicalType = NODETYPE_COORDINATOR; 115 else if ( ZSTACK_ROUTER_BUILD ) 116 ZDO_Config_Node_Descriptor.LogicalType = NODETYPE_ROUTER; 117 else if ( ZSTACK_END_DEVICE_BUILD ) 118 ZDO_Config_Node_Descriptor.LogicalType = NODETYPE_DEVICE; 119 120 ZDO_Config_Node_Descriptor.ComplexDescAvail = FALSE; // set elsewhere 121 ZDO_Config_Node_Descriptor.UserDescAvail = FALSE; // set elsewhere 122 ZDO_Config_Node_Descriptor.Reserved = 0; // Reserved \ 000004 90.... MOV DPTR,#ZDO_Config_Node_Descriptor \ 000007 7402 MOV A,#0x2 \ 000009 F0 MOVX @DPTR,A 123 ZDO_Config_Node_Descriptor.APSFlags = 0; // NO APS flags 124 ZDO_Config_Node_Descriptor.FrequencyBand = NODEFREQ_2400; // Frequency Band \ 00000A A3 INC DPTR \ 00000B 7440 MOV A,#0x40 \ 00000D F0 MOVX @DPTR,A 125 126 // MAC Capabilities 127 if ( ZSTACK_ROUTER_BUILD ) 128 { 129 ZDO_Config_Node_Descriptor.CapabilityFlags 130 = (CAPINFO_DEVICETYPE_FFD | CAPINFO_POWER_AC | CAPINFO_RCVR_ON_IDLE); 131 132 if ( ZG_BUILD_COORDINATOR_TYPE && ZG_DEVICE_COORDINATOR_TYPE ) 133 ZDO_Config_Node_Descriptor.CapabilityFlags |= CAPINFO_ALTPANCOORD; 134 } 135 else if ( ZSTACK_END_DEVICE_BUILD ) 136 { 137 ZDO_Config_Node_Descriptor.CapabilityFlags = (CAPINFO_DEVICETYPE_RFD 138 #if ( RFD_RCVC_ALWAYS_ON == TRUE) 139 | CAPINFO_RCVR_ON_IDLE 140 #endif 141 ); \ 00000E A3 INC DPTR \ 00000F E4 CLR A \ 000010 F0 MOVX @DPTR,A 142 } 143 144 // Manufacturer Code - *YOU FILL IN* 145 ZDO_Config_Node_Descriptor.ManufacturerCode[0] = 0; \ 000011 A3 INC DPTR \ 000012 F0 MOVX @DPTR,A 146 ZDO_Config_Node_Descriptor.ManufacturerCode[1] = 0; \ 000013 A3 INC DPTR \ 000014 F0 MOVX @DPTR,A 147 148 // Maximum Buffer Size 149 ZDO_Config_Node_Descriptor.MaxBufferSize = MAX_BUFFER_SIZE; \ 000015 A3 INC DPTR \ 000016 7450 MOV A,#0x50 \ 000018 F0 MOVX @DPTR,A 150 151 // Maximum Incoming Transfer Size Field 152 ZDO_Config_Node_Descriptor.MaxInTransferSize[0] = LO_UINT16( MAX_TRANSFER_SIZE ); \ 000019 A3 INC DPTR \ 00001A 74A0 MOV A,#-0x60 \ 00001C F0 MOVX @DPTR,A 153 ZDO_Config_Node_Descriptor.MaxInTransferSize[1] = HI_UINT16( MAX_TRANSFER_SIZE ); \ 00001D A3 INC DPTR \ 00001E E4 CLR A \ 00001F F0 MOVX @DPTR,A 154 155 // Maximum Outgoing Transfer Size Field 156 ZDO_Config_Node_Descriptor.MaxOutTransferSize[0] = LO_UINT16( MAX_TRANSFER_SIZE ); \ 000020 90.... MOV DPTR,#ZDO_Config_Node_Descriptor + 10 \ 000023 74A0 MOV A,#-0x60 \ 000025 F0 MOVX @DPTR,A 157 ZDO_Config_Node_Descriptor.MaxOutTransferSize[1] = HI_UINT16( MAX_TRANSFER_SIZE ); \ 000026 A3 INC DPTR \ 000027 E4 CLR A \ 000028 F0 MOVX @DPTR,A 158 159 // Server Mask 160 ZDO_Config_Node_Descriptor.ServerMask = 0; \ 000029 90.... MOV DPTR,#ZDO_Config_Node_Descriptor + 8 \ 00002C F0 MOVX @DPTR,A \ 00002D A3 INC DPTR \ 00002E F0 MOVX @DPTR,A 161 162 // Descriptor Capability Field - extended active endpoint list and 163 // extended simple descriptor are not supported. 164 ZDO_Config_Node_Descriptor.DescriptorCapability = 0; \ 00002F 90.... MOV DPTR,#ZDO_Config_Node_Descriptor + 12 \ 000032 REQUIRE ?Subroutine0 \ 000032 ; // Fall through to label ?Subroutine0 165 } \ In segment BANKED_CODE, align 1, keep-with-next \ ?Subroutine0: \ 000000 F0 MOVX @DPTR,A \ 000001 REQUIRE ??Subroutine1_0 \ 000001 ; // Fall through to label ??Subroutine1_0 166 167 /********************************************************************* 168 * @fn ZDConfig_UpdatePowerDescriptor() 169 * 170 * @brief Update the ZDO Power Descriptor 171 * 172 * @param none 173 * 174 * @return none 175 */ \ In segment BANKED_CODE, align 1, keep-with-next 176 void ZDConfig_UpdatePowerDescriptor( void ) \ ZDConfig_UpdatePowerDescriptor: 177 { \ 000000 C082 PUSH DPL \ 000002 C083 PUSH DPH \ 000004 ; Saved register size: 2 \ 000004 ; Auto size: 0 178 // Build the Power Descriptor 179 if ( ZSTACK_ROUTER_BUILD ) 180 { 181 ZDO_Config_Power_Descriptor.PowerMode = NODECURPWR_RCVR_ALWAYS_ON; 182 ZDO_Config_Power_Descriptor.AvailablePowerSources = NODEAVAILPWR_MAINS; 183 ZDO_Config_Power_Descriptor.CurrentPowerSource = NODEAVAILPWR_MAINS; 184 ZDO_Config_Power_Descriptor.CurrentPowerSourceLevel = NODEPOWER_LEVEL_100; 185 } 186 else if ( ZSTACK_END_DEVICE_BUILD ) 187 { 188 if ( zgPollRate ) \ 000004 90.... MOV DPTR,#zgPollRate \ 000007 E0 MOVX A,@DPTR \ 000008 F8 MOV R0,A \ 000009 A3 INC DPTR \ 00000A E0 MOVX A,@DPTR \ 00000B F9 MOV R1,A \ 00000C E8 MOV A,R0 \ 00000D 49 ORL A,R1 \ 00000E 90.... MOV DPTR,#ZDO_Config_Power_Descriptor \ 000011 6008 JZ ??ZDConfig_UpdatePowerDescriptor_0 189 ZDO_Config_Power_Descriptor.PowerMode = NODECURPWR_RCVR_AUTO; \ 000013 E0 MOVX A,@DPTR \ 000014 54F0 ANL A,#0xf0 \ 000016 F0 MOVX @DPTR,A \ 000017 4401 ORL A,#0x1 \ 000019 8006 SJMP ??ZDConfig_UpdatePowerDescriptor_1 190 else 191 ZDO_Config_Power_Descriptor.PowerMode = NODECURPWR_RCVR_STIM; \ ??ZDConfig_UpdatePowerDescriptor_0: \ 00001B E0 MOVX A,@DPTR \ 00001C 54F0 ANL A,#0xf0 \ 00001E F0 MOVX @DPTR,A \ 00001F 4402 ORL A,#0x2 \ ??ZDConfig_UpdatePowerDescriptor_1: \ 000021 F0 MOVX @DPTR,A 192 193 ZDO_Config_Power_Descriptor.AvailablePowerSources = NODEAVAILPWR_RECHARGE; 194 ZDO_Config_Power_Descriptor.CurrentPowerSource = NODEAVAILPWR_RECHARGE; 195 ZDO_Config_Power_Descriptor.CurrentPowerSourceLevel = NODEPOWER_LEVEL_66; \ 000022 E0 MOVX A,@DPTR \ 000023 540F ANL A,#0xf \ 000025 F0 MOVX @DPTR,A \ 000026 A3 INC DPTR \ 000027 E4 CLR A \ 000028 F0 MOVX @DPTR,A \ 000029 90.... MOV DPTR,#ZDO_Config_Power_Descriptor \ 00002C E0 MOVX A,@DPTR \ 00002D 4420 ORL A,#0x20 \ 00002F F0 MOVX @DPTR,A \ 000030 A3 INC DPTR \ 000031 7482 MOV A,#-0x7e \ 000033 80.. SJMP ?Subroutine0 196 } 197 } 198 199 /********************************************************************* 200 *********************************************************************/ 201 202 Maximum stack usage in bytes: ISTACK Function ------ -------- 2 ZDConfig_InitDescriptors 2 -> ZDConfig_UpdateNodeDescriptor 2 -> ZDConfig_UpdatePowerDescriptor 2 ZDConfig_UpdateNodeDescriptor 2 ZDConfig_UpdatePowerDescriptor Segment part sizes: Bytes Function/Label ----- -------------- 7 ??Subroutine1_0 1 ?Subroutine0 12 ZDConfig_InitDescriptors 50 ZDConfig_UpdateNodeDescriptor 53 ZDConfig_UpdatePowerDescriptor 13 ZDO_Config_Node_Descriptor 2 ZDO_Config_Power_Descriptor 18 -- Other 123 bytes in segment BANKED_CODE 18 bytes in segment BANK_RELAYS 15 bytes in segment XDATA_Z 18 bytes of CODE memory 123 bytes of HUGECODE memory 15 bytes of XDATA memory Errors: none Warnings: none