############################################################################### # # IAR C/C++ Compiler V10.30.1.6000 for 8051 23/Aug/2019 12:13:09 # 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\EWE0ED.tmp # (E:\qqÏÂÔØÎļþ\ZStack-CC2530-r200\ZStack-CC2530-r200\Components\stack\zdo\ZDConfig.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\ZDConfig.lst # Object file = # E:\qqÏÂÔØÎļþ\ZStack-CC2530-r200\ZStack-CC2530-r200\Projects\SappWsn\RouterEB\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 REQUIRE ?Subroutine0 \ 000007 ; // Fall through to label ?Subroutine0 99 } \ In segment BANKED_CODE, align 1, keep-with-next \ ??Subroutine1_0: \ 000000 F0 MOVX @DPTR,A \ 000001 D083 POP DPH \ 000003 D082 POP DPL \ 000005 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 7401 MOV A,#0x1 \ 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); \ 00000E A3 INC DPTR \ 00000F 740E MOV A,#0xe \ 000011 F0 MOVX @DPTR,A 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 ); 142 } 143 144 // Manufacturer Code - *YOU FILL IN* 145 ZDO_Config_Node_Descriptor.ManufacturerCode[0] = 0; \ 000012 A3 INC DPTR \ 000013 E4 CLR A \ 000014 F0 MOVX @DPTR,A 146 ZDO_Config_Node_Descriptor.ManufacturerCode[1] = 0; \ 000015 A3 INC DPTR \ 000016 F0 MOVX @DPTR,A 147 148 // Maximum Buffer Size 149 ZDO_Config_Node_Descriptor.MaxBufferSize = MAX_BUFFER_SIZE; \ 000017 A3 INC DPTR \ 000018 7450 MOV A,#0x50 \ 00001A F0 MOVX @DPTR,A 150 151 // Maximum Incoming Transfer Size Field 152 ZDO_Config_Node_Descriptor.MaxInTransferSize[0] = LO_UINT16( MAX_TRANSFER_SIZE ); \ 00001B A3 INC DPTR \ 00001C 74A0 MOV A,#-0x60 \ 00001E F0 MOVX @DPTR,A 153 ZDO_Config_Node_Descriptor.MaxInTransferSize[1] = HI_UINT16( MAX_TRANSFER_SIZE ); \ 00001F A3 INC DPTR \ 000020 E4 CLR A \ 000021 F0 MOVX @DPTR,A 154 155 // Maximum Outgoing Transfer Size Field 156 ZDO_Config_Node_Descriptor.MaxOutTransferSize[0] = LO_UINT16( MAX_TRANSFER_SIZE ); \ 000022 90.... MOV DPTR,#ZDO_Config_Node_Descriptor + 10 \ 000025 74A0 MOV A,#-0x60 \ 000027 F0 MOVX @DPTR,A 157 ZDO_Config_Node_Descriptor.MaxOutTransferSize[1] = HI_UINT16( MAX_TRANSFER_SIZE ); \ 000028 A3 INC DPTR \ 000029 E4 CLR A \ 00002A F0 MOVX @DPTR,A 158 159 // Server Mask 160 ZDO_Config_Node_Descriptor.ServerMask = 0; \ 00002B 90.... MOV DPTR,#ZDO_Config_Node_Descriptor + 8 \ 00002E F0 MOVX @DPTR,A \ 00002F A3 INC DPTR \ 000030 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; \ 000031 90.... MOV DPTR,#ZDO_Config_Node_Descriptor + 12 \ 000034 80.. SJMP ??Subroutine1_0 165 } 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 \ ?Subroutine0: \ 000000 90.... MOV DPTR,#ZDO_Config_Power_Descriptor \ 000003 7410 MOV A,#0x10 \ 000005 F0 MOVX @DPTR,A \ 000006 A3 INC DPTR \ 000007 74C1 MOV A,#-0x3f \ 000009 REQUIRE ??Subroutine1_0 \ 000009 ; // Fall through to label ??Subroutine1_0 \ 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; \ 000004 80.. SJMP ?Subroutine0 185 } 186 else if ( ZSTACK_END_DEVICE_BUILD ) 187 { 188 if ( zgPollRate ) 189 ZDO_Config_Power_Descriptor.PowerMode = NODECURPWR_RCVR_AUTO; 190 else 191 ZDO_Config_Power_Descriptor.PowerMode = NODECURPWR_RCVR_STIM; 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; 196 } 197 } 198 199 /********************************************************************* 200 *********************************************************************/ 201 202 Maximum stack usage in bytes: ISTACK Function ------ -------- 2 ZDConfig_InitDescriptors 2 -> ZDConfig_UpdateNodeDescriptor 2 ZDConfig_UpdateNodeDescriptor 2 ZDConfig_UpdatePowerDescriptor Segment part sizes: Bytes Function/Label ----- -------------- 8 ??Subroutine1_0 9 ?Subroutine0 7 ZDConfig_InitDescriptors 54 ZDConfig_UpdateNodeDescriptor 6 ZDConfig_UpdatePowerDescriptor 13 ZDO_Config_Node_Descriptor 2 ZDO_Config_Power_Descriptor 18 -- Other 84 bytes in segment BANKED_CODE 18 bytes in segment BANK_RELAYS 15 bytes in segment XDATA_Z 18 bytes of CODE memory 84 bytes of HUGECODE memory 15 bytes of XDATA memory Errors: none Warnings: none