/////////////////////////////////////////////////////////////////////////////// // // 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\ZDApp.c // Command line = // -f C:\Users\VULCAN\AppData\Local\Temp\EWDF27.tmp // (E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Components\stack\zdo\ZDApp.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\ZDApp.s51 // /////////////////////////////////////////////////////////////////////////////// NAME ZDApp RTMODEL "__SystemLibrary", "CLib" RTMODEL "__calling_convention", "xdata_reentrant" RTMODEL "__code_model", "banked" RTMODEL "__core", "plain" RTMODEL "__data_model", "large" RTMODEL "__dptr_size", "16" RTMODEL "__extended_stack", "disabled" RTMODEL "__location_for_constants", "data" RTMODEL "__number_of_dptrs", "1" RTMODEL "__register_banks", "*" RTMODEL "__rt_version", "1" RSEG DOVERLAY:DATA:NOROOT(0) RSEG IOVERLAY:IDATA:NOROOT(0) RSEG ISTACK:IDATA:NOROOT(0) RSEG PSTACK:XDATA:NOROOT(0) RSEG XSTACK:XDATA:NOROOT(0) EXTERN ?V0 EXTERN ?V1 EXTERN ?V2 EXTERN ?V3 EXTERN ?V4 EXTERN ?V5 EXTERN ?V6 EXTERN ?V7 EXTERN ?ALLOC_XSTACK8 EXTERN ?BANKED_ENTER_XDATA EXTERN ?BANKED_LEAVE_XDATA EXTERN ?BDISPATCH EXTERN ?BRET EXTERN ?CALL_IND EXTERN ?DEALLOC_XSTACK8 EXTERN ?L_ADD_TO_X EXTERN ?L_MOV_X EXTERN ?PUSH_XSTACK8_X_TWO EXTERN ?PUSH_XSTACK_I_ONE EXTERN ?PUSH_XSTACK_I_THREE EXTERN ?PUSH_XSTACK_I_TWO EXTERN ?US_SWITCH_SPARSE EXTERN ?XLOAD_R0123 EXTERN ?XSP EXTERN ?XSTACK_DISP0_8 EXTERN ?XSTACK_DISP102_8 EXTERN ?XSTORE_R0123 EXTERN __INIT_XDATA_I EXTERN __INIT_XDATA_Z PUBLIC `??AddrMgrWriteNVRequest::?relay` FUNCTION `??AddrMgrWriteNVRequest::?relay`,0203H PUBLIC `??ZDAppCheckForHoldKey::?relay` FUNCTION `??ZDAppCheckForHoldKey::?relay`,0203H PUBLIC `??ZDAppDetermineDeviceType::?relay` FUNCTION `??ZDAppDetermineDeviceType::?relay`,0203H PUBLIC `??ZDApp_AnnounceNewAddress::?relay` FUNCTION `??ZDApp_AnnounceNewAddress::?relay`,0203H PUBLIC `??ZDApp_ChangeMatchDescRespPermission::?relay` FUNCTION `??ZDApp_ChangeMatchDescRespPermission::?relay`,0203H PUBLIC `??ZDApp_CoordStartPANIDConflictCB::?relay` FUNCTION `??ZDApp_CoordStartPANIDConflictCB::?relay`,0203H PUBLIC `??ZDApp_DeviceAuthEvt::?relay` FUNCTION `??ZDApp_DeviceAuthEvt::?relay`,0203H PUBLIC `??ZDApp_DeviceConfigured::?relay` FUNCTION `??ZDApp_DeviceConfigured::?relay`,0203H PUBLIC `??ZDApp_InMsgCB::?relay` FUNCTION `??ZDApp_InMsgCB::?relay`,0203H PUBLIC `??ZDApp_Init::?relay` FUNCTION `??ZDApp_Init::?relay`,0203H PUBLIC `??ZDApp_InitUserDesc::?relay` FUNCTION `??ZDApp_InitUserDesc::?relay`,0203H PUBLIC `??ZDApp_InitZdoCBFunc::?relay` FUNCTION `??ZDApp_InitZdoCBFunc::?relay`,0203H PUBLIC `??ZDApp_JoinReq::?relay` FUNCTION `??ZDApp_JoinReq::?relay`,0203H PUBLIC `??ZDApp_LeaveCtrlBypass::?relay` FUNCTION `??ZDApp_LeaveCtrlBypass::?relay`,0203H PUBLIC `??ZDApp_LeaveCtrlInit::?relay` FUNCTION `??ZDApp_LeaveCtrlInit::?relay`,0203H PUBLIC `??ZDApp_LeaveCtrlReset::?relay` FUNCTION `??ZDApp_LeaveCtrlReset::?relay`,0203H PUBLIC `??ZDApp_LeaveCtrlSet::?relay` FUNCTION `??ZDApp_LeaveCtrlSet::?relay`,0203H PUBLIC `??ZDApp_LeaveCtrlStartup::?relay` FUNCTION `??ZDApp_LeaveCtrlStartup::?relay`,0203H PUBLIC `??ZDApp_LeaveReset::?relay` FUNCTION `??ZDApp_LeaveReset::?relay`,0203H PUBLIC `??ZDApp_LeaveUpdate::?relay` FUNCTION `??ZDApp_LeaveUpdate::?relay`,0203H PUBLIC `??ZDApp_NVUpdate::?relay` FUNCTION `??ZDApp_NVUpdate::?relay`,0203H PUBLIC `??ZDApp_NetworkDiscoveryReq::?relay` FUNCTION `??ZDApp_NetworkDiscoveryReq::?relay`,0203H PUBLIC `??ZDApp_NetworkInit::?relay` FUNCTION `??ZDApp_NetworkInit::?relay`,0203H PUBLIC `??ZDApp_NetworkStartEvt::?relay` FUNCTION `??ZDApp_NetworkStartEvt::?relay`,0203H PUBLIC `??ZDApp_NodeProfileSync::?relay` FUNCTION `??ZDApp_NodeProfileSync::?relay`,0203H PUBLIC `??ZDApp_NwkDescListProcessing::?relay` FUNCTION `??ZDApp_NwkDescListProcessing::?relay`,0203H PUBLIC `??ZDApp_NwkStateUpdateCB::?relay` FUNCTION `??ZDApp_NwkStateUpdateCB::?relay`,0203H PUBLIC `??ZDApp_ProcessMsgCBs::?relay` FUNCTION `??ZDApp_ProcessMsgCBs::?relay`,0203H PUBLIC `??ZDApp_ProcessNetworkJoin::?relay` FUNCTION `??ZDApp_ProcessNetworkJoin::?relay`,0203H PUBLIC `??ZDApp_ProcessOSALMsg::?relay` FUNCTION `??ZDApp_ProcessOSALMsg::?relay`,0203H PUBLIC `??ZDApp_ProcessSecEvent::?relay` FUNCTION `??ZDApp_ProcessSecEvent::?relay`,0203H PUBLIC `??ZDApp_ProcessSecMsg::?relay` FUNCTION `??ZDApp_ProcessSecMsg::?relay`,0203H PUBLIC `??ZDApp_ReadNetworkRestoreState::?relay` FUNCTION `??ZDApp_ReadNetworkRestoreState::?relay`,0203H PUBLIC `??ZDApp_RegisterCBs::?relay` FUNCTION `??ZDApp_RegisterCBs::?relay`,0203H PUBLIC `??ZDApp_ResetNwkKey::?relay` FUNCTION `??ZDApp_ResetNwkKey::?relay`,0203H PUBLIC `??ZDApp_ResetTimerCancel::?relay` FUNCTION `??ZDApp_ResetTimerCancel::?relay`,0203H PUBLIC `??ZDApp_ResetTimerStart::?relay` FUNCTION `??ZDApp_ResetTimerStart::?relay`,0203H PUBLIC `??ZDApp_RestoreNetworkState::?relay` FUNCTION `??ZDApp_RestoreNetworkState::?relay`,0203H PUBLIC `??ZDApp_RestoreNwkKey::?relay` FUNCTION `??ZDApp_RestoreNwkKey::?relay`,0203H PUBLIC `??ZDApp_SaveNetworkStateEvt::?relay` FUNCTION `??ZDApp_SaveNetworkStateEvt::?relay`,0203H PUBLIC `??ZDApp_SaveNwkKey::?relay` FUNCTION `??ZDApp_SaveNwkKey::?relay`,0203H PUBLIC `??ZDApp_SecInit::?relay` FUNCTION `??ZDApp_SecInit::?relay`,0203H PUBLIC `??ZDApp_SendEventMsg::?relay` FUNCTION `??ZDApp_SendEventMsg::?relay`,0203H PUBLIC `??ZDApp_SendMsg::?relay` FUNCTION `??ZDApp_SendMsg::?relay`,0203H PUBLIC `??ZDApp_StartJoiningCycle::?relay` FUNCTION `??ZDApp_StartJoiningCycle::?relay`,0203H PUBLIC `??ZDApp_StopJoiningCycle::?relay` FUNCTION `??ZDApp_StopJoiningCycle::?relay`,0203H PUBLIC `??ZDApp_event_loop::?relay` FUNCTION `??ZDApp_event_loop::?relay`,0203H PUBLIC `??ZDOInitDevice::?relay` FUNCTION `??ZDOInitDevice::?relay`,0203H PUBLIC `??ZDO_AddrChangeIndicationCB::?relay` FUNCTION `??ZDO_AddrChangeIndicationCB::?relay`,0203H PUBLIC `??ZDO_ConcentratorIndicationCB::?relay` FUNCTION `??ZDO_ConcentratorIndicationCB::?relay`,0203H PUBLIC `??ZDO_DeregisterForZdoCB::?relay` FUNCTION `??ZDO_DeregisterForZdoCB::?relay`,0203H PUBLIC `??ZDO_JoinConfirmCB::?relay` FUNCTION `??ZDO_JoinConfirmCB::?relay`,0203H PUBLIC `??ZDO_JoinIndicationCB::?relay` FUNCTION `??ZDO_JoinIndicationCB::?relay`,0203H PUBLIC `??ZDO_LeaveCnf::?relay` FUNCTION `??ZDO_LeaveCnf::?relay`,0203H PUBLIC `??ZDO_LeaveInd::?relay` FUNCTION `??ZDO_LeaveInd::?relay`,0203H PUBLIC `??ZDO_ManytoOneFailureIndicationCB::?relay` FUNCTION `??ZDO_ManytoOneFailureIndicationCB::?relay`,0203H PUBLIC `??ZDO_NetworkDiscoveryConfirmCB::?relay` FUNCTION `??ZDO_NetworkDiscoveryConfirmCB::?relay`,0203H PUBLIC `??ZDO_NetworkFormationConfirmCB::?relay` FUNCTION `??ZDO_NetworkFormationConfirmCB::?relay`,0203H PUBLIC `??ZDO_PollConfirmCB::?relay` FUNCTION `??ZDO_PollConfirmCB::?relay`,0203H PUBLIC `??ZDO_RegisterForZdoCB::?relay` FUNCTION `??ZDO_RegisterForZdoCB::?relay`,0203H PUBLIC `??ZDO_SrcRtgIndCB::?relay` FUNCTION `??ZDO_SrcRtgIndCB::?relay`,0203H PUBLIC `??ZDO_StartRouterConfirmCB::?relay` FUNCTION `??ZDO_StartRouterConfirmCB::?relay`,0203H PUBLIC `??ZDO_SyncIndicationCB::?relay` FUNCTION `??ZDO_SyncIndicationCB::?relay`,0203H PUBLIC `??ZDO_UpdateDeviceIndication::?relay` FUNCTION `??ZDO_UpdateDeviceIndication::?relay`,0203H PUBLIC `??ZDO_beaconNotifyIndCB::?relay` FUNCTION `??ZDO_beaconNotifyIndCB::?relay`,0203H PUBLIC AddrMgrWriteNVRequest FUNCTION AddrMgrWriteNVRequest,0203H ARGFRAME XSTACK, 0, STACK PUBLIC MatchRsps PUBLIC ZDAppCheckForHoldKey FUNCTION ZDAppCheckForHoldKey,0203H ARGFRAME XSTACK, 0, STACK PUBLIC ZDAppDetermineDeviceType FUNCTION ZDAppDetermineDeviceType,021203H ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME ISTACK, 2, STACK PUBLIC ZDAppNwkAddr PUBLIC ZDAppTaskID PUBLIC ZDApp_AnnounceNewAddress FUNCTION ZDApp_AnnounceNewAddress,0a1203H ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME XSTACK, 11, STACK PUBLIC ZDApp_AutoFindMode_epDesc PUBLIC ZDApp_ChangeMatchDescRespPermission FUNCTION ZDApp_ChangeMatchDescRespPermission,021203H ARGFRAME XSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK PUBLIC ZDApp_CoordStartPANIDConflictCB FUNCTION ZDApp_CoordStartPANIDConflictCB,0203H ARGFRAME XSTACK, 0, STACK PUBLIC ZDApp_DeviceAuthEvt FUNCTION ZDApp_DeviceAuthEvt,021203H ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME ISTACK, 2, STACK PUBLIC ZDApp_DeviceConfigured FUNCTION ZDApp_DeviceConfigured,0a1203H ARGFRAME XSTACK, 0, STACK LOCFRAME XSTACK, 16, STACK PUBLIC ZDApp_InMsgCB FUNCTION ZDApp_InMsgCB,0a1203H ARGFRAME XSTACK, 0, STACK LOCFRAME XSTACK, 14, STACK PUBLIC ZDApp_Init FUNCTION ZDApp_Init,021203H ARGFRAME XSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK PUBLIC ZDApp_InitUserDesc FUNCTION ZDApp_InitUserDesc,0a1203H ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME XSTACK, 31, STACK PUBLIC ZDApp_InitZdoCBFunc FUNCTION ZDApp_InitZdoCBFunc,0203H ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME ISTACK, 2, STACK PUBLIC ZDApp_JoinReq FUNCTION ZDApp_JoinReq,0a1203H ARGFRAME XSTACK, 4, STACK LOCFRAME XSTACK, 16, STACK PUBLIC ZDApp_LeaveCtrl PUBLIC ZDApp_LeaveCtrlBypass FUNCTION ZDApp_LeaveCtrlBypass,0203H ARGFRAME XSTACK, 0, STACK LOCFRAME ISTACK, 2, STACK PUBLIC ZDApp_LeaveCtrlInit FUNCTION ZDApp_LeaveCtrlInit,0a1203H ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME XSTACK, 14, STACK PUBLIC ZDApp_LeaveCtrlReset FUNCTION ZDApp_LeaveCtrlReset,0a1203H ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME XSTACK, 14, STACK PUBLIC ZDApp_LeaveCtrlSet FUNCTION ZDApp_LeaveCtrlSet,0a1203H ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME XSTACK, 14, STACK PUBLIC ZDApp_LeaveCtrlStartup FUNCTION ZDApp_LeaveCtrlStartup,021203H ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME ISTACK, 2, STACK PUBLIC ZDApp_LeaveReset FUNCTION ZDApp_LeaveReset,021203H ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME XSTACK, 9, STACK PUBLIC ZDApp_LeaveUpdate FUNCTION ZDApp_LeaveUpdate,021203H ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME XSTACK, 9, STACK PUBLIC ZDApp_NVUpdate FUNCTION ZDApp_NVUpdate,0203H ARGFRAME XSTACK, 0, STACK PUBLIC ZDApp_NetworkDiscoveryReq FUNCTION ZDApp_NetworkDiscoveryReq,0a1203H ARGFRAME XSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK PUBLIC ZDApp_NetworkInit FUNCTION ZDApp_NetworkInit,021203H ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME ISTACK, 2, STACK PUBLIC ZDApp_NetworkStartEvt FUNCTION ZDApp_NetworkStartEvt,021203H ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME ISTACK, 2, STACK PUBLIC ZDApp_NodeProfileSync FUNCTION ZDApp_NodeProfileSync,021203H ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME XSTACK, 9, STACK PUBLIC ZDApp_NwkDescListProcessing FUNCTION ZDApp_NwkDescListProcessing,0a1203H ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME XSTACK, 14, STACK PUBLIC ZDApp_NwkStateUpdateCB FUNCTION ZDApp_NwkStateUpdateCB,021203H ARGFRAME XSTACK, 0, STACK LOCFRAME ISTACK, 2, STACK PUBLIC ZDApp_ProcessMsgCBs FUNCTION ZDApp_ProcessMsgCBs,0a1203H ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME XSTACK, 31, STACK PUBLIC ZDApp_ProcessNetworkJoin FUNCTION ZDApp_ProcessNetworkJoin,0a1203H ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME XSTACK, 12, STACK PUBLIC ZDApp_ProcessOSALMsg FUNCTION ZDApp_ProcessOSALMsg,0a1203H ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME XSTACK, 15, STACK PUBLIC ZDApp_ProcessSecEvent FUNCTION ZDApp_ProcessSecEvent,021203H ARGFRAME XSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK PUBLIC ZDApp_ProcessSecMsg FUNCTION ZDApp_ProcessSecMsg,021203H ARGFRAME XSTACK, 0, STACK LOCFRAME ISTACK, 2, STACK PUBLIC ZDApp_ReadNetworkRestoreState FUNCTION ZDApp_ReadNetworkRestoreState,021203H ARGFRAME XSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK PUBLIC ZDApp_RegisterCBs FUNCTION ZDApp_RegisterCBs,021203H ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME ISTACK, 2, STACK PUBLIC ZDApp_ResetNwkKey FUNCTION ZDApp_ResetNwkKey,0a1203H ARGFRAME XSTACK, 0, STACK LOCFRAME XSTACK, 35, STACK PUBLIC ZDApp_ResetTimerCancel FUNCTION ZDApp_ResetTimerCancel,021203H ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME ISTACK, 2, STACK PUBLIC ZDApp_ResetTimerStart FUNCTION ZDApp_ResetTimerStart,021203H ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME ISTACK, 2, STACK PUBLIC ZDApp_RestoreNetworkState FUNCTION ZDApp_RestoreNetworkState,021203H ARGFRAME XSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK PUBLIC ZDApp_RestoreNwkKey FUNCTION ZDApp_RestoreNwkKey,0a1203H ARGFRAME XSTACK, 0, STACK LOCFRAME XSTACK, 37, STACK PUBLIC ZDApp_SaveNetworkStateEvt FUNCTION ZDApp_SaveNetworkStateEvt,0203H ARGFRAME XSTACK, 0, STACK PUBLIC ZDApp_SaveNwkKey FUNCTION ZDApp_SaveNwkKey,0a1203H ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME XSTACK, 37, STACK PUBLIC ZDApp_SavedPollRate PUBLIC ZDApp_SecInit FUNCTION ZDApp_SecInit,021203H ARGFRAME XSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK PUBLIC ZDApp_SendEventMsg FUNCTION ZDApp_SendEventMsg,021203H ARGFRAME XSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK PUBLIC ZDApp_SendMsg FUNCTION ZDApp_SendMsg,0a1203H ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME ISTACK, 1, STACK LOCFRAME XSTACK, 19, STACK PUBLIC ZDApp_StartJoiningCycle FUNCTION ZDApp_StartJoiningCycle,021203H ARGFRAME XSTACK, 0, STACK LOCFRAME ISTACK, 2, STACK PUBLIC ZDApp_StopJoiningCycle FUNCTION ZDApp_StopJoiningCycle,0203H ARGFRAME XSTACK, 0, STACK LOCFRAME ISTACK, 2, STACK PUBLIC ZDApp_epDesc PUBLIC ZDApp_event_loop FUNCTION ZDApp_event_loop,0a1203H ARGFRAME XSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK PUBLIC ZDOInitDevice FUNCTION ZDOInitDevice,0a1203H ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC LOCFRAME XSTACK, 12, STACK PUBLIC ZDO_AddrChangeIndicationCB FUNCTION ZDO_AddrChangeIndicationCB,0a1203H ARGFRAME XSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK PUBLIC ZDO_ConcentratorIndicationCB FUNCTION ZDO_ConcentratorIndicationCB,0203H ARGFRAME XSTACK, 0, STACK LOCFRAME ISTACK, 1, STACK LOCFRAME XSTACK, 14, STACK PUBLIC ZDO_DeregisterForZdoCB FUNCTION ZDO_DeregisterForZdoCB,0203H ARGFRAME XSTACK, 0, STACK LOCFRAME ISTACK, 2, STACK PUBLIC ZDO_JoinConfirmCB FUNCTION ZDO_JoinConfirmCB,021203H ARGFRAME XSTACK, 0, STACK LOCFRAME ISTACK, 1, STACK LOCFRAME XSTACK, 14, STACK PUBLIC ZDO_JoinIndicationCB FUNCTION ZDO_JoinIndicationCB,0203H ARGFRAME XSTACK, 1, STACK PUBLIC ZDO_LeaveCnf FUNCTION ZDO_LeaveCnf,0a1203H ARGFRAME XSTACK, 0, STACK LOCFRAME XSTACK, 10, STACK PUBLIC ZDO_LeaveInd FUNCTION ZDO_LeaveInd,0a1203H ARGFRAME XSTACK, 0, STACK LOCFRAME ISTACK, 1, STACK LOCFRAME XSTACK, 12, STACK PUBLIC ZDO_ManytoOneFailureIndicationCB FUNCTION ZDO_ManytoOneFailureIndicationCB,021203H ARGFRAME XSTACK, 0, STACK LOCFRAME ISTACK, 2, STACK PUBLIC ZDO_NetworkDiscoveryConfirmCB FUNCTION ZDO_NetworkDiscoveryConfirmCB,021203H ARGFRAME XSTACK, 0, STACK LOCFRAME ISTACK, 3, STACK LOCFRAME XSTACK, 3, STACK PUBLIC ZDO_NetworkFormationConfirmCB FUNCTION ZDO_NetworkFormationConfirmCB,021203H ARGFRAME XSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK PUBLIC ZDO_PollConfirmCB FUNCTION ZDO_PollConfirmCB,0203H ARGFRAME XSTACK, 0, STACK PUBLIC ZDO_RegisterForZdoCB FUNCTION ZDO_RegisterForZdoCB,0203H ARGFRAME XSTACK, 0, STACK LOCFRAME ISTACK, 2, STACK PUBLIC ZDO_SrcRtgIndCB FUNCTION ZDO_SrcRtgIndCB,0203H ARGFRAME XSTACK, 0, STACK LOCFRAME ISTACK, 1, STACK LOCFRAME XSTACK, 14, STACK PUBLIC ZDO_StartRouterConfirmCB FUNCTION ZDO_StartRouterConfirmCB,021203H ARGFRAME XSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK PUBLIC ZDO_SyncIndicationCB FUNCTION ZDO_SyncIndicationCB,021203H ARGFRAME XSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK PUBLIC ZDO_UpdateDeviceIndication FUNCTION ZDO_UpdateDeviceIndication,0203H ARGFRAME XSTACK, 0, STACK PUBLIC ZDO_UseExtendedPANID PUBLIC ZDO_beaconNotifyIndCB FUNCTION ZDO_beaconNotifyIndCB,0a1203H ARGFRAME XSTACK, 0, STACK LOCFRAME ISTACK, 1, STACK LOCFRAME XSTACK, 14, STACK PUBWEAK __Constant_1 PUBWEAK __Constant_3e8 PUBLIC _tmpRejoinState PUBLIC continueJoining PUBLIC devStartMode PUBLIC devState PUBLIC nwkFrameCounterChanges PUBLIC nwkStatus PUBLIC retryCnt PUBLIC zdappMgmtNwkDiscReqInProgress PUBLIC zdappMgmtNwkDiscRspAddr PUBLIC zdappMgmtNwkDiscRspTransSeq PUBLIC zdappMgmtNwkDiscStartIndex PUBLIC zdappMgmtSavedNwkState PUBLIC zdoCBFunc PUBLIC zdoDiscCounter CFI Names cfiNames0 CFI StackFrame CFA_SP SP IDATA CFI StackFrame CFA_PSP16 PSP16 XDATA CFI StackFrame CFA_XSP16 XSP16 XDATA CFI StaticOverlayFrame CFA_IOVERLAY IOVERLAY CFI StaticOverlayFrame CFA_DOVERLAY DOVERLAY CFI Resource `PSW.CY`:1, `B.BR0`:1, `B.BR1`:1, `B.BR2`:1, `B.BR3`:1 CFI Resource `B.BR4`:1, `B.BR5`:1, `B.BR6`:1, `B.BR7`:1, `VB.BR8`:1 CFI Resource `VB.BR9`:1, `VB.BR10`:1, `VB.BR11`:1, `VB.BR12`:1 CFI Resource `VB.BR13`:1, `VB.BR14`:1, `VB.BR15`:1, VB:8, B:8, A:8 CFI Resource PSW:8, DPL0:8, DPH0:8, R0:8, R1:8, R2:8, R3:8, R4:8, R5:8 CFI Resource R6:8, R7:8, V0:8, V1:8, V2:8, V3:8, V4:8, V5:8, V6:8, V7:8 CFI Resource SP:8, PSPH:8, PSPL:8, PSP16:16, XSPH:8, XSPL:8, XSP16:16 CFI VirtualResource ?RET:24 CFI Resource ?BRET_EXT:8 CFI VirtualResource ?RET_HIGH:8, ?RET_LOW:8 CFI ResourceParts PSP16 PSPH, PSPL CFI ResourceParts XSP16 XSPH, XSPL CFI ResourceParts ?RET ?BRET_EXT, ?RET_HIGH, ?RET_LOW CFI EndNames cfiNames0 CFI Common cfiCommon0 Using cfiNames0 CFI CodeAlign 1 CFI DataAlign -1 CFI ReturnAddress ?RET CODE CFI CFA_DOVERLAY Used CFI CFA_IOVERLAY Used CFI CFA_SP SP+-3 CFI CFA_PSP16 PSP16+0 CFI CFA_XSP16 XSP16+0 CFI `PSW.CY` SameValue CFI `B.BR0` SameValue CFI `B.BR1` SameValue CFI `B.BR2` SameValue CFI `B.BR3` SameValue CFI `B.BR4` SameValue CFI `B.BR5` SameValue CFI `B.BR6` SameValue CFI `B.BR7` SameValue CFI `VB.BR8` SameValue CFI `VB.BR9` SameValue CFI `VB.BR10` SameValue CFI `VB.BR11` SameValue CFI `VB.BR12` SameValue CFI `VB.BR13` SameValue CFI `VB.BR14` SameValue CFI `VB.BR15` SameValue CFI VB SameValue CFI B Undefined CFI A Undefined CFI PSW SameValue CFI DPL0 SameValue CFI DPH0 SameValue CFI R0 Undefined CFI R1 Undefined CFI R2 Undefined CFI R3 Undefined CFI R4 Undefined CFI R5 Undefined CFI R6 SameValue CFI R7 SameValue CFI V0 SameValue CFI V1 SameValue CFI V2 SameValue CFI V3 SameValue CFI V4 SameValue CFI V5 SameValue CFI V6 SameValue CFI V7 SameValue CFI PSPH Undefined CFI PSPL Undefined CFI XSPH Undefined CFI XSPL Undefined CFI ?RET Concat CFI ?BRET_EXT Frame(CFA_SP, 3) CFI ?RET_HIGH Frame(CFA_SP, 2) CFI ?RET_LOW Frame(CFA_SP, 1) CFI EndCommon cfiCommon0 CFI Common cfiCommon1 Using cfiNames0 CFI CodeAlign 1 CFI DataAlign -1 CFI ReturnAddress ?RET CODE CFI CFA_DOVERLAY Used CFI CFA_IOVERLAY Used CFI CFA_SP SP+-2 CFI CFA_PSP16 PSP16+0 CFI CFA_XSP16 XSP16+0 CFI `PSW.CY` SameValue CFI `B.BR0` SameValue CFI `B.BR1` SameValue CFI `B.BR2` SameValue CFI `B.BR3` SameValue CFI `B.BR4` SameValue CFI `B.BR5` SameValue CFI `B.BR6` SameValue CFI `B.BR7` SameValue CFI `VB.BR8` SameValue CFI `VB.BR9` SameValue CFI `VB.BR10` SameValue CFI `VB.BR11` SameValue CFI `VB.BR12` SameValue CFI `VB.BR13` SameValue CFI `VB.BR14` SameValue CFI `VB.BR15` SameValue CFI VB SameValue CFI B SameValue CFI A SameValue CFI PSW SameValue CFI DPL0 SameValue CFI DPH0 SameValue CFI R0 SameValue CFI R1 SameValue CFI R2 SameValue CFI R3 SameValue CFI R4 SameValue CFI R5 SameValue CFI R6 SameValue CFI R7 SameValue CFI V0 SameValue CFI V1 SameValue CFI V2 SameValue CFI V3 SameValue CFI V4 SameValue CFI V5 SameValue CFI V6 SameValue CFI V7 SameValue CFI PSPH Undefined CFI PSPL Undefined CFI XSPH Undefined CFI XSPL Undefined CFI ?RET Concat CFI ?BRET_EXT SameValue CFI ?RET_HIGH Frame(CFA_SP, 2) CFI ?RET_LOW Frame(CFA_SP, 1) CFI EndCommon cfiCommon1 APSME_HoldDataRequests SYMBOL "APSME_HoldDataRequests" `??APSME_HoldDataRequests::?relay` SYMBOL "?relay", APSME_HoldDataRequests NLME_GetCoordShortAddr SYMBOL "NLME_GetCoordShortAddr" `??NLME_GetCoordShortAddr::?relay` SYMBOL "?relay", NLME_GetCoordShortAddr NLME_GetEnergyThreshold SYMBOL "NLME_GetEnergyThreshold" `??NLME_GetEnergyThreshold::?relay` SYMBOL "?relay", NLME_GetEnergyThreshold NLME_GetExtAddr SYMBOL "NLME_GetExtAddr" `??NLME_GetExtAddr::?relay` SYMBOL "?relay", NLME_GetExtAddr NLME_GetShortAddr SYMBOL "NLME_GetShortAddr" `??NLME_GetShortAddr::?relay` SYMBOL "?relay", NLME_GetShortAddr NLME_InitNV SYMBOL "NLME_InitNV" `??NLME_InitNV::?relay` SYMBOL "?relay", NLME_InitNV NLME_JoinRequest SYMBOL "NLME_JoinRequest" `??NLME_JoinRequest::?relay` SYMBOL "?relay", NLME_JoinRequest NLME_LeaveRsp SYMBOL "NLME_LeaveRsp" `??NLME_LeaveRsp::?relay` SYMBOL "?relay", NLME_LeaveRsp NLME_NetworkDiscoveryRequest SYMBOL "NLME_NetworkDiscoveryRequest" `??NLME_NetworkDiscoveryRequest::?relay` SYMBOL "?relay", NLME_NetworkDiscoveryRequest NLME_NwkDiscTerm SYMBOL "NLME_NwkDiscTerm" `??NLME_NwkDiscTerm::?relay` SYMBOL "?relay", NLME_NwkDiscTerm NLME_ReJoinRequest SYMBOL "NLME_ReJoinRequest" `??NLME_ReJoinRequest::?relay` SYMBOL "?relay", NLME_ReJoinRequest NLME_RemoveChild SYMBOL "NLME_RemoveChild" `??NLME_RemoveChild::?relay` SYMBOL "?relay", NLME_RemoveChild NLME_RestoreFromNV SYMBOL "NLME_RestoreFromNV" `??NLME_RestoreFromNV::?relay` SYMBOL "?relay", NLME_RestoreFromNV NLME_SetBroadcastFilter SYMBOL "NLME_SetBroadcastFilter" `??NLME_SetBroadcastFilter::?relay` SYMBOL "?relay", NLME_SetBroadcastFilter NLME_SetEnergyThreshold SYMBOL "NLME_SetEnergyThreshold" `??NLME_SetEnergyThreshold::?relay` SYMBOL "?relay", NLME_SetEnergyThreshold NLME_SetPollRate SYMBOL "NLME_SetPollRate" `??NLME_SetPollRate::?relay` SYMBOL "?relay", NLME_SetPollRate NLME_SetQueuedPollRate SYMBOL "NLME_SetQueuedPollRate" `??NLME_SetQueuedPollRate::?relay` SYMBOL "?relay", NLME_SetQueuedPollRate NLME_SetResponseRate SYMBOL "NLME_SetResponseRate" `??NLME_SetResponseRate::?relay` SYMBOL "?relay", NLME_SetResponseRate NLME_StartRouterRequest SYMBOL "NLME_StartRouterRequest" `??NLME_StartRouterRequest::?relay` SYMBOL "?relay", NLME_StartRouterRequest RTG_MTORouteReq SYMBOL "RTG_MTORouteReq" `??RTG_MTORouteReq::?relay` SYMBOL "?relay", RTG_MTORouteReq SSP_ReadNwkActiveKey SYMBOL "SSP_ReadNwkActiveKey" `??SSP_ReadNwkActiveKey::?relay` SYMBOL "?relay", SSP_ReadNwkActiveKey ZDConfig_InitDescriptors SYMBOL "ZDConfig_InitDescriptors" `??ZDConfig_InitDescriptors::?relay` SYMBOL "?relay", ZDConfig_InitDescriptors ZDO_Init SYMBOL "ZDO_Init" `??ZDO_Init::?relay` SYMBOL "?relay", ZDO_Init ZDO_ParseAddrRsp SYMBOL "ZDO_ParseAddrRsp" `??ZDO_ParseAddrRsp::?relay` SYMBOL "?relay", ZDO_ParseAddrRsp ZDO_ParseBindUnbindReq SYMBOL "ZDO_ParseBindUnbindReq" `??ZDO_ParseBindUnbindReq::?relay` SYMBOL "?relay", ZDO_ParseBindUnbindReq ZDO_ProcessBindUnbindReq SYMBOL "ZDO_ProcessBindUnbindReq" `??ZDO_ProcessBindUnbindReq::?relay` SYMBOL "?relay", ZDO_ProcessBindUnbindReq ZDO_RegisterForZDOMsg SYMBOL "ZDO_RegisterForZDOMsg" `??ZDO_RegisterForZDOMsg::?relay` SYMBOL "?relay", ZDO_RegisterForZDOMsg ZDO_StartDevice SYMBOL "ZDO_StartDevice" `??ZDO_StartDevice::?relay` SYMBOL "?relay", ZDO_StartDevice ZDO_UpdateAddrManager SYMBOL "ZDO_UpdateAddrManager" `??ZDO_UpdateAddrManager::?relay` SYMBOL "?relay", ZDO_UpdateAddrManager ZDO_UpdateNwkStatus SYMBOL "ZDO_UpdateNwkStatus" `??ZDO_UpdateNwkStatus::?relay` SYMBOL "?relay", ZDO_UpdateNwkStatus ZDP_DeviceAnnce SYMBOL "ZDP_DeviceAnnce" `??ZDP_DeviceAnnce::?relay` SYMBOL "?relay", ZDP_DeviceAnnce ZDP_GenericRsp SYMBOL "ZDP_GenericRsp" `??ZDP_GenericRsp::?relay` SYMBOL "?relay", ZDP_GenericRsp ZDP_IncomingData SYMBOL "ZDP_IncomingData" `??ZDP_IncomingData::?relay` SYMBOL "?relay", ZDP_IncomingData ZDSecMgrInit SYMBOL "ZDSecMgrInit" `??ZDSecMgrInit::?relay` SYMBOL "?relay", ZDSecMgrInit ZDSecMgrNewDeviceEvent SYMBOL "ZDSecMgrNewDeviceEvent" `??ZDSecMgrNewDeviceEvent::?relay` SYMBOL "?relay", ZDSecMgrNewDeviceEvent ZDSecMgrRemoveDeviceInd SYMBOL "ZDSecMgrRemoveDeviceInd" `??ZDSecMgrRemoveDeviceInd::?relay` SYMBOL "?relay", ZDSecMgrRemoveDeviceInd ZDSecMgrSaveTCLinkKey SYMBOL "ZDSecMgrSaveTCLinkKey" `??ZDSecMgrSaveTCLinkKey::?relay` SYMBOL "?relay", ZDSecMgrSaveTCLinkKey ZDSecMgrSwitchKeyInd SYMBOL "ZDSecMgrSwitchKeyInd" `??ZDSecMgrSwitchKeyInd::?relay` SYMBOL "?relay", ZDSecMgrSwitchKeyInd ZDSecMgrTransportKeyInd SYMBOL "ZDSecMgrTransportKeyInd" `??ZDSecMgrTransportKeyInd::?relay` SYMBOL "?relay", ZDSecMgrTransportKeyInd ZMacSetReq SYMBOL "ZMacSetReq" `??ZMacSetReq::?relay` SYMBOL "?relay", ZMacSetReq afRegister SYMBOL "afRegister" `??afRegister::?relay` SYMBOL "?relay", afRegister afSetMatch SYMBOL "afSetMatch" `??afSetMatch::?relay` SYMBOL "?relay", afSetMatch nwkNeighborInitTable SYMBOL "nwkNeighborInitTable" `??nwkNeighborInitTable::?relay` SYMBOL "?relay", nwkNeighborInitTable nwk_ExtPANIDValid SYMBOL "nwk_ExtPANIDValid" `??nwk_ExtPANIDValid::?relay` SYMBOL "?relay", nwk_ExtPANIDValid nwk_getNwkDescList SYMBOL "nwk_getNwkDescList" `??nwk_getNwkDescList::?relay` SYMBOL "?relay", nwk_getNwkDescList osal_get_timeoutEx SYMBOL "osal_get_timeoutEx" `??osal_get_timeoutEx::?relay` SYMBOL "?relay", osal_get_timeoutEx osal_mem_alloc SYMBOL "osal_mem_alloc" `??osal_mem_alloc::?relay` SYMBOL "?relay", osal_mem_alloc osal_mem_free SYMBOL "osal_mem_free" `??osal_mem_free::?relay` SYMBOL "?relay", osal_mem_free osal_memcpy SYMBOL "osal_memcpy" `??osal_memcpy::?relay` SYMBOL "?relay", osal_memcpy osal_memset SYMBOL "osal_memset" `??osal_memset::?relay` SYMBOL "?relay", osal_memset osal_msg_allocate SYMBOL "osal_msg_allocate" `??osal_msg_allocate::?relay` SYMBOL "?relay", osal_msg_allocate osal_msg_deallocate SYMBOL "osal_msg_deallocate" `??osal_msg_deallocate::?relay` SYMBOL "?relay", osal_msg_deallocate osal_msg_receive SYMBOL "osal_msg_receive" `??osal_msg_receive::?relay` SYMBOL "?relay", osal_msg_receive osal_msg_send SYMBOL "osal_msg_send" `??osal_msg_send::?relay` SYMBOL "?relay", osal_msg_send osal_nv_item_init SYMBOL "osal_nv_item_init" `??osal_nv_item_init::?relay` SYMBOL "?relay", osal_nv_item_init osal_nv_read SYMBOL "osal_nv_read" `??osal_nv_read::?relay` SYMBOL "?relay", osal_nv_read osal_nv_write SYMBOL "osal_nv_write" `??osal_nv_write::?relay` SYMBOL "?relay", osal_nv_write osal_pwrmgr_device SYMBOL "osal_pwrmgr_device" `??osal_pwrmgr_device::?relay` SYMBOL "?relay", osal_pwrmgr_device osal_rand SYMBOL "osal_rand" `??osal_rand::?relay` SYMBOL "?relay", osal_rand osal_set_event SYMBOL "osal_set_event" `??osal_set_event::?relay` SYMBOL "?relay", osal_set_event osal_start_timerEx SYMBOL "osal_start_timerEx" `??osal_start_timerEx::?relay` SYMBOL "?relay", osal_start_timerEx osal_stop_timerEx SYMBOL "osal_stop_timerEx" `??osal_stop_timerEx::?relay` SYMBOL "?relay", osal_stop_timerEx sAddrExtCmp SYMBOL "sAddrExtCmp" `??sAddrExtCmp::?relay` SYMBOL "?relay", sAddrExtCmp sAddrExtCpy SYMBOL "sAddrExtCpy" `??sAddrExtCpy::?relay` SYMBOL "?relay", sAddrExtCpy zgInitItems SYMBOL "zgInitItems" `??zgInitItems::?relay` SYMBOL "?relay", zgInitItems zgReadStartupOptions SYMBOL "zgReadStartupOptions" `??zgReadStartupOptions::?relay` SYMBOL "?relay", zgReadStartupOptions zgWriteStartupOptions SYMBOL "zgWriteStartupOptions" `??zgWriteStartupOptions::?relay` SYMBOL "?relay", zgWriteStartupOptions AddrMgrWriteNVRequest SYMBOL "AddrMgrWriteNVRequest" `??AddrMgrWriteNVRequest::?relay` SYMBOL "?relay", AddrMgrWriteNVRequest ZDAppCheckForHoldKey SYMBOL "ZDAppCheckForHoldKey" `??ZDAppCheckForHoldKey::?relay` SYMBOL "?relay", ZDAppCheckForHoldKey ZDAppDetermineDeviceType SYMBOL "ZDAppDetermineDeviceType" `??ZDAppDetermineDeviceType::?relay` SYMBOL "?relay", ZDAppDetermineDeviceType ZDApp_AnnounceNewAddress SYMBOL "ZDApp_AnnounceNewAddress" `??ZDApp_AnnounceNewAddress::?relay` SYMBOL "?relay", ZDApp_AnnounceNewAddress ZDApp_ChangeMatchDescRespPermission SYMBOL "ZDApp_ChangeMatchDescRespPermission" `??ZDApp_ChangeMatchDescRespPermission::?relay` SYMBOL "?relay", ZDApp_ChangeMatchDescRespPermission ZDApp_CoordStartPANIDConflictCB SYMBOL "ZDApp_CoordStartPANIDConflictCB" `??ZDApp_CoordStartPANIDConflictCB::?relay` SYMBOL "?relay", ZDApp_CoordStartPANIDConflictCB ZDApp_DeviceAuthEvt SYMBOL "ZDApp_DeviceAuthEvt" `??ZDApp_DeviceAuthEvt::?relay` SYMBOL "?relay", ZDApp_DeviceAuthEvt ZDApp_DeviceConfigured SYMBOL "ZDApp_DeviceConfigured" `??ZDApp_DeviceConfigured::?relay` SYMBOL "?relay", ZDApp_DeviceConfigured ZDApp_InMsgCB SYMBOL "ZDApp_InMsgCB" `??ZDApp_InMsgCB::?relay` SYMBOL "?relay", ZDApp_InMsgCB ZDApp_Init SYMBOL "ZDApp_Init" `??ZDApp_Init::?relay` SYMBOL "?relay", ZDApp_Init ZDApp_InitUserDesc SYMBOL "ZDApp_InitUserDesc" `??ZDApp_InitUserDesc::?relay` SYMBOL "?relay", ZDApp_InitUserDesc ZDApp_InitZdoCBFunc SYMBOL "ZDApp_InitZdoCBFunc" `??ZDApp_InitZdoCBFunc::?relay` SYMBOL "?relay", ZDApp_InitZdoCBFunc ZDApp_JoinReq SYMBOL "ZDApp_JoinReq" `??ZDApp_JoinReq::?relay` SYMBOL "?relay", ZDApp_JoinReq ZDApp_LeaveCtrlBypass SYMBOL "ZDApp_LeaveCtrlBypass" `??ZDApp_LeaveCtrlBypass::?relay` SYMBOL "?relay", ZDApp_LeaveCtrlBypass ZDApp_LeaveCtrlInit SYMBOL "ZDApp_LeaveCtrlInit" `??ZDApp_LeaveCtrlInit::?relay` SYMBOL "?relay", ZDApp_LeaveCtrlInit ZDApp_LeaveCtrlReset SYMBOL "ZDApp_LeaveCtrlReset" `??ZDApp_LeaveCtrlReset::?relay` SYMBOL "?relay", ZDApp_LeaveCtrlReset ZDApp_LeaveCtrlSet SYMBOL "ZDApp_LeaveCtrlSet" `??ZDApp_LeaveCtrlSet::?relay` SYMBOL "?relay", ZDApp_LeaveCtrlSet ZDApp_LeaveCtrlStartup SYMBOL "ZDApp_LeaveCtrlStartup" `??ZDApp_LeaveCtrlStartup::?relay` SYMBOL "?relay", ZDApp_LeaveCtrlStartup ZDApp_LeaveReset SYMBOL "ZDApp_LeaveReset" `??ZDApp_LeaveReset::?relay` SYMBOL "?relay", ZDApp_LeaveReset ZDApp_LeaveUpdate SYMBOL "ZDApp_LeaveUpdate" `??ZDApp_LeaveUpdate::?relay` SYMBOL "?relay", ZDApp_LeaveUpdate ZDApp_NVUpdate SYMBOL "ZDApp_NVUpdate" `??ZDApp_NVUpdate::?relay` SYMBOL "?relay", ZDApp_NVUpdate ZDApp_NetworkDiscoveryReq SYMBOL "ZDApp_NetworkDiscoveryReq" `??ZDApp_NetworkDiscoveryReq::?relay` SYMBOL "?relay", ZDApp_NetworkDiscoveryReq ZDApp_NetworkInit SYMBOL "ZDApp_NetworkInit" `??ZDApp_NetworkInit::?relay` SYMBOL "?relay", ZDApp_NetworkInit ZDApp_NetworkStartEvt SYMBOL "ZDApp_NetworkStartEvt" `??ZDApp_NetworkStartEvt::?relay` SYMBOL "?relay", ZDApp_NetworkStartEvt ZDApp_NodeProfileSync SYMBOL "ZDApp_NodeProfileSync" `??ZDApp_NodeProfileSync::?relay` SYMBOL "?relay", ZDApp_NodeProfileSync ZDApp_NwkDescListProcessing SYMBOL "ZDApp_NwkDescListProcessing" `??ZDApp_NwkDescListProcessing::?relay` SYMBOL "?relay", ZDApp_NwkDescListProcessing ZDApp_NwkStateUpdateCB SYMBOL "ZDApp_NwkStateUpdateCB" `??ZDApp_NwkStateUpdateCB::?relay` SYMBOL "?relay", ZDApp_NwkStateUpdateCB ZDApp_ProcessMsgCBs SYMBOL "ZDApp_ProcessMsgCBs" `??ZDApp_ProcessMsgCBs::?relay` SYMBOL "?relay", ZDApp_ProcessMsgCBs ZDApp_ProcessNetworkJoin SYMBOL "ZDApp_ProcessNetworkJoin" `??ZDApp_ProcessNetworkJoin::?relay` SYMBOL "?relay", ZDApp_ProcessNetworkJoin ZDApp_ProcessOSALMsg SYMBOL "ZDApp_ProcessOSALMsg" `??ZDApp_ProcessOSALMsg::?relay` SYMBOL "?relay", ZDApp_ProcessOSALMsg ZDApp_ProcessSecEvent SYMBOL "ZDApp_ProcessSecEvent" `??ZDApp_ProcessSecEvent::?relay` SYMBOL "?relay", ZDApp_ProcessSecEvent ZDApp_ProcessSecMsg SYMBOL "ZDApp_ProcessSecMsg" `??ZDApp_ProcessSecMsg::?relay` SYMBOL "?relay", ZDApp_ProcessSecMsg ZDApp_ReadNetworkRestoreState SYMBOL "ZDApp_ReadNetworkRestoreState" `??ZDApp_ReadNetworkRestoreState::?relay` SYMBOL "?relay", ZDApp_ReadNetworkRestoreState ZDApp_RegisterCBs SYMBOL "ZDApp_RegisterCBs" `??ZDApp_RegisterCBs::?relay` SYMBOL "?relay", ZDApp_RegisterCBs ZDApp_ResetNwkKey SYMBOL "ZDApp_ResetNwkKey" `??ZDApp_ResetNwkKey::?relay` SYMBOL "?relay", ZDApp_ResetNwkKey ZDApp_ResetTimerCancel SYMBOL "ZDApp_ResetTimerCancel" `??ZDApp_ResetTimerCancel::?relay` SYMBOL "?relay", ZDApp_ResetTimerCancel ZDApp_ResetTimerStart SYMBOL "ZDApp_ResetTimerStart" `??ZDApp_ResetTimerStart::?relay` SYMBOL "?relay", ZDApp_ResetTimerStart ZDApp_RestoreNetworkState SYMBOL "ZDApp_RestoreNetworkState" `??ZDApp_RestoreNetworkState::?relay` SYMBOL "?relay", ZDApp_RestoreNetworkState ZDApp_RestoreNwkKey SYMBOL "ZDApp_RestoreNwkKey" `??ZDApp_RestoreNwkKey::?relay` SYMBOL "?relay", ZDApp_RestoreNwkKey ZDApp_SaveNetworkStateEvt SYMBOL "ZDApp_SaveNetworkStateEvt" `??ZDApp_SaveNetworkStateEvt::?relay` SYMBOL "?relay", ZDApp_SaveNetworkStateEvt ZDApp_SaveNwkKey SYMBOL "ZDApp_SaveNwkKey" `??ZDApp_SaveNwkKey::?relay` SYMBOL "?relay", ZDApp_SaveNwkKey ZDApp_SecInit SYMBOL "ZDApp_SecInit" `??ZDApp_SecInit::?relay` SYMBOL "?relay", ZDApp_SecInit ZDApp_SendEventMsg SYMBOL "ZDApp_SendEventMsg" `??ZDApp_SendEventMsg::?relay` SYMBOL "?relay", ZDApp_SendEventMsg ZDApp_SendMsg SYMBOL "ZDApp_SendMsg" `??ZDApp_SendMsg::?relay` SYMBOL "?relay", ZDApp_SendMsg ZDApp_StartJoiningCycle SYMBOL "ZDApp_StartJoiningCycle" `??ZDApp_StartJoiningCycle::?relay` SYMBOL "?relay", ZDApp_StartJoiningCycle ZDApp_StopJoiningCycle SYMBOL "ZDApp_StopJoiningCycle" `??ZDApp_StopJoiningCycle::?relay` SYMBOL "?relay", ZDApp_StopJoiningCycle ZDApp_event_loop SYMBOL "ZDApp_event_loop" `??ZDApp_event_loop::?relay` SYMBOL "?relay", ZDApp_event_loop ZDOInitDevice SYMBOL "ZDOInitDevice" `??ZDOInitDevice::?relay` SYMBOL "?relay", ZDOInitDevice ZDO_AddrChangeIndicationCB SYMBOL "ZDO_AddrChangeIndicationCB" `??ZDO_AddrChangeIndicationCB::?relay` SYMBOL "?relay", ZDO_AddrChangeIndicationCB ZDO_ConcentratorIndicationCB SYMBOL "ZDO_ConcentratorIndicationCB" `??ZDO_ConcentratorIndicationCB::?relay` SYMBOL "?relay", ZDO_ConcentratorIndicationCB ZDO_DeregisterForZdoCB SYMBOL "ZDO_DeregisterForZdoCB" `??ZDO_DeregisterForZdoCB::?relay` SYMBOL "?relay", ZDO_DeregisterForZdoCB ZDO_JoinConfirmCB SYMBOL "ZDO_JoinConfirmCB" `??ZDO_JoinConfirmCB::?relay` SYMBOL "?relay", ZDO_JoinConfirmCB ZDO_JoinIndicationCB SYMBOL "ZDO_JoinIndicationCB" `??ZDO_JoinIndicationCB::?relay` SYMBOL "?relay", ZDO_JoinIndicationCB ZDO_LeaveCnf SYMBOL "ZDO_LeaveCnf" `??ZDO_LeaveCnf::?relay` SYMBOL "?relay", ZDO_LeaveCnf ZDO_LeaveInd SYMBOL "ZDO_LeaveInd" `??ZDO_LeaveInd::?relay` SYMBOL "?relay", ZDO_LeaveInd ZDO_ManytoOneFailureIndicationCB SYMBOL "ZDO_ManytoOneFailureIndicationCB" `??ZDO_ManytoOneFailureIndicationCB::?relay` SYMBOL "?relay", ZDO_ManytoOneFailureIndicationCB ZDO_NetworkDiscoveryConfirmCB SYMBOL "ZDO_NetworkDiscoveryConfirmCB" `??ZDO_NetworkDiscoveryConfirmCB::?relay` SYMBOL "?relay", ZDO_NetworkDiscoveryConfirmCB ZDO_NetworkFormationConfirmCB SYMBOL "ZDO_NetworkFormationConfirmCB" `??ZDO_NetworkFormationConfirmCB::?relay` SYMBOL "?relay", ZDO_NetworkFormationConfirmCB ZDO_PollConfirmCB SYMBOL "ZDO_PollConfirmCB" `??ZDO_PollConfirmCB::?relay` SYMBOL "?relay", ZDO_PollConfirmCB ZDO_RegisterForZdoCB SYMBOL "ZDO_RegisterForZdoCB" `??ZDO_RegisterForZdoCB::?relay` SYMBOL "?relay", ZDO_RegisterForZdoCB ZDO_SrcRtgIndCB SYMBOL "ZDO_SrcRtgIndCB" `??ZDO_SrcRtgIndCB::?relay` SYMBOL "?relay", ZDO_SrcRtgIndCB ZDO_StartRouterConfirmCB SYMBOL "ZDO_StartRouterConfirmCB" `??ZDO_StartRouterConfirmCB::?relay` SYMBOL "?relay", ZDO_StartRouterConfirmCB ZDO_SyncIndicationCB SYMBOL "ZDO_SyncIndicationCB" `??ZDO_SyncIndicationCB::?relay` SYMBOL "?relay", ZDO_SyncIndicationCB ZDO_UpdateDeviceIndication SYMBOL "ZDO_UpdateDeviceIndication" `??ZDO_UpdateDeviceIndication::?relay` SYMBOL "?relay", ZDO_UpdateDeviceIndication ZDO_beaconNotifyIndCB SYMBOL "ZDO_beaconNotifyIndCB" `??ZDO_beaconNotifyIndCB::?relay` SYMBOL "?relay", ZDO_beaconNotifyIndCB EXTERN `??APSME_HoldDataRequests::?relay` FUNCTION `??APSME_HoldDataRequests::?relay`,00H EXTERN `??NLME_GetCoordShortAddr::?relay` FUNCTION `??NLME_GetCoordShortAddr::?relay`,00H EXTERN `??NLME_GetEnergyThreshold::?relay` FUNCTION `??NLME_GetEnergyThreshold::?relay`,00H EXTERN `??NLME_GetExtAddr::?relay` FUNCTION `??NLME_GetExtAddr::?relay`,00H EXTERN `??NLME_GetShortAddr::?relay` FUNCTION `??NLME_GetShortAddr::?relay`,00H EXTERN `??NLME_InitNV::?relay` FUNCTION `??NLME_InitNV::?relay`,00H EXTERN `??NLME_JoinRequest::?relay` FUNCTION `??NLME_JoinRequest::?relay`,00H EXTERN `??NLME_LeaveRsp::?relay` FUNCTION `??NLME_LeaveRsp::?relay`,00H EXTERN `??NLME_NetworkDiscoveryRequest::?relay` FUNCTION `??NLME_NetworkDiscoveryRequest::?relay`,00H EXTERN `??NLME_NwkDiscTerm::?relay` FUNCTION `??NLME_NwkDiscTerm::?relay`,00H EXTERN `??NLME_ReJoinRequest::?relay` FUNCTION `??NLME_ReJoinRequest::?relay`,00H EXTERN `??NLME_RemoveChild::?relay` FUNCTION `??NLME_RemoveChild::?relay`,00H EXTERN `??NLME_RestoreFromNV::?relay` FUNCTION `??NLME_RestoreFromNV::?relay`,00H EXTERN `??NLME_SetBroadcastFilter::?relay` FUNCTION `??NLME_SetBroadcastFilter::?relay`,00H EXTERN `??NLME_SetEnergyThreshold::?relay` FUNCTION `??NLME_SetEnergyThreshold::?relay`,00H EXTERN `??NLME_SetPollRate::?relay` FUNCTION `??NLME_SetPollRate::?relay`,00H EXTERN `??NLME_SetQueuedPollRate::?relay` FUNCTION `??NLME_SetQueuedPollRate::?relay`,00H EXTERN `??NLME_SetResponseRate::?relay` FUNCTION `??NLME_SetResponseRate::?relay`,00H EXTERN `??NLME_StartRouterRequest::?relay` FUNCTION `??NLME_StartRouterRequest::?relay`,00H EXTERN `??RTG_MTORouteReq::?relay` FUNCTION `??RTG_MTORouteReq::?relay`,00H EXTERN `??SSP_ReadNwkActiveKey::?relay` FUNCTION `??SSP_ReadNwkActiveKey::?relay`,00H EXTERN `??ZDConfig_InitDescriptors::?relay` FUNCTION `??ZDConfig_InitDescriptors::?relay`,00H EXTERN `??ZDO_Init::?relay` FUNCTION `??ZDO_Init::?relay`,00H EXTERN `??ZDO_ParseAddrRsp::?relay` FUNCTION `??ZDO_ParseAddrRsp::?relay`,00H EXTERN `??ZDO_ParseBindUnbindReq::?relay` FUNCTION `??ZDO_ParseBindUnbindReq::?relay`,00H EXTERN `??ZDO_ProcessBindUnbindReq::?relay` FUNCTION `??ZDO_ProcessBindUnbindReq::?relay`,00H EXTERN `??ZDO_RegisterForZDOMsg::?relay` FUNCTION `??ZDO_RegisterForZDOMsg::?relay`,00H EXTERN `??ZDO_StartDevice::?relay` FUNCTION `??ZDO_StartDevice::?relay`,00H EXTERN `??ZDO_UpdateAddrManager::?relay` FUNCTION `??ZDO_UpdateAddrManager::?relay`,00H EXTERN `??ZDO_UpdateNwkStatus::?relay` FUNCTION `??ZDO_UpdateNwkStatus::?relay`,00H EXTERN `??ZDP_DeviceAnnce::?relay` FUNCTION `??ZDP_DeviceAnnce::?relay`,00H EXTERN `??ZDP_GenericRsp::?relay` FUNCTION `??ZDP_GenericRsp::?relay`,00H EXTERN `??ZDP_IncomingData::?relay` FUNCTION `??ZDP_IncomingData::?relay`,00H EXTERN `??ZDSecMgrInit::?relay` FUNCTION `??ZDSecMgrInit::?relay`,00H EXTERN `??ZDSecMgrNewDeviceEvent::?relay` FUNCTION `??ZDSecMgrNewDeviceEvent::?relay`,00H EXTERN `??ZDSecMgrRemoveDeviceInd::?relay` FUNCTION `??ZDSecMgrRemoveDeviceInd::?relay`,00H EXTERN `??ZDSecMgrSaveTCLinkKey::?relay` FUNCTION `??ZDSecMgrSaveTCLinkKey::?relay`,00H EXTERN `??ZDSecMgrSwitchKeyInd::?relay` FUNCTION `??ZDSecMgrSwitchKeyInd::?relay`,00H EXTERN `??ZDSecMgrTransportKeyInd::?relay` FUNCTION `??ZDSecMgrTransportKeyInd::?relay`,00H EXTERN `??ZMacSetReq::?relay` FUNCTION `??ZMacSetReq::?relay`,00H EXTERN `??afRegister::?relay` FUNCTION `??afRegister::?relay`,00H EXTERN `??afSetMatch::?relay` FUNCTION `??afSetMatch::?relay`,00H EXTERN `??nwkNeighborInitTable::?relay` FUNCTION `??nwkNeighborInitTable::?relay`,00H EXTERN `??nwk_ExtPANIDValid::?relay` FUNCTION `??nwk_ExtPANIDValid::?relay`,00H EXTERN `??nwk_getNwkDescList::?relay` FUNCTION `??nwk_getNwkDescList::?relay`,00H EXTERN `??osal_get_timeoutEx::?relay` FUNCTION `??osal_get_timeoutEx::?relay`,00H EXTERN `??osal_mem_alloc::?relay` FUNCTION `??osal_mem_alloc::?relay`,00H EXTERN `??osal_mem_free::?relay` FUNCTION `??osal_mem_free::?relay`,00H EXTERN `??osal_memcpy::?relay` FUNCTION `??osal_memcpy::?relay`,00H EXTERN `??osal_memset::?relay` FUNCTION `??osal_memset::?relay`,00H EXTERN `??osal_msg_allocate::?relay` FUNCTION `??osal_msg_allocate::?relay`,00H EXTERN `??osal_msg_deallocate::?relay` FUNCTION `??osal_msg_deallocate::?relay`,00H EXTERN `??osal_msg_receive::?relay` FUNCTION `??osal_msg_receive::?relay`,00H EXTERN `??osal_msg_send::?relay` FUNCTION `??osal_msg_send::?relay`,00H EXTERN `??osal_nv_item_init::?relay` FUNCTION `??osal_nv_item_init::?relay`,00H EXTERN `??osal_nv_read::?relay` FUNCTION `??osal_nv_read::?relay`,00H EXTERN `??osal_nv_write::?relay` FUNCTION `??osal_nv_write::?relay`,00H EXTERN `??osal_pwrmgr_device::?relay` FUNCTION `??osal_pwrmgr_device::?relay`,00H EXTERN `??osal_rand::?relay` FUNCTION `??osal_rand::?relay`,00H EXTERN `??osal_set_event::?relay` FUNCTION `??osal_set_event::?relay`,00H EXTERN `??osal_start_timerEx::?relay` FUNCTION `??osal_start_timerEx::?relay`,00H EXTERN `??osal_stop_timerEx::?relay` FUNCTION `??osal_stop_timerEx::?relay`,00H EXTERN `??sAddrExtCmp::?relay` FUNCTION `??sAddrExtCmp::?relay`,00H EXTERN `??sAddrExtCpy::?relay` FUNCTION `??sAddrExtCpy::?relay`,00H EXTERN `??zgInitItems::?relay` FUNCTION `??zgInitItems::?relay`,00H EXTERN `??zgReadStartupOptions::?relay` FUNCTION `??zgReadStartupOptions::?relay`,00H EXTERN `??zgWriteStartupOptions::?relay` FUNCTION `??zgWriteStartupOptions::?relay`,00H EXTERN AIB_apsUseExtendedPANID EXTERN AIB_apsUseInsecureJoin EXTERN APSME_HoldDataRequests FUNCTION APSME_HoldDataRequests,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 10, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NLME_GetCoordShortAddr FUNCTION NLME_GetCoordShortAddr,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NLME_GetEnergyThreshold FUNCTION NLME_GetEnergyThreshold,0202H ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NLME_GetExtAddr FUNCTION NLME_GetExtAddr,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 10, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NLME_GetShortAddr FUNCTION NLME_GetShortAddr,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NLME_InitNV FUNCTION NLME_InitNV,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NLME_JoinRequest FUNCTION NLME_JoinRequest,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 16, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NLME_LeaveRsp FUNCTION NLME_LeaveRsp,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NLME_NetworkDiscoveryRequest FUNCTION NLME_NetworkDiscoveryRequest,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NLME_NwkDiscTerm FUNCTION NLME_NwkDiscTerm,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NLME_ReJoinRequest FUNCTION NLME_ReJoinRequest,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NLME_RemoveChild FUNCTION NLME_RemoveChild,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NLME_RestoreFromNV FUNCTION NLME_RestoreFromNV,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NLME_SetBroadcastFilter FUNCTION NLME_SetBroadcastFilter,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NLME_SetEnergyThreshold FUNCTION NLME_SetEnergyThreshold,0202H ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NLME_SetPollRate FUNCTION NLME_SetPollRate,0202H ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NLME_SetQueuedPollRate FUNCTION NLME_SetQueuedPollRate,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NLME_SetResponseRate FUNCTION NLME_SetResponseRate,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NLME_StartRouterRequest FUNCTION NLME_StartRouterRequest,0202H ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN NWK_TaskID EXTERN NwkDescList EXTERN Onboard_soft_reset FUNCTION Onboard_soft_reset,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN RTG_MTORouteReq FUNCTION RTG_MTORouteReq,0202H ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN SSP_ReadNwkActiveKey FUNCTION SSP_ReadNwkActiveKey,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 33, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZDConfig_InitDescriptors FUNCTION ZDConfig_InitDescriptors,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZDO_Config_Node_Descriptor EXTERN ZDO_Init FUNCTION ZDO_Init,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZDO_ParseAddrRsp FUNCTION ZDO_ParseAddrRsp,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 31, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZDO_ParseBindUnbindReq FUNCTION ZDO_ParseBindUnbindReq,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 31, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZDO_ProcessBindUnbindReq FUNCTION ZDO_ProcessBindUnbindReq,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 31, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZDO_RegisterForZDOMsg FUNCTION ZDO_RegisterForZDOMsg,0202H ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZDO_StartDevice FUNCTION ZDO_StartDevice,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZDO_UpdateAddrManager FUNCTION ZDO_UpdateAddrManager,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 31, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZDO_UpdateNwkStatus FUNCTION ZDO_UpdateNwkStatus,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZDP_DeviceAnnce FUNCTION ZDP_DeviceAnnce,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZDP_GenericRsp FUNCTION ZDP_GenericRsp,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZDP_IncomingData FUNCTION ZDP_IncomingData,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZDSecMgrInit FUNCTION ZDSecMgrInit,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZDSecMgrNewDeviceEvent FUNCTION ZDSecMgrNewDeviceEvent,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZDSecMgrRemoveDeviceInd FUNCTION ZDSecMgrRemoveDeviceInd,0202H ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZDSecMgrSaveTCLinkKey FUNCTION ZDSecMgrSaveTCLinkKey,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZDSecMgrSwitchKeyInd FUNCTION ZDSecMgrSwitchKeyInd,0202H ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZDSecMgrTransportKeyInd FUNCTION ZDSecMgrTransportKeyInd,0202H ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN ZMacSetReq FUNCTION ZMacSetReq,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN _NIB EXTERN afRegister FUNCTION afRegister,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN afSetMatch FUNCTION afSetMatch,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN epList EXTERN gMIN_TREE_LINK_COST EXTERN nwkFrameCounter EXTERN nwkNeighborInitTable FUNCTION nwkNeighborInitTable,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN nwk_ExtPANIDValid FUNCTION nwk_ExtPANIDValid,0202H ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN nwk_getNwkDescList FUNCTION nwk_getNwkDescList,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN osal_get_timeoutEx FUNCTION osal_get_timeoutEx,0202H ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN osal_mem_alloc FUNCTION osal_mem_alloc,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN osal_mem_free FUNCTION osal_mem_free,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 31, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN osal_memcpy FUNCTION osal_memcpy,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 19, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN osal_memset FUNCTION osal_memset,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 33, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN osal_msg_allocate FUNCTION osal_msg_allocate,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 16, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN osal_msg_deallocate FUNCTION osal_msg_deallocate,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN osal_msg_receive FUNCTION osal_msg_receive,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN osal_msg_send FUNCTION osal_msg_send,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 16, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN osal_nv_item_init FUNCTION osal_nv_item_init,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 29, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN osal_nv_read FUNCTION osal_nv_read,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 37, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN osal_nv_write FUNCTION osal_nv_write,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 37, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN osal_pwrmgr_device FUNCTION osal_pwrmgr_device,0202H ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN osal_rand FUNCTION osal_rand,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN osal_set_event FUNCTION osal_set_event,0202H ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN osal_start_timerEx FUNCTION osal_start_timerEx,0202H ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN osal_stop_timerEx FUNCTION osal_stop_timerEx,0202H ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN pZDNwkMgr_ProcessDataConfirm EXTERN sAddrExtCmp FUNCTION sAddrExtCmp,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN sAddrExtCpy FUNCTION sAddrExtCpy,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN zgConcentratorEnable EXTERN zgConfigPANID EXTERN zgDefaultStartingScanDuration EXTERN zgDeviceLogicalType EXTERN zgInitItems FUNCTION zgInitItems,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN zgReadStartupOptions FUNCTION zgReadStartupOptions,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC EXTERN zgStackProfile EXTERN zgWriteStartupOptions FUNCTION zgWriteStartupOptions,0202H ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC // E:\qq下载文件\ZStack-CC2530-r200\ZStack-CC2530-r200\Components\stack\zdo\ZDApp.c // 1 /************************************************************************************************** // 2 Filename: ZDApp.c // 3 Revised: $Date: 2011-04-13 10:12:34 -0700 (Wed, 13 Apr 2011) $ // 4 Revision: $Revision: 25678 $ // 5 // 6 Description: This file contains the interface to the Zigbee Device Application. This is the // 7 Application part that the user can change. This also contains the Task functions. // 8 // 9 // 10 Copyright 2004-2011 Texas Instruments Incorporated. All rights reserved. // 11 // 12 IMPORTANT: Your use of this Software is limited to those specific rights // 13 granted under the terms of a software license agreement between the user // 14 who downloaded the software, his/her employer (which must be your employer) // 15 and Texas Instruments Incorporated (the "License"). You may not use this // 16 Software unless you agree to abide by the terms of the License. The License // 17 limits your use, and you acknowledge, that the Software may not be modified, // 18 copied or distributed unless embedded on a Texas Instruments microcontroller // 19 or used solely and exclusively in conjunction with a Texas Instruments radio // 20 frequency transceiver, which is integrated into your product. Other than for // 21 the foregoing purpose, you may not use, reproduce, copy, prepare derivative // 22 works of, modify, distribute, perform, display or sell this Software and/or // 23 its documentation for any purpose. // 24 // 25 YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE // 26 PROVIDED 揂S IS?WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, // 27 INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE, // 28 NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL // 29 TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT, // 30 NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER // 31 LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES // 32 INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE // 33 OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT // 34 OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES // 35 (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS. // 36 // 37 Should you have any questions regarding your right to use this Software, // 38 contact Texas Instruments Incorporated at www.TI.com. // 39 **************************************************************************************************/ // 40 // 41 /********************************************************************* // 42 * INCLUDES // 43 */ // 44 // 45 #include "ZComDef.h" // 46 #include "ZMac.h" // 47 #include "OSAL.h" // 48 #include "OSAL_Tasks.h" // 49 #include "OSAL_PwrMgr.h" // 50 #include "OSAL_Nv.h" // 51 #include "AF.h" // 52 #include "APSMEDE.h" // 53 #include "NLMEDE.h" // 54 #include "AddrMgr.h" // 55 #include "ZDProfile.h" // 56 #include "ZDObject.h" // 57 #include "ZDConfig.h" // 58 #include "ZDSecMgr.h" // 59 #include "ZDApp.h" // 60 #include "DebugTrace.h" // 61 #include "nwk_util.h" // 62 #include "OnBoard.h" // 63 #include "ZGlobals.h" // 64 #include "ZDNwkMgr.h" // 65 #include "rtg.h" // 66 // 67 #include "ssp.h" // 68 // 69 /* HAL */ // 70 #include "hal_led.h" // 71 #include "hal_lcd.h" // 72 #include "hal_key.h" // 73 // 74 #if defined( MT_MAC_FUNC ) || defined( MT_MAC_CB_FUNC ) // 75 #error "ERROR! MT_MAC functionalities should be disabled on ZDO devices" // 76 #endif // 77 // 78 /********************************************************************* // 79 * CONSTANTS // 80 */ // 81 // 82 #if !defined( NWK_START_DELAY ) // 83 #define NWK_START_DELAY 100 // in milliseconds // 84 #endif // 85 // 86 #if !defined( LEAVE_RESET_DELAY ) // 87 #define LEAVE_RESET_DELAY 5000 // in milliseconds // 88 #endif // 89 // 90 // Init ZDO, but hold and wait for application to start the joining or // 91 // forming network // 92 #define ZDO_INIT_HOLD_NWK_START 0xFFFF // 93 // 94 #if !defined( EXTENDED_JOINING_RANDOM_MASK ) // 95 #define EXTENDED_JOINING_RANDOM_MASK 0x007F // 96 #endif // 97 // 98 #if !defined( BEACON_REQUEST_DELAY ) // 99 #define BEACON_REQUEST_DELAY 100 // in milliseconds // 100 #endif // 101 // 102 #if !defined( BEACON_REQ_DELAY_MASK ) // 103 #define BEACON_REQ_DELAY_MASK 0x007F // 104 #endif // 105 // 106 #define MAX_RESUME_RETRY 3 // 107 // 108 #define MAX_DEVICE_UNAUTH_TIMEOUT 5000 // 5 seconds // 109 // 110 // Beacon Order Settings (see NLMEDE.h) // 111 #define DEFAULT_BEACON_ORDER BEACON_ORDER_NO_BEACONS // 112 #define DEFAULT_SUPERFRAME_ORDER DEFAULT_BEACON_ORDER // 113 // 114 #if !defined( MAX_NWK_FRAMECOUNTER_CHANGES ) // 115 // The number of times the frame counter can change before // 116 // saving to NV // 117 #define MAX_NWK_FRAMECOUNTER_CHANGES 1000 // 118 #endif // 119 // 120 // Leave control bits // 121 #define ZDAPP_LEAVE_CTRL_INIT 0 // 122 #define ZDAPP_LEAVE_CTRL_SET 1 // 123 #define ZDAPP_LEAVE_CTRL_RA 2 // 124 // 125 // Address Manager Stub Implementation // 126 #define ZDApp_NwkWriteNVRequest AddrMgrWriteNVRequest // 127 // 128 // 129 #if !defined ZDO_NV_SAVE_RFDs // 130 #define ZDO_NV_SAVE_RFDs TRUE // 131 #endif // 132 // 133 // Delay time before updating NWK NV data to force fewer writes during high activity. // 134 #if ZDO_NV_SAVE_RFDs // 135 #define ZDAPP_UPDATE_NWK_NV_TIME 700 // 136 #else // 137 #define ZDAPP_UPDATE_NWK_NV_TIME 65000 // 138 #endif // 139 // 140 /********************************************************************* // 141 * GLOBAL VARIABLES // 142 */ // 143 // 144 #if defined( LCD_SUPPORTED ) RSEG XDATA_Z:XDATA:NOROOT(0) DATA8 // 145 uint8 MatchRsps = 0; MatchRsps: DS 1 REQUIRE __INIT_XDATA_Z // 146 #endif // 147 RSEG XDATA_I:XDATA:NOROOT(0) // 148 uint8 zdoDiscCounter = 1; zdoDiscCounter: DATA8 DS 1 REQUIRE `?` REQUIRE __INIT_XDATA_I // 149 RSEG XDATA_Z:XDATA:NOROOT(0) DATA8 // 150 zAddrType_t ZDAppNwkAddr; ZDAppNwkAddr: DS 9 REQUIRE __INIT_XDATA_Z // 151 RSEG XDATA_Z:XDATA:NOROOT(0) DATA8 // 152 uint8 zdappMgmtNwkDiscRspTransSeq; zdappMgmtNwkDiscRspTransSeq: DS 1 REQUIRE __INIT_XDATA_Z RSEG XDATA_Z:XDATA:NOROOT(0) DATA8 // 153 uint8 zdappMgmtNwkDiscReqInProgress = FALSE; zdappMgmtNwkDiscReqInProgress: DS 1 REQUIRE __INIT_XDATA_Z RSEG XDATA_Z:XDATA:NOROOT(0) DATA8 // 154 zAddrType_t zdappMgmtNwkDiscRspAddr; zdappMgmtNwkDiscRspAddr: DS 9 REQUIRE __INIT_XDATA_Z RSEG XDATA_Z:XDATA:NOROOT(0) DATA8 // 155 uint8 zdappMgmtNwkDiscStartIndex; zdappMgmtNwkDiscStartIndex: DS 1 REQUIRE __INIT_XDATA_Z RSEG XDATA_Z:XDATA:NOROOT(0) DATA8 // 156 uint8 zdappMgmtSavedNwkState; zdappMgmtSavedNwkState: DS 1 REQUIRE __INIT_XDATA_Z // 157 RSEG XDATA_Z:XDATA:NOROOT(0) DATA16 // 158 uint16 nwkFrameCounterChanges = 0; nwkFrameCounterChanges: DS 2 REQUIRE __INIT_XDATA_Z RSEG XDATA_I:XDATA:NOROOT(0) // 159 uint8 continueJoining = TRUE; continueJoining: DATA8 DS 1 REQUIRE `?` REQUIRE __INIT_XDATA_I // 160 RSEG XDATA_Z:XDATA:NOROOT(0) DATA8 // 161 uint8 _tmpRejoinState; _tmpRejoinState: DS 1 REQUIRE __INIT_XDATA_Z // 162 // 163 // The extended PanID used in ZDO layer for rejoin. RSEG XDATA_Z:XDATA:NOROOT(0) DATA8 // 164 uint8 ZDO_UseExtendedPANID[Z_EXTADDR_LEN]; ZDO_UseExtendedPANID: DS 8 REQUIRE __INIT_XDATA_Z // 165 RSEG XDATA_Z:XDATA:NOROOT(0) DATA8 // 166 pfnZdoCb zdoCBFunc[MAX_ZDO_CB_FUNC]; zdoCBFunc: DS 12 REQUIRE __INIT_XDATA_Z // 167 // 168 /********************************************************************* // 169 * EXTERNAL VARIABLES // 170 */ // 171 // 172 /********************************************************************* // 173 * EXTERNAL FUNCTIONS // 174 */ // 175 // 176 /********************************************************************* // 177 * LOCAL FUNCTIONS // 178 */ // 179 // 180 void ZDApp_NetworkStartEvt( void ); // 181 void ZDApp_DeviceAuthEvt( void ); // 182 void ZDApp_SaveNetworkStateEvt( void ); // 183 // 184 uint8 ZDApp_ReadNetworkRestoreState( void ); // 185 uint8 ZDApp_RestoreNetworkState( void ); // 186 void ZDAppDetermineDeviceType( void ); // 187 void ZDApp_InitUserDesc( void ); // 188 void ZDAppCheckForHoldKey( void ); // 189 void ZDApp_ProcessOSALMsg( osal_event_hdr_t *msgPtr ); // 190 void ZDApp_ProcessNetworkJoin( void ); // 191 void ZDApp_SetCoordAddress( uint8 endPoint, uint8 dstEP ); // 192 uint8 ZDApp_RestoreNwkKey( void ); // 193 networkDesc_t* ZDApp_NwkDescListProcessing(void); // 194 // 195 void ZDApp_SecInit( uint8 state ); // 196 UINT16 ZDApp_ProcessSecEvent( uint8 task_id, UINT16 events ); // 197 void ZDApp_ProcessSecMsg( osal_event_hdr_t *msgPtr ); // 198 // 199 void ZDApp_SendMsg( uint8 taskID, uint8 cmd, uint8 len, uint8 *buf ); // 200 // 201 void ZDApp_ResetTimerStart( uint16 delay ); // 202 void ZDApp_ResetTimerCancel( void ); // 203 void ZDApp_LeaveCtrlInit( void ); // 204 void ZDApp_LeaveCtrlSet( uint8 ra ); // 205 uint8 ZDApp_LeaveCtrlBypass( void ); // 206 void ZDApp_LeaveCtrlStartup( devStates_t* state, uint16* startDelay ); // 207 void ZDApp_LeaveUpdate( uint16 nwkAddr, uint8* extAddr, // 208 uint8 removeChildren ); // 209 void ZDApp_NodeProfileSync( uint8 stackProfile ); // 210 void ZDApp_ProcessMsgCBs( zdoIncomingMsg_t *inMsg ); // 211 void ZDApp_RegisterCBs( void ); // 212 void ZDApp_InitZdoCBFunc(void); // 213 // 214 /********************************************************************* // 215 * LOCAL VARIABLES // 216 */ // 217 RSEG XDATA_Z:XDATA:NOROOT(0) DATA8 // 218 uint8 ZDAppTaskID; ZDAppTaskID: DS 1 REQUIRE __INIT_XDATA_Z RSEG XDATA_Z:XDATA:NOROOT(0) DATA8 // 219 uint8 nwkStatus; nwkStatus: DS 1 REQUIRE __INIT_XDATA_Z RSEG XDATA_Z:XDATA:NOROOT(0) DATA16 // 220 endPointDesc_t *ZDApp_AutoFindMode_epDesc = (endPointDesc_t *)NULL; ZDApp_AutoFindMode_epDesc: DS 2 REQUIRE __INIT_XDATA_Z RSEG XDATA_Z:XDATA:NOROOT(0) DATA8 // 221 uint8 ZDApp_LeaveCtrl; ZDApp_LeaveCtrl: DS 1 REQUIRE __INIT_XDATA_Z // 222 // 223 #if defined( HOLD_AUTO_START ) // 224 devStates_t devState = DEV_HOLD; // 225 #else RSEG XDATA_I:XDATA:NOROOT(0) // 226 devStates_t devState = DEV_INIT; devState: DATA8 DS 1 REQUIRE `?` REQUIRE __INIT_XDATA_I // 227 #endif // 228 // 229 #if ( ZG_BUILD_RTRONLY_TYPE ) || ( ZG_BUILD_ENDDEVICE_TYPE ) RSEG XDATA_Z:XDATA:NOROOT(0) DATA8 // 230 devStartModes_t devStartMode = MODE_JOIN; // Assume joining devStartMode: DS 1 REQUIRE __INIT_XDATA_Z // 231 //devStartModes_t devStartMode = MODE_RESUME; // if already "directly joined" // 232 // to parent. Set to make the device do an Orphan scan. // 233 #else // 234 // Set the default to coodinator // 235 devStartModes_t devStartMode = MODE_HARD; // 236 #endif // 237 RSEG XDATA_Z:XDATA:NOROOT(0) DATA8 // 238 uint8 retryCnt; retryCnt: DS 1 REQUIRE __INIT_XDATA_Z // 239 RSEG XDATA_I:XDATA:NOROOT(0) // 240 endPointDesc_t ZDApp_epDesc = ZDApp_epDesc: DATA8 DS 6 REQUIRE `?` REQUIRE __INIT_XDATA_I // 241 { // 242 ZDO_EP, // 243 &ZDAppTaskID, // 244 (SimpleDescriptionFormat_t *)NULL, // No Simple description for ZDO // 245 (afNetworkLatencyReq_t)0 // No Network Latency req // 246 }; // 247 RSEG XDATA_I:XDATA:NOROOT(0) // 248 uint16 ZDApp_SavedPollRate = POLL_RATE; ZDApp_SavedPollRate: DATA16 DS 2 REQUIRE `?` REQUIRE __INIT_XDATA_I // 249 // 250 /********************************************************************* // 251 * @fn ZDApp_Init // 252 * // 253 * @brief ZDApp Initialization function. // 254 * // 255 * @param task_id - ZDApp Task ID // 256 * // 257 * @return None // 258 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 259 void ZDApp_Init( uint8 task_id ) ZDApp_Init: CFI Block cfiBlock0 Using cfiCommon0 CFI Function ZDApp_Init CODE // 260 { FUNCALL ZDApp_Init, NLME_GetExtAddr LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_Init, ZDO_Init LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_Init, afRegister LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_Init, ZDApp_InitUserDesc LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_Init, ZDOInitDevice LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_Init, ZDOInitDevice LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_Init, ZDApp_InitZdoCBFunc LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_Init, ZDApp_RegisterCBs LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC MOV A,#-0x9 LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 9) ; Saved register size: 9 ; Auto size: 0 MOV A,R1 // 261 // Save the task ID // 262 ZDAppTaskID = task_id; MOV DPTR,#ZDAppTaskID MOVX @DPTR,A // 263 // 264 // Initialize the ZDO global device short address storage // 265 ZDAppNwkAddr.addrMode = Addr16Bit; MOV DPTR,#ZDAppNwkAddr + 8 MOV A,#0x2 MOVX @DPTR,A // 266 ZDAppNwkAddr.addr.shortAddr = INVALID_NODE_ADDR; MOV DPTR,#ZDAppNwkAddr MOV A,#-0x2 MOVX @DPTR,A INC DPTR INC A MOVX @DPTR,A // 267 (void)NLME_GetExtAddr(); // Load the saveExtAddr pointer. ; Setup parameters for call to function NLME_GetExtAddr LCALL `??NLME_GetExtAddr::?relay`; Banked call to: NLME_GetExtAddr // 268 // 269 // Check for manual "Hold Auto Start" // 270 ZDAppCheckForHoldKey(); // 271 // 272 // Initialize ZDO items and setup the device - type of device to create. // 273 ZDO_Init(); ; Setup parameters for call to function ZDO_Init LCALL `??ZDO_Init::?relay`; Banked call to: ZDO_Init // 274 // 275 // Register the endpoint description with the AF // 276 // This task doesn't have a Simple description, but we still need // 277 // to register the endpoint. // 278 afRegister( (endPointDesc_t *)&ZDApp_epDesc ); ; Setup parameters for call to function afRegister MOV R2,#ZDApp_epDesc & 0xff MOV R3,#(ZDApp_epDesc >> 8) & 0xff LCALL `??afRegister::?relay`; Banked call to: afRegister // 279 // 280 #if defined( ZDO_USERDESC_RESPONSE ) // 281 ZDApp_InitUserDesc(); ; Setup parameters for call to function ZDApp_InitUserDesc LCALL `??ZDApp_InitUserDesc::?relay`; Banked call to: ZDApp_InitUserDesc // 282 #endif // ZDO_USERDESC_RESPONSE // 283 // 284 // Start the device? // 285 if ( devState != DEV_HOLD ) MOV DPTR,#devState MOVX A,@DPTR JZ ??ZDApp_Init_0 // 286 { // 287 ZDOInitDevice( 0 ); ; Setup parameters for call to function ZDOInitDevice MOV R2,#0x0 MOV R3,#0x0 SJMP ??ZDApp_Init_1 // 288 } // 289 else // 290 { // 291 ZDOInitDevice( ZDO_INIT_HOLD_NWK_START ); ??ZDApp_Init_0: ; Setup parameters for call to function ZDOInitDevice MOV R2,#-0x1 MOV R3,#-0x1 ??ZDApp_Init_1: LCALL `??ZDOInitDevice::?relay`; Banked call to: ZDOInitDevice // 292 #if 0 // 293 // Blink LED to indicate HOLD_START // 294 HalLedBlink ( HAL_LED_4, 0, 50, 500 ); // 295 #endif // 296 } // 297 // 298 // Initialize the ZDO callback function pointers zdoCBFunc[] // 299 ZDApp_InitZdoCBFunc(); ; Setup parameters for call to function ZDApp_InitZdoCBFunc LCALL `??ZDApp_InitZdoCBFunc::?relay`; Banked call to: ZDApp_InitZdoCBFunc // 300 // 301 ZDApp_RegisterCBs(); ; Setup parameters for call to function ZDApp_RegisterCBs LCALL `??ZDApp_RegisterCBs::?relay`; Banked call to: ZDApp_RegisterCBs // 302 } /* ZDApp_Init() */ LJMP ??Subroutine52_0 & 0xFFFF CFI EndBlock cfiBlock0 // 303 // 304 /********************************************************************* // 305 * @fn ZDApp_SecInit // 306 * // 307 * @brief ZDApp initialize security. // 308 * // 309 * @param state - device initialization state // 310 * // 311 * @return none // 312 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 313 void ZDApp_SecInit( uint8 state ) ZDApp_SecInit: CFI Block cfiBlock1 Using cfiCommon0 CFI Function ZDApp_SecInit CODE // 314 { FUNCALL ZDApp_SecInit, ZDSecMgrInit LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC MOV A,#-0x9 LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 9) ; Saved register size: 9 ; Auto size: 0 // 315 uint8 zgPreConfigKey[SEC_KEY_LEN]; // 316 // 317 if ( ZG_SECURE_ENABLED && ZG_BUILD_COORDINATOR_TYPE && ZG_DEVICE_COORDINATOR_TYPE ) // 318 { // 319 // Set the Trust Center bit // 320 ZDO_Config_Node_Descriptor.ServerMask |= PRIM_TRUST_CENTER; // 321 } // 322 // 323 if ( ZG_CHECK_SECURITY_MODE == ZG_SECURITY_PRO_HIGH ) // 324 { // 325 ZDO_Config_Node_Descriptor.CapabilityFlags |= CAPINFO_SECURITY_CAPABLE; // 326 } // 327 // 328 // Initialize ZigBee Device Security Manager // 329 ZDSecMgrInit(state); ; Setup parameters for call to function ZDSecMgrInit LCALL `??ZDSecMgrInit::?relay`; Banked call to: ZDSecMgrInit // 330 // 331 if ( ZG_SECURE_ENABLED ) // 332 { // 333 if ( state != ZDO_INITDEV_RESTORED_NETWORK_STATE ) // 334 { // 335 nwkFrameCounter = 0; // 336 // 337 if( _NIB.nwkKeyLoaded == FALSE ) // 338 { // 339 if ( ( ZG_BUILD_COORDINATOR_TYPE && ZG_DEVICE_COORDINATOR_TYPE ) || // 340 ( ( zgSecurityMode == ZG_SECURITY_RESIDENTIAL ) && zgPreConfigKeys ) ) // 341 { // 342 ZDSecMgrReadKeyFromNv(ZCD_NV_PRECFGKEY, zgPreConfigKey); // 343 SSP_UpdateNwkKey( zgPreConfigKey, 0); // 344 SSP_SwitchNwkKey( 0 ); // 345 // 346 // clear local copy of key // 347 osal_memset(zgPreConfigKey, 0x00, SEC_KEY_LEN); // 348 } // 349 } // 350 } // 351 } // 352 } LJMP ??Subroutine52_0 & 0xFFFF CFI EndBlock cfiBlock1 // 353 // 354 /********************************************************************* // 355 * @fn ZDApp_event_loop() // 356 * // 357 * @brief Main event loop for Zigbee device objects task. This function // 358 * should be called at periodic intervals. // 359 * // 360 * @param task_id - Task ID // 361 * @param events - Bitmap of events // 362 * // 363 * @return none // 364 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 365 UINT16 ZDApp_event_loop( uint8 task_id, UINT16 events ) ZDApp_event_loop: CFI Block cfiBlock2 Using cfiCommon0 CFI Function ZDApp_event_loop CODE // 366 { FUNCALL ZDApp_event_loop, osal_set_event LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_event_loop, ZDO_StartDevice LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_event_loop, ZDApp_ProcessOSALMsg LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_event_loop, osal_msg_deallocate LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_event_loop, osal_msg_receive LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_event_loop, ZDApp_NetworkStartEvt LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_event_loop, osal_pwrmgr_device LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_event_loop, osal_set_event LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_event_loop, ZDO_UpdateNwkStatus LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_event_loop, osal_start_timerEx LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_event_loop, zgWriteStartupOptions LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_event_loop, Onboard_soft_reset LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 REQUIRE ?V2 REQUIRE ?V3 MOV A,#-0xc LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 12) ; Saved register size: 12 ; Auto size: 0 MOV A,R2 MOV R6,A MOV A,R3 MOV R7,A // 367 uint8 *msg_ptr; // 368 // 369 if ( events & SYS_EVENT_MSG ) ANL A,#0x80 JNZ ??ZDApp_event_loop_0 // 370 { // 371 while ( (msg_ptr = osal_msg_receive( ZDAppTaskID )) ) // 372 { // 373 ZDApp_ProcessOSALMsg( (osal_event_hdr_t *)msg_ptr ); // 374 // 375 // Release the memory // 376 osal_msg_deallocate( msg_ptr ); // 377 } // 378 // 379 // Return unprocessed events // 380 return (events ^ SYS_EVENT_MSG); // 381 } // 382 // 383 if ( events & ZDO_NETWORK_INIT ) MOV A,R2 MOV C,0xE0 /* A */.0 JNC ??ZDApp_event_loop_1 // 384 { // 385 // Initialize apps and start the network // 386 devState = DEV_INIT; MOV DPTR,#devState MOV A,#0x1 LCALL ??Subroutine46_0 & 0xFFFF // 387 osal_set_event( ZDAppTaskID, ZDO_STATE_CHANGE_EVT ); // 388 // 389 ZDO_StartDevice( (uint8)ZDO_Config_Node_Descriptor.LogicalType, devStartMode, // 390 DEFAULT_BEACON_ORDER, DEFAULT_SUPERFRAME_ORDER ); ??CrossCallReturnLabel_69: ; Setup parameters for call to function ZDO_StartDevice MOV R4,#0xf MOV R3,#0xf MOV DPTR,#devStartMode MOVX A,@DPTR MOV R2,A MOV DPTR,#ZDO_Config_Node_Descriptor MOVX A,@DPTR ANL A,#0x7 MOV R1,A LCALL `??ZDO_StartDevice::?relay`; Banked call to: ZDO_StartDevice // 391 // 392 // Return unprocessed events // 393 return (events ^ ZDO_NETWORK_INIT); MOV A,R6 XRL A,#0x1 SJMP ??ZDApp_event_loop_2 // 394 } ??ZDApp_event_loop_3: ; Setup parameters for call to function ZDApp_ProcessOSALMsg LCALL `??ZDApp_ProcessOSALMsg::?relay`; Banked call to: ZDApp_ProcessOSALMsg ; Setup parameters for call to function osal_msg_deallocate MOV R2,?V0 MOV R3,?V1 LCALL `??osal_msg_deallocate::?relay`; Banked call to: osal_msg_deallocate ??ZDApp_event_loop_0: ; Setup parameters for call to function osal_msg_receive MOV DPTR,#ZDAppTaskID MOVX A,@DPTR MOV R1,A LCALL `??osal_msg_receive::?relay`; Banked call to: osal_msg_receive MOV ?V0,R2 MOV ?V1,R3 MOV A,R2 ORL A,R3 JNZ ??ZDApp_event_loop_3 MOV A,R6 MOV R2,A MOV A,R7 XRL A,#0x80 SJMP ??ZDApp_event_loop_4 // 395 // 396 if ( ZSTACK_ROUTER_BUILD ) // 397 { // 398 if ( events & ZDO_NETWORK_START ) ??ZDApp_event_loop_1: ANL A,#0x2 JZ ??ZDApp_event_loop_5 // 399 { // 400 ZDApp_NetworkStartEvt(); ; Setup parameters for call to function ZDApp_NetworkStartEvt LCALL `??ZDApp_NetworkStartEvt::?relay`; Banked call to: ZDApp_NetworkStartEvt // 401 // 402 // Return unprocessed events // 403 return (events ^ ZDO_NETWORK_START); MOV A,R6 XRL A,#0x2 SJMP ??ZDApp_event_loop_2 // 404 } // 405 // 406 if ( events & ZDO_ROUTER_START ) ??ZDApp_event_loop_5: MOV A,R2 ANL A,#0x20 JZ ??ZDApp_event_loop_6 // 407 { // 408 if ( nwkStatus == ZSuccess ) MOV DPTR,#nwkStatus MOVX A,@DPTR JNZ ??ZDApp_event_loop_7 // 409 { // 410 if ( devState == DEV_END_DEVICE ) MOV DPTR,#devState MOVX A,@DPTR XRL A,#0x6 JNZ ??ZDApp_event_loop_8 // 411 devState = DEV_ROUTER; MOV A,#0x7 MOVX @DPTR,A // 412 // 413 osal_pwrmgr_device( PWRMGR_ALWAYS_ON ); ??ZDApp_event_loop_8: ; Setup parameters for call to function osal_pwrmgr_device MOV R1,#0x0 LCALL `??osal_pwrmgr_device::?relay`; Banked call to: osal_pwrmgr_device // 414 } // 415 else // 416 { // 417 // remain as end device!! // 418 } // 419 osal_set_event( ZDAppTaskID, ZDO_STATE_CHANGE_EVT ); ??ZDApp_event_loop_7: ; Setup parameters for call to function osal_set_event LCALL ?Subroutine17 & 0xFFFF // 420 // 421 // Return unprocessed events // 422 return (events ^ ZDO_ROUTER_START); ??CrossCallReturnLabel_59: MOV A,R6 XRL A,#0x20 SJMP ??ZDApp_event_loop_2 // 423 } // 424 } // 425 // 426 if ( events & ZDO_STATE_CHANGE_EVT ) ??ZDApp_event_loop_6: MOV A,R2 ANL A,#0x10 JZ ??ZDApp_event_loop_9 // 427 { // 428 ZDO_UpdateNwkStatus( devState ); ; Setup parameters for call to function ZDO_UpdateNwkStatus MOV DPTR,#devState MOVX A,@DPTR MOV R1,A LCALL `??ZDO_UpdateNwkStatus::?relay`; Banked call to: ZDO_UpdateNwkStatus // 429 // 430 // At start up, do one MTO route discovery if the device is a concentrator // 431 if ( zgConcentratorEnable == TRUE ) MOV DPTR,#zgConcentratorEnable MOVX A,@DPTR XRL A,#0x1 JNZ ??CrossCallReturnLabel_80 // 432 { // 433 // Start next event // 434 osal_start_timerEx( NWK_TaskID, NWK_MTO_RTG_REQ_EVT, 100 ); ; Setup parameters for call to function osal_start_timerEx MOV R4,#0x64 MOV R5,#0x0 MOV R2,#0x0 MOV R3,#0x8 MOV DPTR,#NWK_TaskID LCALL ??Subroutine51_0 & 0xFFFF // 435 } // 436 // 437 // Return unprocessed events // 438 return (events ^ ZDO_STATE_CHANGE_EVT); ??CrossCallReturnLabel_80: MOV A,R6 XRL A,#0x10 ??ZDApp_event_loop_2: MOV R2,A MOV A,R7 SJMP ??ZDApp_event_loop_4 // 439 } // 440 // 441 if ( events & ZDO_COMMAND_CNF ) ??ZDApp_event_loop_9: MOV A,R2 ANL A,#0x8 JZ ??ZDApp_event_loop_10 // 442 { // 443 // User defined logic // 444 // 445 // Return unprocessed events // 446 return (events ^ ZDO_COMMAND_CNF); MOV A,R2 XRL A,#0x8 MOV R2,A SJMP ??ZDApp_event_loop_11 // 447 } // 448 // 449 if ( events & ZDO_NWK_UPDATE_NV ) ??ZDApp_event_loop_10: MOV A,R3 ANL A,#0x2 JZ ??ZDApp_event_loop_12 // 450 { // 451 ZDApp_SaveNetworkStateEvt(); // 452 // 453 // Return unprocessed events // 454 return (events ^ ZDO_NWK_UPDATE_NV); MOV A,R3 XRL A,#0x2 ??ZDApp_event_loop_4: MOV R3,A SJMP ??ZDApp_event_loop_11 // 455 } // 456 // 457 if ( events & ZDO_DEVICE_RESET ) ??ZDApp_event_loop_12: MOV A,R2 ANL A,#0x4 JZ ??ZDApp_event_loop_13 // 458 { // 459 #ifdef ZBA_FALLBACK_NWKKEY // 460 if ( devState == DEV_END_DEVICE_UNAUTH ) // 461 { // 462 ZDSecMgrFallbackNwkKey(); // 463 } // 464 else // 465 #endif // 466 { // 467 // Set the NV startup option to force a "new" join. // 468 zgWriteStartupOptions( ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE ); ; Setup parameters for call to function zgWriteStartupOptions MOV R2,#0x2 MOV R1,#-0x1 LCALL `??zgWriteStartupOptions::?relay`; Banked call to: zgWriteStartupOptions // 469 // 470 // The device has been in the UNAUTH state, so reset // 471 // Note: there will be no return from this call // 472 SystemResetSoft(); ; Setup parameters for call to function Onboard_soft_reset LCALL Onboard_soft_reset & 0xFFFF // 473 } // 474 } // 475 // 476 if ( ZG_SECURE_ENABLED ) // 477 { // 478 return ( ZDApp_ProcessSecEvent( task_id, events ) ); // 479 } // 480 else // 481 { // 482 // Discard or make more handlers // 483 return 0; ??ZDApp_event_loop_13: MOV R2,#0x0 MOV R3,#0x0 // 484 } ??ZDApp_event_loop_11: SJMP ??Subroutine45_0 // 485 } CFI EndBlock cfiBlock2 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine17: CFI Block cfiCond3 Using cfiCommon0 CFI Function ZDApp_event_loop CFI Conditional ??CrossCallReturnLabel_59 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 12) CFI Block cfiCond4 Using cfiCommon0 CFI (cfiCond4) Function ZDOInitDevice CFI (cfiCond4) Conditional ??CrossCallReturnLabel_60 CFI (cfiCond4) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond4) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond4) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond4) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond4) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond4) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond4) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond4) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond4) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond4) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond4) CFA_SP SP+-2 CFI (cfiCond4) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond5 Using cfiCommon0 CFI (cfiCond5) Function ZDApp_ProcessNetworkJoin CFI (cfiCond5) Conditional ??CrossCallReturnLabel_61 CFI (cfiCond5) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond5) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond5) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond5) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond5) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond5) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond5) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond5) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond5) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond5) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond5) CFA_SP SP+-2 CFI (cfiCond5) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond6 Using cfiCommon0 CFI (cfiCond6) Function ZDApp_ProcessNetworkJoin CFI (cfiCond6) Conditional ??CrossCallReturnLabel_62 CFI (cfiCond6) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond6) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond6) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond6) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond6) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond6) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond6) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond6) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond6) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond6) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond6) CFA_SP SP+-2 CFI (cfiCond6) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond7 Using cfiCommon0 CFI (cfiCond7) Function ZDO_AddrChangeIndicationCB CFI (cfiCond7) Conditional ??CrossCallReturnLabel_63 CFI (cfiCond7) R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond7) VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond7) V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond7) V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond7) V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond7) V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond7) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond7) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond7) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond7) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond7) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond7) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond7) CFA_SP SP+-2 CFI (cfiCond7) CFA_XSP16 add(XSP16, 12) CFI Block cfiPicker8 Using cfiCommon1 CFI (cfiPicker8) NoFunction CFI (cfiPicker8) Picker MOV R2,#0x10 CFI EndBlock cfiCond3 CFI EndBlock cfiCond4 CFI EndBlock cfiCond5 CFI EndBlock cfiCond6 CFI EndBlock cfiCond7 CFI EndBlock cfiPicker8 REQUIRE ??Subroutine43_0 ; // Fall through to label ??Subroutine43_0 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ??Subroutine43_0: CFI Block cfiCond9 Using cfiCommon0 CFI Function ZDApp_NetworkStartEvt CFI Conditional ??CrossCallReturnLabel_64 CFI DPL0 Frame(CFA_SP, 4) CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-7 CFI Block cfiCond10 Using cfiCommon0 CFI (cfiCond10) Function ZDO_NetworkFormationConfirmCB CFI (cfiCond10) Conditional ??CrossCallReturnLabel_65 CFI (cfiCond10) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond10) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond10) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond10) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond10) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond10) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond10) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond10) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond10) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond10) CFA_SP SP+-2 CFI (cfiCond10) CFA_XSP16 add(XSP16, 9) CFI Block cfiCond11 Using cfiCommon0 CFI (cfiCond11) Function ZDO_StartRouterConfirmCB CFI (cfiCond11) Conditional ??CrossCallReturnLabel_65 CFI (cfiCond11) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond11) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond11) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond11) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond11) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond11) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond11) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond11) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond11) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond11) CFA_SP SP+-2 CFI (cfiCond11) CFA_XSP16 add(XSP16, 9) CFI Block cfiCond12 Using cfiCommon0 CFI (cfiCond12) Function ZDApp_NetworkInit CFI (cfiCond12) Conditional ??CrossCallReturnLabel_66 CFI (cfiCond12) DPL0 Frame(CFA_SP, 4) CFI (cfiCond12) DPH0 Frame(CFA_SP, 5) CFI (cfiCond12) CFA_SP SP+-7 CFI Block cfiCond13 Using cfiCommon0 CFI (cfiCond13) Function ZDApp_event_loop CFI (cfiCond13) Conditional ??CrossCallReturnLabel_59 CFI (cfiCond13) R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond13) VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond13) V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond13) V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond13) V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond13) V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond13) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond13) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond13) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond13) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond13) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond13) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond13) CFA_SP SP+-2 CFI (cfiCond13) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond14 Using cfiCommon0 CFI (cfiCond14) Function ZDOInitDevice CFI (cfiCond14) Conditional ??CrossCallReturnLabel_60 CFI (cfiCond14) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond14) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond14) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond14) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond14) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond14) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond14) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond14) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond14) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond14) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond14) CFA_SP SP+-2 CFI (cfiCond14) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond15 Using cfiCommon0 CFI (cfiCond15) Function ZDApp_ProcessNetworkJoin CFI (cfiCond15) Conditional ??CrossCallReturnLabel_61 CFI (cfiCond15) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond15) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond15) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond15) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond15) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond15) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond15) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond15) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond15) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond15) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond15) CFA_SP SP+-2 CFI (cfiCond15) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond16 Using cfiCommon0 CFI (cfiCond16) Function ZDApp_ProcessNetworkJoin CFI (cfiCond16) Conditional ??CrossCallReturnLabel_62 CFI (cfiCond16) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond16) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond16) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond16) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond16) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond16) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond16) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond16) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond16) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond16) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond16) CFA_SP SP+-2 CFI (cfiCond16) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond17 Using cfiCommon0 CFI (cfiCond17) Function ZDO_AddrChangeIndicationCB CFI (cfiCond17) Conditional ??CrossCallReturnLabel_63 CFI (cfiCond17) R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond17) VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond17) V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond17) V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond17) V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond17) V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond17) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond17) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond17) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond17) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond17) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond17) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond17) CFA_SP SP+-2 CFI (cfiCond17) CFA_XSP16 add(XSP16, 12) CFI Block cfiPicker18 Using cfiCommon1 CFI (cfiPicker18) NoFunction CFI (cfiPicker18) Picker MOV R3,#0x0 MOV DPTR,#ZDAppTaskID MOVX A,@DPTR MOV R1,A LCALL `??osal_set_event::?relay`; Banked call to: osal_set_event RET CFI EndBlock cfiCond9 CFI EndBlock cfiCond10 CFI EndBlock cfiCond11 CFI EndBlock cfiCond12 CFI EndBlock cfiCond13 CFI EndBlock cfiCond14 CFI EndBlock cfiCond15 CFI EndBlock cfiCond16 CFI EndBlock cfiCond17 CFI EndBlock cfiPicker18 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine1: CFI Block cfiBlock19 Using cfiCommon0 CFI NoFunction CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 33) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) MOV A,#0x15 CFI EndBlock cfiBlock19 REQUIRE ??Subroutine44_0 ; // Fall through to label ??Subroutine44_0 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ??Subroutine44_0: CFI Block cfiBlock20 Using cfiCommon0 CFI NoFunction CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 16) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI Invalid LCALL ?DEALLOC_XSTACK8 CFI EndBlock cfiBlock20 REQUIRE ??Subroutine45_0 ; // Fall through to label ??Subroutine45_0 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ??Subroutine45_0: CFI Block cfiBlock21 Using cfiCommon0 CFI NoFunction CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 12) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) MOV R7,#0x4 LJMP ?BANKED_LEAVE_XDATA CFI EndBlock cfiBlock21 // 486 // 487 /********************************************************************* // 488 * @fn ZDApp_ProcessSecEvent() // 489 * // 490 * @brief Process incoming security events. // 491 * // 492 * @param task_id - Task ID // 493 * @param events - Bitmap of events // 494 * // 495 * @return none // 496 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 497 UINT16 ZDApp_ProcessSecEvent( uint8 task_id, UINT16 events ) ZDApp_ProcessSecEvent: CFI Block cfiBlock22 Using cfiCommon0 CFI Function ZDApp_ProcessSecEvent CODE // 498 { FUNCALL ZDApp_ProcessSecEvent, ZDSecMgrNewDeviceEvent LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessSecEvent, osal_start_timerEx LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessSecEvent, ZDApp_DeviceAuthEvt LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessSecEvent, ZDApp_SaveNwkKey LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessSecEvent, ZDSecMgrSaveTCLinkKey LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC MOV A,#-0x9 LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 9) ; Saved register size: 9 ; Auto size: 0 MOV A,R2 MOV R6,A MOV A,R3 MOV R7,A // 499 (void)task_id; // Intentionally unreferenced parameter // 500 // 501 if ( ZSTACK_ROUTER_BUILD ) // 502 { // 503 if ( events & ZDO_NEW_DEVICE ) MOV A,R2 ANL A,#0x40 JZ ??ZDApp_ProcessSecEvent_0 // 504 { // 505 // process the new device event // 506 if ( ZDSecMgrNewDeviceEvent() == TRUE ) ; Setup parameters for call to function ZDSecMgrNewDeviceEvent LCALL `??ZDSecMgrNewDeviceEvent::?relay`; Banked call to: ZDSecMgrNewDeviceEvent MOV A,R1 XRL A,#0x1 JNZ ??CrossCallReturnLabel_77 // 507 { // 508 osal_start_timerEx( ZDAppTaskID, ZDO_NEW_DEVICE, 1000 ); ; Setup parameters for call to function osal_start_timerEx MOV R4,#-0x18 MOV R5,#0x3 MOV R2,#0x40 LCALL ?Subroutine22 & 0xFFFF // 509 } // 510 // 511 // Return unprocessed events // 512 return (events ^ ZDO_NEW_DEVICE); ??CrossCallReturnLabel_77: MOV A,R6 XRL A,#0x40 SJMP ??ZDApp_ProcessSecEvent_1 // 513 } // 514 } // 515 // 516 if ( (ZG_CHECK_SECURITY_MODE == ZG_SECURITY_PRO_HIGH) // 517 || (ZG_CHECK_SECURITY_MODE == ZG_SECURITY_SE_STANDARD) ) // 518 { // 519 if ( ZG_BUILD_COORDINATOR_TYPE && ZG_DEVICE_COORDINATOR_TYPE ) // 520 { // 521 if ( events & ZDO_SECMGR_EVENT ) // 522 { // 523 ZDSecMgrEvent(); // 524 // 525 // Return unprocessed events // 526 return (events ^ ZDO_SECMGR_EVENT); // 527 } // 528 } // 529 } // 530 // 531 if ( events & ZDO_DEVICE_AUTH ) ??ZDApp_ProcessSecEvent_0: MOV A,R2 ANL A,#0x80 JZ ??ZDApp_ProcessSecEvent_2 // 532 { // 533 ZDApp_DeviceAuthEvt(); ; Setup parameters for call to function ZDApp_DeviceAuthEvt LCALL `??ZDApp_DeviceAuthEvt::?relay`; Banked call to: ZDApp_DeviceAuthEvt // 534 // 535 // Return unprocessed events // 536 return (events ^ ZDO_DEVICE_AUTH); MOV A,R6 XRL A,#0x80 ??ZDApp_ProcessSecEvent_1: MOV R2,A MOV A,R7 SJMP ??ZDApp_ProcessSecEvent_3 // 537 } // 538 // 539 if ( events & ZDO_FRAMECOUNTER_CHANGE ) ??ZDApp_ProcessSecEvent_2: MOV A,R3 ANL A,#0x4 JZ ??ZDApp_ProcessSecEvent_4 // 540 { // 541 if ( nwkFrameCounterChanges++ > MAX_NWK_FRAMECOUNTER_CHANGES ) MOV DPTR,#nwkFrameCounterChanges LCALL ??Subroutine53_0 & 0xFFFF ??CrossCallReturnLabel_81: MOV A,R0 ADD A,#0x1 MOV R2,A CLR A ADDC A,R1 MOV R3,A MOV DPTR,#nwkFrameCounterChanges LCALL ??Subroutine60_0 & 0xFFFF ??CrossCallReturnLabel_115: CLR C MOV A,R0 SUBB A,#-0x17 MOV A,R1 SUBB A,#0x3 JC ??ZDApp_ProcessSecEvent_5 // 542 { // 543 ZDApp_SaveNwkKey(); ; Setup parameters for call to function ZDApp_SaveNwkKey LCALL `??ZDApp_SaveNwkKey::?relay`; Banked call to: ZDApp_SaveNwkKey // 544 } // 545 // 546 // Return unprocessed events // 547 return (events ^ ZDO_FRAMECOUNTER_CHANGE); ??ZDApp_ProcessSecEvent_5: MOV A,R6 MOV R2,A MOV A,R7 XRL A,#0x4 SJMP ??ZDApp_ProcessSecEvent_3 // 548 } // 549 // 550 if ( events & ZDO_APS_FRAMECOUNTER_CHANGE ) ??ZDApp_ProcessSecEvent_4: MOV A,R3 ANL A,#0x10 JZ ??ZDApp_ProcessSecEvent_6 // 551 { // 552 #if defined (NV_RESTORE) // 553 ZDSecMgrSaveApsLinkKey(); // 554 #endif // (NV_RESTORE) // 555 // 556 // Return unprocessed events // 557 return (events ^ ZDO_APS_FRAMECOUNTER_CHANGE); MOV A,R3 XRL A,#0x10 SJMP ??ZDApp_ProcessSecEvent_3 // 558 } // 559 // 560 if ( events & ZDO_TCLK_FRAMECOUNTER_CHANGE ) ??ZDApp_ProcessSecEvent_6: MOV A,R3 ANL A,#0x8 JZ ??ZDApp_ProcessSecEvent_7 // 561 { // 562 ZDSecMgrSaveTCLinkKey(); ; Setup parameters for call to function ZDSecMgrSaveTCLinkKey LCALL `??ZDSecMgrSaveTCLinkKey::?relay`; Banked call to: ZDSecMgrSaveTCLinkKey // 563 // 564 // Return unprocessed events // 565 return (events ^ ZDO_TCLK_FRAMECOUNTER_CHANGE); MOV A,R6 MOV R2,A MOV A,R7 XRL A,#0x8 ??ZDApp_ProcessSecEvent_3: MOV R3,A SJMP ??ZDApp_ProcessSecEvent_8 // 566 } // 567 // 568 // Discard or make more handlers // 569 return 0; ??ZDApp_ProcessSecEvent_7: MOV R2,#0x0 MOV R3,#0x0 ??ZDApp_ProcessSecEvent_8: LJMP ??Subroutine52_0 & 0xFFFF // 570 } CFI EndBlock cfiBlock22 // 571 // 572 /********************************************************************* // 573 * Application Functions // 574 */ // 575 // 576 /********************************************************************* // 577 * @fn ZDOInitDevice // 578 * // 579 * @brief Start the device in the network. This function will read // 580 * ZCD_NV_STARTUP_OPTION (NV item) to determine whether or not to // 581 * restore the network state of the device. // 582 * // 583 * @param startDelay - timeDelay to start device (in milliseconds). // 584 * There is a jitter added to this delay: // 585 * ((NWK_START_DELAY + startDelay) // 586 * + (osal_rand() & EXTENDED_JOINING_RANDOM_MASK)) // 587 * When startDelay is set to ZDO_INIT_HOLD_NWK_START // 588 * this function will hold the network init. Application // 589 * can start the device. // 590 * // 591 * NOTE: If the application would like to force a "new" join, the // 592 * application should set the ZCD_STARTOPT_DEFAULT_NETWORK_STATE // 593 * bit in the ZCD_NV_STARTUP_OPTION NV item before calling // 594 * this function. "new" join means to not restore the network // 595 * state of the device. Use zgWriteStartupOptions() to set these // 596 * options. // 597 * // 598 * @return // 599 * ZDO_INITDEV_RESTORED_NETWORK_STATE - The device's network state was // 600 * restored. // 601 * ZDO_INITDEV_NEW_NETWORK_STATE - The network state was initialized. // 602 * This could mean that ZCD_NV_STARTUP_OPTION said to not restore, or // 603 * it could mean that there was no network state to restore. // 604 * ZDO_INITDEV_LEAVE_NOT_STARTED - Before the reset, a network leave was issued // 605 * with the rejoin option set to TRUE. So, the device was not // 606 * started in the network (one time only). The next time this // 607 * function is called it will start. // 608 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 609 uint8 ZDOInitDevice( uint16 startDelay ) ZDOInitDevice: CFI Block cfiBlock23 Using cfiCommon0 CFI Function ZDOInitDevice CODE // 610 { FUNCALL ZDOInitDevice, zgInitItems LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDOInitDevice, ZDConfig_InitDescriptors LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDOInitDevice, ZDAppDetermineDeviceType LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDOInitDevice, osal_rand LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDOInitDevice, ZDSecMgrInit LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDOInitDevice, ZDApp_LeaveCtrlInit LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDOInitDevice, ZDApp_LeaveCtrlStartup LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDOInitDevice, zgWriteStartupOptions LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDOInitDevice, osal_set_event LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDOInitDevice, ZDApp_NetworkInit LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDOInitDevice, NLME_SetBroadcastFilter LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 MOV A,#-0xa LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 10) ; Saved register size: 10 ; Auto size: 2 MOV A,#-0x2 LCALL ?ALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 12) LCALL ?Subroutine12 & 0xFFFF // 611 uint8 networkStateNV = ZDO_INITDEV_NEW_NETWORK_STATE; // 612 uint16 extendedDelay = 0; // 613 // 614 if ( devState == DEV_HOLD ) ??CrossCallReturnLabel_120: MOV DPTR,#devState MOVX A,@DPTR JNZ ??ZDOInitDevice_0 // 615 { // 616 // Initialize the RAM items table, in case an NV item has been updated. // 617 zgInitItems( FALSE ); ; Setup parameters for call to function zgInitItems MOV R1,#0x0 LCALL `??zgInitItems::?relay`; Banked call to: zgInitItems // 618 } // 619 // 620 ZDConfig_InitDescriptors(); ??ZDOInitDevice_0: ; Setup parameters for call to function ZDConfig_InitDescriptors LCALL `??ZDConfig_InitDescriptors::?relay`; Banked call to: ZDConfig_InitDescriptors // 621 //devtag.071807.todo - fix this temporary solution // 622 _NIB.CapabilityFlags = ZDO_Config_Node_Descriptor.CapabilityFlags; MOV DPTR,#ZDO_Config_Node_Descriptor + 2 MOVX A,@DPTR MOV DPTR,#_NIB + 14 MOVX @DPTR,A // 623 // 624 #if defined ( NV_RESTORE ) // 625 // Get Keypad directly to see if a reset nv is needed. // 626 // Hold down the SW_BYPASS_NV key (defined in OnBoard.h) // 627 // while booting to skip past NV Restore. // 628 if ( HalKeyRead() == SW_BYPASS_NV ) // 629 networkStateNV = ZDO_INITDEV_NEW_NETWORK_STATE; // 630 else // 631 { // 632 // Determine if NV should be restored // 633 networkStateNV = ZDApp_ReadNetworkRestoreState(); // 634 } // 635 // 636 if ( networkStateNV == ZDO_INITDEV_RESTORED_NETWORK_STATE ) // 637 { // 638 networkStateNV = ZDApp_RestoreNetworkState(); // 639 } // 640 else // 641 { // 642 // Wipe out the network state in NV // 643 NLME_InitNV(); // 644 NLME_SetDefaultNV(); // 645 // clear NWK key values // 646 ZDSecMgrClearNVKeyValues(); // 647 } // 648 #endif // 649 // 650 if ( networkStateNV == ZDO_INITDEV_NEW_NETWORK_STATE ) // 651 { // 652 ZDAppDetermineDeviceType(); ; Setup parameters for call to function ZDAppDetermineDeviceType LCALL `??ZDAppDetermineDeviceType::?relay`; Banked call to: ZDAppDetermineDeviceType // 653 // 654 // Only delay if joining network - not restoring network state // 655 extendedDelay = (uint16)((NWK_START_DELAY + startDelay) // 656 + (osal_rand() & EXTENDED_JOINING_RANDOM_MASK)); ; Setup parameters for call to function osal_rand LCALL `??osal_rand::?relay`; Banked call to: osal_rand MOV DPL,?XSP + 0 MOV DPH,?XSP + 1 MOV A,R2 ANL A,#0x7f MOV R0,A MOVX A,@DPTR ADD A,R0 MOV R0,A INC DPTR MOVX A,@DPTR ADDC A,#0x0 MOV R1,A MOV A,R0 ADD A,#0x64 MOV R6,A CLR A ADDC A,R1 MOV R7,A // 657 } // 658 // 659 // Initialize the security for type of device // 660 ZDApp_SecInit( networkStateNV ); ; Setup parameters for call to function ZDSecMgrInit MOV R1,#0x1 LCALL `??ZDSecMgrInit::?relay`; Banked call to: ZDSecMgrInit // 661 // 662 if( ZDO_INIT_HOLD_NWK_START != startDelay ) MOV DPL,?XSP + 0 MOV DPH,?XSP + 1 MOVX A,@DPTR CPL A JNZ ??ZDOInitDevice_1 INC DPTR MOVX A,@DPTR CPL A ??ZDOInitDevice_1: JZ ??ZDOInitDevice_2 // 663 { // 664 devState = DEV_INIT; // Remove the Hold state MOV DPTR,#devState MOV A,#0x1 MOVX @DPTR,A // 665 // 666 // Initialize leave control logic // 667 ZDApp_LeaveCtrlInit(); ; Setup parameters for call to function ZDApp_LeaveCtrlInit LCALL `??ZDApp_LeaveCtrlInit::?relay`; Banked call to: ZDApp_LeaveCtrlInit // 668 // 669 // Check leave control reset settings // 670 ZDApp_LeaveCtrlStartup( &devState, &startDelay ); ; Setup parameters for call to function ZDApp_LeaveCtrlStartup MOV R4,?XSP + 0 MOV R5,?XSP + 1 MOV R2,#devState & 0xff MOV R3,#(devState >> 8) & 0xff LCALL `??ZDApp_LeaveCtrlStartup::?relay`; Banked call to: ZDApp_LeaveCtrlStartup // 671 // 672 // Leave may make the hold state come back // 673 if ( devState == DEV_HOLD ) MOV DPTR,#devState MOVX A,@DPTR JNZ ??ZDOInitDevice_3 // 674 { // 675 // Set the NV startup option to force a "new" join. // 676 zgWriteStartupOptions( ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE ); ; Setup parameters for call to function zgWriteStartupOptions MOV R2,#0x2 MOV R1,#-0x1 LCALL `??zgWriteStartupOptions::?relay`; Banked call to: zgWriteStartupOptions // 677 // 678 // Notify the applications // 679 osal_set_event( ZDAppTaskID, ZDO_STATE_CHANGE_EVT ); ; Setup parameters for call to function osal_set_event LCALL ?Subroutine17 & 0xFFFF // 680 // 681 return ( ZDO_INITDEV_LEAVE_NOT_STARTED ); // Don't join - (one time). ??CrossCallReturnLabel_60: MOV R1,#0x2 SJMP ??ZDOInitDevice_4 // 682 } // 683 // 684 // Trigger the network start // 685 ZDApp_NetworkInit( extendedDelay ); ??ZDOInitDevice_3: ; Setup parameters for call to function ZDApp_NetworkInit MOV A,R6 MOV R2,A MOV A,R7 MOV R3,A LCALL `??ZDApp_NetworkInit::?relay`; Banked call to: ZDApp_NetworkInit // 686 } // 687 // 688 // set broadcast address mask to support broadcast filtering // 689 NLME_SetBroadcastFilter( ZDO_Config_Node_Descriptor.CapabilityFlags ); ??ZDOInitDevice_2: ; Setup parameters for call to function NLME_SetBroadcastFilter MOV DPTR,#ZDO_Config_Node_Descriptor + 2 MOVX A,@DPTR MOV R1,A LCALL `??NLME_SetBroadcastFilter::?relay`; Banked call to: NLME_SetBroadcastFilter // 690 // 691 return ( networkStateNV ); MOV R1,#0x1 ??ZDOInitDevice_4: LJMP ?Subroutine7 & 0xFFFF // 692 } CFI EndBlock cfiBlock23 // 693 // 694 /********************************************************************* // 695 * @fn ZDApp_ReadNetworkRestoreState // 696 * // 697 * @brief Read the ZCD_NV_STARTUP_OPTION NV Item to state whether // 698 * or not to restore the network state. // 699 * If the read value has the ZCD_STARTOPT_DEFAULT_NETWORK_STATE // 700 * bit set return the ZDO_INITDEV_NEW_NETWORK_STATE. // 701 * // 702 * @param none // 703 * // 704 * @return ZDO_INITDEV_NEW_NETWORK_STATE // 705 * or ZDO_INITDEV_RESTORED_NETWORK_STATE based on whether or // 706 * not ZCD_STARTOPT_DEFAULT_NETWORK_STATE bit is set in // 707 * ZCD_NV_STARTUP_OPTION // 708 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 709 uint8 ZDApp_ReadNetworkRestoreState( void ) ZDApp_ReadNetworkRestoreState: CFI Block cfiBlock24 Using cfiCommon0 CFI Function ZDApp_ReadNetworkRestoreState CODE // 710 { FUNCALL ZDApp_ReadNetworkRestoreState, zgReadStartupOptions LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC MOV A,#-0x9 LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 9) ; Saved register size: 9 ; Auto size: 0 // 711 uint8 networkStateNV = ZDO_INITDEV_RESTORED_NETWORK_STATE; MOV R6,#0x0 // 712 // 713 // Look for the New Network State option. // 714 if ( zgReadStartupOptions() & ZCD_STARTOPT_DEFAULT_NETWORK_STATE ) ; Setup parameters for call to function zgReadStartupOptions LCALL `??zgReadStartupOptions::?relay`; Banked call to: zgReadStartupOptions MOV A,R1 MOV R0,A MOV C,0xE0 /* A */.1 JNC ??ZDApp_ReadNetworkRestoreState_0 // 715 { // 716 networkStateNV = ZDO_INITDEV_NEW_NETWORK_STATE; MOV R6,#0x1 // 717 } // 718 // 719 return ( networkStateNV ); ??ZDApp_ReadNetworkRestoreState_0: MOV A,R6 MOV R1,A LJMP ??Subroutine52_0 & 0xFFFF // 720 } CFI EndBlock cfiBlock24 // 721 // 722 /********************************************************************* // 723 * @fn ZDAppDetermineDeviceType() // 724 * // 725 * @brief Determines the type of device to start. // 726 * // 727 * Looks at zgDeviceLogicalType and determines what type of // 728 * device to start. The types are: // 729 * ZG_DEVICETYPE_COORDINATOR // 730 * ZG_DEVICETYPE_ROUTER // 731 * ZG_DEVICETYPE_ENDDEVICE // 732 * // 733 * @param none // 734 * // 735 * @return none // 736 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 737 void ZDAppDetermineDeviceType( void ) ZDAppDetermineDeviceType: CFI Block cfiBlock25 Using cfiCommon0 CFI Function ZDAppDetermineDeviceType CODE // 738 { FUNCALL ZDAppDetermineDeviceType, nwk_ExtPANIDValid LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC PUSH DPL CFI DPL0 Frame(CFA_SP, 4) CFI CFA_SP SP+-4 PUSH DPH CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-5 ; Saved register size: 2 ; Auto size: 0 // 739 if ( zgDeviceLogicalType == ZG_DEVICETYPE_COORDINATOR ) MOV DPTR,#zgDeviceLogicalType MOVX A,@DPTR JNZ ??ZDAppDetermineDeviceType_0 // 740 { // 741 devStartMode = MODE_HARD; // Start as a coordinator MOV DPTR,#devStartMode MOV A,#0x2 MOVX @DPTR,A // 742 ZDO_Config_Node_Descriptor.LogicalType = NODETYPE_COORDINATOR; MOV DPTR,#ZDO_Config_Node_Descriptor MOVX A,@DPTR ANL A,#0xf8 SJMP ??ZDAppDetermineDeviceType_1 // 743 } // 744 else // 745 { // 746 if ( zgDeviceLogicalType == ZG_DEVICETYPE_ROUTER ) ??ZDAppDetermineDeviceType_0: XRL A,#0x1 JNZ ??ZDAppDetermineDeviceType_2 // 747 ZDO_Config_Node_Descriptor.LogicalType = NODETYPE_ROUTER; MOV DPTR,#ZDO_Config_Node_Descriptor MOVX A,@DPTR ANL A,#0xf8 ORL A,#0x1 SJMP ??ZDAppDetermineDeviceType_3 // 748 else if ( zgDeviceLogicalType == ZG_DEVICETYPE_ENDDEVICE ) ??ZDAppDetermineDeviceType_2: MOVX A,@DPTR XRL A,#0x2 JNZ ??ZDAppDetermineDeviceType_4 // 749 ZDO_Config_Node_Descriptor.LogicalType = NODETYPE_DEVICE; MOV DPTR,#ZDO_Config_Node_Descriptor MOVX A,@DPTR ANL A,#0xf8 ORL A,#0x2 ??ZDAppDetermineDeviceType_3: MOVX @DPTR,A // 750 // 751 // If AIB_apsUseExtendedPANID is set to a non-zero value by commissioning // 752 // The device shall do rejoin the network. Otherwise, do normal join // 753 if ( nwk_ExtPANIDValid( AIB_apsUseExtendedPANID ) == false ) ??ZDAppDetermineDeviceType_4: ; Setup parameters for call to function nwk_ExtPANIDValid MOV R2,#AIB_apsUseExtendedPANID & 0xff MOV R3,#(AIB_apsUseExtendedPANID >> 8) & 0xff LCALL `??nwk_ExtPANIDValid::?relay`; Banked call to: nwk_ExtPANIDValid MOV A,R1 MOV DPTR,#devStartMode JNZ ??ZDAppDetermineDeviceType_5 // 754 { // 755 devStartMode = MODE_JOIN; // Assume joining CLR A SJMP ??ZDAppDetermineDeviceType_1 // 756 } // 757 else // 758 { // 759 devStartMode = MODE_REJOIN; ??ZDAppDetermineDeviceType_5: MOV A,#0x3 ??ZDAppDetermineDeviceType_1: MOVX @DPTR,A // 760 } // 761 } // 762 } LJMP ?Subroutine3 & 0xFFFF CFI EndBlock cfiBlock25 // 763 // 764 /********************************************************************* // 765 * @fn ZDApp_NetworkStartEvt() // 766 * // 767 * @brief Process the Network Start Event // 768 * // 769 * @param none // 770 * // 771 * @return none // 772 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 773 void ZDApp_NetworkStartEvt( void ) ZDApp_NetworkStartEvt: CFI Block cfiBlock26 Using cfiCommon0 CFI Function ZDApp_NetworkStartEvt CODE // 774 { FUNCALL ZDApp_NetworkStartEvt, osal_pwrmgr_device LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_NetworkStartEvt, osal_set_event LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_NetworkStartEvt, NLME_GetEnergyThreshold LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_NetworkStartEvt, NLME_GetEnergyThreshold LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_NetworkStartEvt, NLME_SetEnergyThreshold LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_NetworkStartEvt, osal_set_event LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_NetworkStartEvt, osal_set_event LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC PUSH DPL CFI DPL0 Frame(CFA_SP, 4) CFI CFA_SP SP+-4 PUSH DPH CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-5 ; Saved register size: 2 ; Auto size: 0 // 775 if ( nwkStatus == ZSuccess ) MOV DPTR,#nwkStatus MOVX A,@DPTR JNZ ??ZDApp_NetworkStartEvt_0 // 776 { // 777 // Successfully started a ZigBee network // 778 if ( devState == DEV_COORD_STARTING ) MOV DPTR,#devState MOVX A,@DPTR XRL A,#0x8 JNZ ??ZDApp_NetworkStartEvt_1 // 779 { // 780 devState = DEV_ZB_COORD; MOV A,#0x9 MOVX @DPTR,A // 781 } // 782 // 783 osal_pwrmgr_device( PWRMGR_ALWAYS_ON ); ??ZDApp_NetworkStartEvt_1: ; Setup parameters for call to function osal_pwrmgr_device MOV R1,#0x0 LCALL `??osal_pwrmgr_device::?relay`; Banked call to: osal_pwrmgr_device // 784 osal_set_event( ZDAppTaskID, ZDO_STATE_CHANGE_EVT ); ; Setup parameters for call to function osal_set_event SJMP ??ZDApp_NetworkStartEvt_2 // 785 } // 786 else // 787 { // 788 // Try again with a higher energy threshold !! // 789 if ( ( NLME_GetEnergyThreshold() + ENERGY_SCAN_INCREMENT ) < 0xff ) ??ZDApp_NetworkStartEvt_0: ; Setup parameters for call to function NLME_GetEnergyThreshold LCALL `??NLME_GetEnergyThreshold::?relay`; Banked call to: NLME_GetEnergyThreshold MOV A,R1 MOV R1,#0x0 ADD A,#0x10 JNC ??ZDApp_NetworkStartEvt_3 INC R1 ??ZDApp_NetworkStartEvt_3: CLR C SUBB A,#-0x1 MOV A,R1 SUBB A,#0x0 MOV C,0xD0 /* PSW */.2 XRL A,PSW RLC A JNC ??ZDApp_NetworkStartEvt_4 // 790 { // 791 NLME_SetEnergyThreshold( (uint8)(NLME_GetEnergyThreshold() + ENERGY_SCAN_INCREMENT) ); ; Setup parameters for call to function NLME_GetEnergyThreshold LCALL `??NLME_GetEnergyThreshold::?relay`; Banked call to: NLME_GetEnergyThreshold MOV A,R1 MOV R0,A ; Setup parameters for call to function NLME_SetEnergyThreshold MOV A,#0x10 ADD A,R1 MOV R1,A LCALL `??NLME_SetEnergyThreshold::?relay`; Banked call to: NLME_SetEnergyThreshold // 792 osal_set_event( ZDAppTaskID, ZDO_NETWORK_INIT ); ; Setup parameters for call to function osal_set_event MOV R2,#0x1 SJMP ??ZDApp_NetworkStartEvt_5 // 793 } // 794 else // 795 { // 796 // Failed to start network. Enter a dormant state (until user intervenes) // 797 devState = DEV_INIT; ??ZDApp_NetworkStartEvt_4: MOV DPTR,#devState MOV A,#0x1 MOVX @DPTR,A // 798 osal_set_event( ZDAppTaskID, ZDO_STATE_CHANGE_EVT ); ; Setup parameters for call to function osal_set_event ??ZDApp_NetworkStartEvt_2: MOV R2,#0x10 // 799 } // 800 } ??ZDApp_NetworkStartEvt_5: LCALL ??Subroutine43_0 & 0xFFFF // 801 } ??CrossCallReturnLabel_64: LJMP ?Subroutine3 & 0xFFFF CFI EndBlock cfiBlock26 // 802 // 803 /********************************************************************* // 804 * @fn ZDApp_DeviceAuthEvt() // 805 * // 806 * @brief Process the Device Authentic Event // 807 * // 808 * @param none // 809 * // 810 * @return none // 811 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 812 void ZDApp_DeviceAuthEvt( void ) ZDApp_DeviceAuthEvt: CFI Block cfiBlock27 Using cfiCommon0 CFI Function ZDApp_DeviceAuthEvt CODE // 813 { FUNCALL ZDApp_DeviceAuthEvt, ZDApp_ResetTimerCancel LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_DeviceAuthEvt, osal_set_event LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_DeviceAuthEvt, NLME_StartRouterRequest LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_DeviceAuthEvt, ZDApp_SaveNwkKey LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_DeviceAuthEvt, ZDApp_AnnounceNewAddress LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_DeviceAuthEvt, NLME_SetPollRate LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC PUSH DPL CFI DPL0 Frame(CFA_SP, 4) CFI CFA_SP SP+-4 PUSH DPH CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-5 ; Saved register size: 2 ; Auto size: 0 // 814 // received authentication from trust center // 815 if ( devState == DEV_END_DEVICE_UNAUTH ) MOV DPTR,#devState MOVX A,@DPTR XRL A,#0x5 JNZ ??ZDApp_DeviceAuthEvt_0 // 816 { // 817 // Stop the reset timer so it doesn't reset // 818 ZDApp_ResetTimerCancel(); ; Setup parameters for call to function ZDApp_ResetTimerCancel LCALL `??ZDApp_ResetTimerCancel::?relay`; Banked call to: ZDApp_ResetTimerCancel // 819 // 820 devState = DEV_END_DEVICE; LCALL ?Subroutine9 & 0xFFFF // 821 osal_set_event( ZDAppTaskID, ZDO_STATE_CHANGE_EVT ); // 822 // 823 // Set the Power Manager Device // 824 #if defined ( POWER_SAVING ) // 825 osal_pwrmgr_device( PWRMGR_BATTERY ); // 826 #endif // 827 // 828 if ( ZSTACK_ROUTER_BUILD ) // 829 { // 830 if ( ZDO_Config_Node_Descriptor.LogicalType != NODETYPE_DEVICE ) ??CrossCallReturnLabel_67: LCALL ?Subroutine21 & 0xFFFF ??CrossCallReturnLabel_20: JZ ??ZDApp_DeviceAuthEvt_1 // 831 { // 832 // NOTE: first two parameters are not used, see NLMEDE.h for details // 833 NLME_StartRouterRequest( 0, 0, false ); ; Setup parameters for call to function NLME_StartRouterRequest MOV R3,#0x0 MOV R2,#0x0 MOV R1,#0x0 LCALL `??NLME_StartRouterRequest::?relay`; Banked call to: NLME_StartRouterRequest // 834 } // 835 } // 836 // 837 // Notify to save info into NV // 838 ZDApp_NVUpdate(); // 839 // 840 // Save off the security // 841 ZDApp_SaveNwkKey(); ??ZDApp_DeviceAuthEvt_1: ; Setup parameters for call to function ZDApp_SaveNwkKey LCALL `??ZDApp_SaveNwkKey::?relay`; Banked call to: ZDApp_SaveNwkKey // 842 // 843 ZDApp_AnnounceNewAddress(); ; Setup parameters for call to function ZDApp_AnnounceNewAddress LCALL `??ZDApp_AnnounceNewAddress::?relay`; Banked call to: ZDApp_AnnounceNewAddress // 844 // 845 if ( (ZDO_Config_Node_Descriptor.CapabilityFlags & CAPINFO_RCVR_ON_IDLE) == 0 ) MOV DPTR,#ZDO_Config_Node_Descriptor + 2 MOVX A,@DPTR MOV C,0xE0 /* A */.3 JC ??ZDApp_DeviceAuthEvt_0 // 846 { // 847 NLME_SetPollRate( ZDApp_SavedPollRate ); ; Setup parameters for call to function NLME_SetPollRate MOV DPTR,#ZDApp_SavedPollRate LCALL ?Subroutine38 & 0xFFFF // 848 } // 849 } ??CrossCallReturnLabel_51: LCALL `??NLME_SetPollRate::?relay`; Banked call to: NLME_SetPollRate // 850 else // 851 { // 852 ZDApp_NVUpdate(); // 853 } // 854 } ??ZDApp_DeviceAuthEvt_0: LJMP ?Subroutine3 & 0xFFFF CFI EndBlock cfiBlock27 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine9: CFI Block cfiCond28 Using cfiCommon0 CFI Function ZDApp_DeviceAuthEvt CFI Conditional ??CrossCallReturnLabel_67 CFI DPL0 Frame(CFA_SP, 4) CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-7 CFI Block cfiCond29 Using cfiCommon0 CFI (cfiCond29) Function ZDApp_ProcessNetworkJoin CFI (cfiCond29) Conditional ??CrossCallReturnLabel_68 CFI (cfiCond29) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond29) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond29) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond29) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond29) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond29) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond29) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond29) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond29) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond29) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond29) CFA_SP SP+-2 CFI (cfiCond29) CFA_XSP16 add(XSP16, 12) CFI Block cfiPicker30 Using cfiCommon1 CFI (cfiPicker30) NoFunction CFI (cfiPicker30) Picker MOV DPTR,#devState MOV A,#0x6 CFI EndBlock cfiCond28 CFI EndBlock cfiCond29 CFI EndBlock cfiPicker30 REQUIRE ??Subroutine46_0 ; // Fall through to label ??Subroutine46_0 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ??Subroutine46_0: CFI Block cfiCond31 Using cfiCommon0 CFI Function ZDApp_event_loop CFI Conditional ??CrossCallReturnLabel_69 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 12) CFI Block cfiCond32 Using cfiCommon0 CFI (cfiCond32) Function ZDApp_DeviceAuthEvt CFI (cfiCond32) Conditional ??CrossCallReturnLabel_67 CFI (cfiCond32) DPL0 Frame(CFA_SP, 4) CFI (cfiCond32) DPH0 Frame(CFA_SP, 5) CFI (cfiCond32) CFA_SP SP+-7 CFI Block cfiCond33 Using cfiCommon0 CFI (cfiCond33) Function ZDApp_ProcessNetworkJoin CFI (cfiCond33) Conditional ??CrossCallReturnLabel_68 CFI (cfiCond33) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond33) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond33) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond33) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond33) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond33) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond33) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond33) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond33) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond33) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond33) CFA_SP SP+-2 CFI (cfiCond33) CFA_XSP16 add(XSP16, 12) CFI Block cfiPicker34 Using cfiCommon1 CFI (cfiPicker34) NoFunction CFI (cfiPicker34) Picker MOVX @DPTR,A ; Setup parameters for call to function osal_set_event ; Setup parameters for call to function osal_set_event ; Setup parameters for call to function osal_set_event MOV R2,#0x10 MOV R3,#0x0 MOV DPTR,#ZDAppTaskID MOVX A,@DPTR MOV R1,A LCALL `??osal_set_event::?relay`; Banked call to: osal_set_event RET CFI EndBlock cfiCond31 CFI EndBlock cfiCond32 CFI EndBlock cfiCond33 CFI EndBlock cfiPicker34 // 855 // 856 /********************************************************************* // 857 * @fn ZDApp_SaveNetworkStateEvt() // 858 * // 859 * @brief Process the Save the Network State Event // 860 * // 861 * @param none // 862 * // 863 * @return none // 864 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 865 void ZDApp_SaveNetworkStateEvt( void ) ZDApp_SaveNetworkStateEvt: CFI Block cfiBlock35 Using cfiCommon0 CFI Function ZDApp_SaveNetworkStateEvt CODE // 866 { ; Saved register size: 0 ; Auto size: 0 // 867 #if defined ( NV_RESTORE ) // 868 #if defined ( NV_TURN_OFF_RADIO ) // 869 // Turn off the radio's receiver during an NV update // 870 uint8 RxOnIdle; // 871 uint8 x = false; // 872 ZMacGetReq( ZMacRxOnIdle, &RxOnIdle ); // 873 ZMacSetReq( ZMacRxOnIdle, &x ); // 874 #endif // 875 // 876 // Update the Network State in NV // 877 NLME_UpdateNV( NWK_NV_NIB_ENABLE | // 878 NWK_NV_DEVICELIST_ENABLE | // 879 NWK_NV_BINDING_ENABLE | // 880 NWK_NV_ADDRMGR_ENABLE ); // 881 // 882 // Reset the NV startup option to resume from NV by // 883 // clearing the "New" join option. // 884 zgWriteStartupOptions( FALSE, ZCD_STARTOPT_DEFAULT_NETWORK_STATE ); // 885 // 886 #if defined ( NV_TURN_OFF_RADIO ) // 887 ZMacSetReq( ZMacRxOnIdle, &RxOnIdle ); // 888 #endif // 889 #endif // NV_RESTORE // 890 } LJMP ?BRET CFI EndBlock cfiBlock35 // 891 // 892 /********************************************************************* // 893 * @fn ZDApp_RestoreNetworkState() // 894 * // 895 * @brief This function will restore the network state of the // 896 * device if the network state is stored in NV. // 897 * // 898 * @param none // 899 * // 900 * @return // 901 * ZDO_INITDEV_RESTORED_NETWORK_STATE - The device's network state was // 902 * restored. // 903 * ZDO_INITDEV_NEW_NETWORK_STATE - The network state was not used. // 904 * This could mean that zgStartupOption said to not restore, or // 905 * it could mean that there was no network state to restore. // 906 * // 907 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 908 uint8 ZDApp_RestoreNetworkState( void ) ZDApp_RestoreNetworkState: CFI Block cfiBlock36 Using cfiCommon0 CFI Function ZDApp_RestoreNetworkState CODE // 909 { FUNCALL ZDApp_RestoreNetworkState, NLME_InitNV LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_RestoreNetworkState, NLME_RestoreFromNV LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_RestoreNetworkState, NLME_GetShortAddr LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_RestoreNetworkState, sAddrExtCpy LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC MOV A,#-0x9 LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 9) ; Saved register size: 9 ; Auto size: 0 // 910 uint8 nvStat; // 911 // 912 // Initialize NWK NV items // 913 nvStat = NLME_InitNV(); ; Setup parameters for call to function NLME_InitNV LCALL `??NLME_InitNV::?relay`; Banked call to: NLME_InitNV MOV A,R1 MOV R6,A // 914 // 915 if ( nvStat != NV_OPER_FAILED ) MOV A,#0xa XRL A,R6 JZ ??ZDApp_RestoreNetworkState_0 // 916 { // 917 if ( NLME_RestoreFromNV() ) ; Setup parameters for call to function NLME_RestoreFromNV LCALL `??NLME_RestoreFromNV::?relay`; Banked call to: NLME_RestoreFromNV MOV A,R1 JZ ??ZDApp_RestoreNetworkState_0 // 918 { // 919 // Are we a coordinator // 920 ZDAppNwkAddr.addr.shortAddr = NLME_GetShortAddr(); ; Setup parameters for call to function NLME_GetShortAddr LCALL `??NLME_GetShortAddr::?relay`; Banked call to: NLME_GetShortAddr MOV DPTR,#ZDAppNwkAddr LCALL ??Subroutine60_0 & 0xFFFF // 921 if ( ZDAppNwkAddr.addr.shortAddr == 0 ) ??CrossCallReturnLabel_116: MOV R1,A MOV A,R2 ORL A,R1 JNZ ??ZDApp_RestoreNetworkState_1 // 922 ZDO_Config_Node_Descriptor.LogicalType = NODETYPE_COORDINATOR; MOV DPTR,#ZDO_Config_Node_Descriptor MOVX A,@DPTR ANL A,#0xf8 MOVX @DPTR,A // 923 devStartMode = MODE_RESUME; ??ZDApp_RestoreNetworkState_1: MOV DPTR,#devStartMode MOV A,#0x1 LCALL ?Subroutine10 & 0xFFFF // 924 osal_cpyExtAddr( ZDO_UseExtendedPANID, _NIB.extendedPANID ); // 925 } // 926 else // 927 nvStat = NV_ITEM_UNINIT; // 928 // 929 if ( ZG_SECURE_ENABLED ) // 930 { // 931 nwkFrameCounterChanges = 0; // 932 // 933 if ( ZG_BUILD_COORDINATOR_TYPE && ZG_DEVICE_COORDINATOR_TYPE ) // 934 { // 935 ZDApp_RestoreNwkKey(); // 936 } // 937 } // 938 // 939 // The default for RxOnWhenIdle is true for Routers and false for end devices // 940 // [setup in the NLME_RestoreFromNV()]. Change it here if you want something // 941 // other than default. // 942 } // 943 // 944 if ( nvStat == ZSUCCESS ) ??CrossCallReturnLabel_0: MOV A,R6 JNZ ??ZDApp_RestoreNetworkState_0 // 945 return ( ZDO_INITDEV_RESTORED_NETWORK_STATE ); MOV R1,#0x0 SJMP ??ZDApp_RestoreNetworkState_2 // 946 else // 947 return ( ZDO_INITDEV_NEW_NETWORK_STATE ); ??ZDApp_RestoreNetworkState_0: MOV R1,#0x1 ??ZDApp_RestoreNetworkState_2: LJMP ??Subroutine52_0 & 0xFFFF // 948 } CFI EndBlock cfiBlock36 // 949 // 950 /********************************************************************* // 951 * @fn ZDApp_InitUserDesc() // 952 * // 953 * @brief Initialize the User Descriptor, the descriptor is read from NV // 954 * when needed. If you want to initialize the User descriptor to // 955 * something other than all zero, do it here. // 956 * // 957 * @param none // 958 * // 959 * @return none // 960 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 961 void ZDApp_InitUserDesc( void ) ZDApp_InitUserDesc: CFI Block cfiBlock37 Using cfiCommon0 CFI Function ZDApp_InitUserDesc CODE // 962 { FUNCALL ZDApp_InitUserDesc, osal_memset LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 27, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 27, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_InitUserDesc, osal_nv_item_init LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 29, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 29, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_InitUserDesc, osal_nv_read LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 31, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 31, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 MOV A,#-0xa LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 10) ; Saved register size: 10 ; Auto size: 17 MOV A,#-0x11 LCALL ?ALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 27) // 963 UserDescriptorFormat_t ZDO_DefaultUserDescriptor; // 964 // 965 // Initialize the User Descriptor, the descriptor is read from NV // 966 // when needed. If you want to initialize the User descriptor to something // 967 // other than all zero, do it here. // 968 osal_memset( &ZDO_DefaultUserDescriptor, 0, sizeof( UserDescriptorFormat_t ) ); ; Setup parameters for call to function osal_memset MOV R4,#0x11 LCALL ?Subroutine29 & 0xFFFF // 969 if ( ZSUCCESS == osal_nv_item_init( ZCD_NV_USERDESC, // 970 sizeof(UserDescriptorFormat_t), (void*)&ZDO_DefaultUserDescriptor ) ) ??CrossCallReturnLabel_37: LCALL ?PUSH_XSTACK_I_TWO CFI CFA_XSP16 add(XSP16, 29) MOV R4,#0x11 MOV R5,#0x0 MOV R2,#-0x7f MOV R3,#0x0 LCALL `??osal_nv_item_init::?relay`; Banked call to: osal_nv_item_init MOV A,#0x2 LCALL ?DEALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 27) MOV A,R1 JNZ ??ZDApp_InitUserDesc_0 // 971 { // 972 if ( ZSUCCESS == osal_nv_read( ZCD_NV_USERDESC, 0, // 973 sizeof(UserDescriptorFormat_t), (void*)&ZDO_DefaultUserDescriptor ) ) ; Setup parameters for call to function osal_nv_read MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_TWO CFI CFA_XSP16 add(XSP16, 29) MOV ?V0,#0x11 MOV ?V1,#0x0 MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_TWO CFI CFA_XSP16 add(XSP16, 31) MOV R4,#0x0 MOV R5,#0x0 MOV R2,#-0x7f LCALL ?Subroutine30 & 0xFFFF ??CrossCallReturnLabel_39: LCALL ?DEALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 27) MOV A,R1 JNZ ??ZDApp_InitUserDesc_0 // 974 { // 975 if ( ZDO_DefaultUserDescriptor.len != 0 ) MOV DPL,?XSP + 0 MOV DPH,?XSP + 1 MOVX A,@DPTR JZ ??ZDApp_InitUserDesc_0 // 976 { // 977 ZDO_Config_Node_Descriptor.UserDescAvail = TRUE; MOV DPTR,#ZDO_Config_Node_Descriptor MOVX A,@DPTR SETB 0xE0 /* A */.4 MOVX @DPTR,A // 978 } // 979 } // 980 } // 981 } ??ZDApp_InitUserDesc_0: MOV A,#0x11 LJMP ??Subroutine49_0 & 0xFFFF CFI EndBlock cfiBlock37 // 982 // 983 /********************************************************************* // 984 * @fn ZDAppCheckForHoldKey() // 985 * // 986 * @brief Check for key to set the device into Hold Auto Start // 987 * // 988 * @param none // 989 * // 990 * @return none // 991 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 992 void ZDAppCheckForHoldKey( void ) ZDAppCheckForHoldKey: CFI Block cfiBlock38 Using cfiCommon0 CFI Function ZDAppCheckForHoldKey CODE // 993 { ; Saved register size: 0 ; Auto size: 0 // 994 #if (defined HAL_KEY) && (HAL_KEY == TRUE) // 995 // Get Keypad directly to see if a HOLD_START is needed. // 996 // Hold down the SW_BYPASS_START key (see OnBoard.h) // 997 // while booting to avoid starting up the device. // 998 if ( HalKeyRead () == SW_BYPASS_START) // 999 { // 1000 // Change the device state to HOLD on start up // 1001 devState = DEV_HOLD; // 1002 } // 1003 #endif // HAL_KEY // 1004 } LJMP ?BRET CFI EndBlock cfiBlock38 // 1005 // 1006 /********************************************************************* // 1007 * @fn ZDApp_ProcessOSALMsg() // 1008 * // 1009 * @brief Process the incoming task message. // 1010 * // 1011 * @param msgPtr - message to process // 1012 * // 1013 * @return none // 1014 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1015 void ZDApp_ProcessOSALMsg( osal_event_hdr_t *msgPtr ) ZDApp_ProcessOSALMsg: CFI Block cfiBlock39 Using cfiCommon0 CFI Function ZDApp_ProcessOSALMsg CODE // 1016 { FUNCALL ZDApp_ProcessOSALMsg, ZDP_IncomingData LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, ZDApp_ProcessMsgCBs LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, ZDApp_NwkDescListProcessing LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, ZDApp_NodeProfileSync LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, NLME_JoinRequest LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 15, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 15, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, osal_rand LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, ZDApp_NetworkInit LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, osal_rand LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, ZMacSetReq LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, ZMacSetReq LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, ZMacSetReq LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, NLME_ReJoinRequest LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, osal_rand LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, ZDApp_NetworkInit LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, NLME_SetPollRate LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, NLME_SetQueuedPollRate LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, NLME_SetResponseRate LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, osal_rand LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, ZDApp_NetworkInit LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, ZDApp_ProcessNetworkJoin LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, sAddrExtCpy LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessOSALMsg, ZDApp_NetworkInit LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 MOV A,#-0xa LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 10) ; Saved register size: 10 ; Auto size: 1 MOV A,#-0x1 LCALL ?ALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 11) // 1017 // Data Confirmation message fields // 1018 uint8 sentEP; // This should always be 0 // 1019 uint8 sentStatus; // 1020 afDataConfirm_t *afDataConfirm; // 1021 uint8 tmp; // 1022 // 1023 switch ( msgPtr->event ) MOV DPL,R2 MOV DPH,R3 MOVX A,@DPTR DEC A JZ ??ZDApp_ProcessOSALMsg_0 DEC A JNZ $+5 LJMP ??ZDApp_ProcessOSALMsg_1 & 0xFFFF DEC A JNZ $+5 LJMP ??ZDApp_ProcessOSALMsg_2 & 0xFFFF ADD A,#-0x17 JZ ??ZDApp_ProcessOSALMsg_3 ADD A,#0x47 JZ ??ZDApp_ProcessOSALMsg_4 ADD A,#-0x2a JZ ??ZDApp_ProcessOSALMsg_5 LJMP ??ZDApp_ProcessOSALMsg_6 & 0xFFFF // 1024 { // 1025 // Incoming ZDO Message // 1026 case AF_INCOMING_MSG_CMD: // 1027 ZDP_IncomingData( (afIncomingMSGPacket_t *)msgPtr ); ??ZDApp_ProcessOSALMsg_3: ; Setup parameters for call to function ZDP_IncomingData LCALL `??ZDP_IncomingData::?relay`; Banked call to: ZDP_IncomingData // 1028 break; LJMP ??ZDApp_ProcessOSALMsg_6 & 0xFFFF // 1029 // 1030 case ZDO_CB_MSG: // 1031 ZDApp_ProcessMsgCBs( (zdoIncomingMsg_t *)msgPtr ); ??ZDApp_ProcessOSALMsg_4: ; Setup parameters for call to function ZDApp_ProcessMsgCBs LCALL `??ZDApp_ProcessMsgCBs::?relay`; Banked call to: ZDApp_ProcessMsgCBs // 1032 break; LJMP ??ZDApp_ProcessOSALMsg_6 & 0xFFFF // 1033 // 1034 case AF_DATA_CONFIRM_CMD: // 1035 // This message is received as a confirmation of a data packet sent. // 1036 // The status is of ZStatus_t type [defined in NLMEDE.h] // 1037 // The message fields are defined in AF.h // 1038 afDataConfirm = (afDataConfirm_t *)msgPtr; // 1039 sentEP = afDataConfirm->endpoint; // 1040 sentStatus = afDataConfirm->hdr.status; // 1041 // 1042 // Action taken when confirmation is received. // 1043 #if defined ( ZIGBEE_FREQ_AGILITY ) // 1044 if ( pZDNwkMgr_ProcessDataConfirm ) ??ZDApp_ProcessOSALMsg_5: MOV DPTR,#pZDNwkMgr_ProcessDataConfirm LCALL ?Subroutine14 & 0xFFFF ??CrossCallReturnLabel_8: JNZ $+5 LJMP ??ZDApp_ProcessOSALMsg_6 & 0xFFFF // 1045 pZDNwkMgr_ProcessDataConfirm( afDataConfirm ); ; Setup parameters for indirect call LCALL ??Subroutine57_0 & 0xFFFF ??CrossCallReturnLabel_94: LCALL ?CALL_IND LJMP ??ZDApp_ProcessOSALMsg_6 & 0xFFFF // 1046 #endif // 1047 (void)sentEP; // 1048 (void)sentStatus; // 1049 break; // 1050 // 1051 case ZDO_NWK_DISC_CNF: // 1052 if (devState != DEV_NWK_DISC) ??ZDApp_ProcessOSALMsg_0: MOV DPTR,#devState MOVX A,@DPTR XRL A,#0x2 JZ $+5 LJMP ??ZDApp_ProcessOSALMsg_6 & 0xFFFF // 1053 break; // 1054 // 1055 if ( ZG_BUILD_JOINING_TYPE && ZG_DEVICE_JOINING_TYPE ) MOV DPTR,#zgDeviceLogicalType MOVX A,@DPTR XRL A,#0x1 JZ ??ZDApp_ProcessOSALMsg_7 MOVX A,@DPTR XRL A,#0x2 JZ $+5 LJMP ??ZDApp_ProcessOSALMsg_6 & 0xFFFF // 1056 { // 1057 // Process the network discovery scan results and choose a parent // 1058 // device to join/rejoin itself // 1059 networkDesc_t *pChosenNwk; // 1060 if ( ( (pChosenNwk = ZDApp_NwkDescListProcessing()) != NULL ) && (zdoDiscCounter > NUM_DISC_ATTEMPTS) ) ??ZDApp_ProcessOSALMsg_7: ; Setup parameters for call to function ZDApp_NwkDescListProcessing LCALL `??ZDApp_NwkDescListProcessing::?relay`; Banked call to: ZDApp_NwkDescListProcessing MOV ?V0,R2 MOV ?V1,R3 MOV R6,?V0 MOV R7,?V1 MOV A,R2 ORL A,R7 JNZ $+5 LJMP ??ZDApp_ProcessOSALMsg_8 & 0xFFFF MOV DPTR,#zdoDiscCounter MOVX A,@DPTR CLR C SUBB A,#0x3 JNC $+5 LJMP ??ZDApp_ProcessOSALMsg_8 & 0xFFFF // 1061 { // 1062 if ( devStartMode == MODE_JOIN ) MOV DPTR,#devStartMode MOVX A,@DPTR JNZ ??ZDApp_ProcessOSALMsg_9 // 1063 { // 1064 devState = DEV_NWK_JOINING; MOV DPTR,#devState MOV A,#0x3 MOVX @DPTR,A // 1065 // 1066 ZDApp_NodeProfileSync( pChosenNwk->stackProfile); ; Setup parameters for call to function ZDApp_NodeProfileSync MOV DPL,R2 MOV DPH,R3 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR MOVX A,@DPTR MOV R1,A LCALL `??ZDApp_NodeProfileSync::?relay`; Banked call to: ZDApp_NodeProfileSync // 1067 // 1068 if ( NLME_JoinRequest( pChosenNwk->extendedPANID, pChosenNwk->panId, // 1069 pChosenNwk->logicalChannel, // 1070 ZDO_Config_Node_Descriptor.CapabilityFlags, // 1071 pChosenNwk->chosenRouter, pChosenNwk->chosenRouterDepth ) != ZSuccess ) ; Setup parameters for call to function NLME_JoinRequest MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR MOVX A,@DPTR MOV ?V0,A MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_ONE CFI CFA_XSP16 add(XSP16, 12) MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR LCALL ?PUSH_XSTACK8_X_TWO CFI CFA_XSP16 add(XSP16, 14) MOV DPTR,#ZDO_Config_Node_Descriptor + 2 MOVX A,@DPTR MOV ?V0,A MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_ONE CFI CFA_XSP16 add(XSP16, 15) MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR MOVX A,@DPTR MOV R1,A MOV DPL,R6 MOV DPH,R7 MOVX A,@DPTR MOV R4,A INC DPTR MOVX A,@DPTR LCALL ?Subroutine35 & 0xFFFF // 1072 { // 1073 ZDApp_NetworkInit( (uint16)(NWK_START_DELAY // 1074 + ((uint16)(osal_rand()& EXTENDED_JOINING_RANDOM_MASK))) ); // 1075 } // 1076 } // if ( devStartMode == MODE_JOIN ) ??CrossCallReturnLabel_71: LCALL `??NLME_JoinRequest::?relay`; Banked call to: NLME_JoinRequest MOV A,#0x4 LCALL ?DEALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 11) SJMP ??ZDApp_ProcessOSALMsg_10 // 1077 else if ( devStartMode == MODE_REJOIN ) ??ZDApp_ProcessOSALMsg_9: XRL A,#0x3 JNZ ??CrossCallReturnLabel_33 // 1078 { // 1079 devState = DEV_NWK_REJOIN; MOV DPTR,#devState MOV A,#0x4 MOVX @DPTR,A // 1080 // 1081 // Before trying to do rejoin, check if the device has a valid short address // 1082 // If not, generate a random short address for itself // 1083 if ( _NIB.nwkDevAddress == INVALID_NODE_ADDR ) MOV DPTR,#_NIB + 20 MOVX A,@DPTR XRL A,#0xfe JNZ ??ZDApp_ProcessOSALMsg_11 INC DPTR MOVX A,@DPTR CPL A ??ZDApp_ProcessOSALMsg_11: JNZ ??ZDApp_ProcessOSALMsg_12 // 1084 { // 1085 _NIB.nwkDevAddress = osal_rand(); ; Setup parameters for call to function osal_rand LCALL `??osal_rand::?relay`; Banked call to: osal_rand MOV DPTR,#_NIB + 20 LCALL ??Subroutine60_0 & 0xFFFF // 1086 ZMacSetReq( ZMacShortAddress, (byte*)&_NIB.nwkDevAddress ); ??CrossCallReturnLabel_117: ; Setup parameters for call to function ZMacSetReq MOV R2,#(_NIB + 20) & 0xff MOV R3,#((_NIB + 20) >> 8) & 0xff MOV R1,#0x53 LCALL `??ZMacSetReq::?relay`; Banked call to: ZMacSetReq // 1087 } // 1088 // 1089 if ( ZG_SECURE_ENABLED ) // 1090 { // 1091 ZDApp_RestoreNwkKey(); // 1092 } // 1093 // 1094 // Check if the device has a valid PanID, if not, set it to the discovered Pan // 1095 if ( _NIB.nwkPanId == INVALID_PAN_ID ) ??ZDApp_ProcessOSALMsg_12: MOV DPTR,#_NIB + 33 MOVX A,@DPTR XRL A,#0xfe JNZ ??ZDApp_ProcessOSALMsg_13 INC DPTR MOVX A,@DPTR CPL A ??ZDApp_ProcessOSALMsg_13: JNZ ??ZDApp_ProcessOSALMsg_14 // 1096 { // 1097 _NIB.nwkPanId = pChosenNwk->panId; LCALL ?Subroutine18 & 0xFFFF ??CrossCallReturnLabel_85: MOV DPTR,#_NIB + 33 MOV A,R0 MOVX @DPTR,A INC DPTR MOV A,R1 MOVX @DPTR,A // 1098 ZMacSetReq( ZMacPanId, (byte*)&(_NIB.nwkPanId) ); ; Setup parameters for call to function ZMacSetReq MOV R2,#(_NIB + 33) & 0xff MOV R3,#((_NIB + 33) >> 8) & 0xff MOV R1,#0x50 LCALL `??ZMacSetReq::?relay`; Banked call to: ZMacSetReq // 1099 } // 1100 // 1101 tmp = true; ??ZDApp_ProcessOSALMsg_14: MOV DPL,?XSP + 0 MOV DPH,?XSP + 1 MOV A,#0x1 LCALL ?Subroutine13 & 0xFFFF // 1102 ZMacSetReq( ZMacRxOnIdle, &tmp ); // Set receiver always on during rejoin ??CrossCallReturnLabel_4: MOV R1,#0x52 LCALL `??ZMacSetReq::?relay`; Banked call to: ZMacSetReq // 1103 if ( NLME_ReJoinRequest( ZDO_UseExtendedPANID, pChosenNwk->logicalChannel) != ZSuccess ) ; Setup parameters for call to function NLME_ReJoinRequest MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR MOVX A,@DPTR MOV R1,A MOV R2,#ZDO_UseExtendedPANID & 0xff MOV R3,#(ZDO_UseExtendedPANID >> 8) & 0xff LCALL `??NLME_ReJoinRequest::?relay`; Banked call to: NLME_ReJoinRequest ??ZDApp_ProcessOSALMsg_10: MOV A,R1 JZ ??CrossCallReturnLabel_33 // 1104 { // 1105 ZDApp_NetworkInit( (uint16)(NWK_START_DELAY // 1106 + ((uint16)(osal_rand()& EXTENDED_JOINING_RANDOM_MASK))) ); ; Setup parameters for call to function osal_rand LCALL ?Subroutine27 & 0xFFFF // 1107 } // 1108 } // else if ( devStartMode == MODE_REJOIN ) // 1109 // 1110 if ( ZDO_Config_Node_Descriptor.CapabilityFlags & CAPINFO_RCVR_ON_IDLE ) ??CrossCallReturnLabel_33: MOV DPTR,#ZDO_Config_Node_Descriptor + 2 MOVX A,@DPTR MOV C,0xE0 /* A */.3 JNC ??ZDApp_ProcessOSALMsg_6 // 1111 { // 1112 // The receiver is on, turn network layer polling off. // 1113 NLME_SetPollRate( 0 ); ; Setup parameters for call to function NLME_SetPollRate LCALL ?Subroutine26 & 0xFFFF // 1114 NLME_SetQueuedPollRate( 0 ); // 1115 NLME_SetResponseRate( 0 ); // 1116 } // 1117 else // 1118 { // 1119 if ( (ZG_SECURE_ENABLED) && (devStartMode == MODE_JOIN) ) // 1120 { // 1121 ZDApp_SavedPollRate = zgPollRate; // 1122 NLME_SetPollRate( zgRejoinPollRate ); // 1123 } // 1124 } // 1125 } ??CrossCallReturnLabel_31: SJMP ??ZDApp_ProcessOSALMsg_6 // 1126 else // 1127 { // 1128 if ( continueJoining ) ??ZDApp_ProcessOSALMsg_8: MOV DPTR,#continueJoining MOVX A,@DPTR JZ ??ZDApp_ProcessOSALMsg_6 // 1129 { // 1130 #if defined ( MANAGED_SCAN ) // 1131 ZDApp_NetworkInit( MANAGEDSCAN_DELAY_BETWEEN_SCANS ); // 1132 #else // 1133 zdoDiscCounter++; MOV DPTR,#zdoDiscCounter MOVX A,@DPTR INC A MOVX @DPTR,A // 1134 ZDApp_NetworkInit( (uint16)(BEACON_REQUEST_DELAY // 1135 + ((uint16)(osal_rand()& BEACON_REQ_DELAY_MASK))) ); ; Setup parameters for call to function osal_rand LCALL `??osal_rand::?relay`; Banked call to: osal_rand ; Setup parameters for call to function ZDApp_NetworkInit MOV A,R2 ADD A,#0x64 MOV R2,A CLR A ADDC A,#0x0 MOV R3,A SJMP ??ZDApp_ProcessOSALMsg_15 // 1136 #endif // 1137 } // 1138 } // 1139 } // 1140 break; // 1141 // 1142 case ZDO_NWK_JOIN_IND: // 1143 if ( ZG_BUILD_JOINING_TYPE && ZG_DEVICE_JOINING_TYPE ) ??ZDApp_ProcessOSALMsg_1: MOV DPTR,#zgDeviceLogicalType MOVX A,@DPTR XRL A,#0x1 JZ ??ZDApp_ProcessOSALMsg_16 MOVX A,@DPTR XRL A,#0x2 JNZ ??ZDApp_ProcessOSALMsg_6 // 1144 { // 1145 ZDApp_ProcessNetworkJoin(); ??ZDApp_ProcessOSALMsg_16: ; Setup parameters for call to function ZDApp_ProcessNetworkJoin LCALL `??ZDApp_ProcessNetworkJoin::?relay`; Banked call to: ZDApp_ProcessNetworkJoin SJMP ??ZDApp_ProcessOSALMsg_6 // 1146 } // 1147 break; // 1148 // 1149 case ZDO_NWK_JOIN_REQ: // 1150 if ( ZG_BUILD_JOINING_TYPE && ZG_DEVICE_JOINING_TYPE ) ??ZDApp_ProcessOSALMsg_2: MOV DPTR,#zgDeviceLogicalType MOVX A,@DPTR XRL A,#0x1 JZ ??ZDApp_ProcessOSALMsg_17 MOVX A,@DPTR XRL A,#0x2 JNZ ??ZDApp_ProcessOSALMsg_6 // 1151 { // 1152 retryCnt = 0; ??ZDApp_ProcessOSALMsg_17: MOV DPTR,#retryCnt CLR A MOVX @DPTR,A // 1153 devStartMode = MODE_RESUME; MOV DPTR,#devStartMode INC A MOVX @DPTR,A // 1154 _tmpRejoinState = true; MOV DPTR,#_tmpRejoinState LCALL ?Subroutine10 & 0xFFFF // 1155 osal_cpyExtAddr( ZDO_UseExtendedPANID, _NIB.extendedPANID ); // 1156 zgDefaultStartingScanDuration = BEACON_ORDER_60_MSEC; ??CrossCallReturnLabel_1: MOV DPTR,#zgDefaultStartingScanDuration MOV A,#0x2 MOVX @DPTR,A // 1157 ZDApp_NetworkInit( 0 ); ; Setup parameters for call to function ZDApp_NetworkInit MOV R2,#0x0 MOV R3,#0x0 ??ZDApp_ProcessOSALMsg_15: LCALL `??ZDApp_NetworkInit::?relay`; Banked call to: ZDApp_NetworkInit // 1158 } // 1159 break; // 1160 // 1161 default: // 1162 if ( ZG_SECURE_ENABLED ) // 1163 ZDApp_ProcessSecMsg( msgPtr ); // 1164 break; // 1165 } // 1166 // 1167 } ??ZDApp_ProcessOSALMsg_6: MOV A,#0x1 LJMP ??Subroutine49_0 & 0xFFFF CFI EndBlock cfiBlock39 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine35: CFI Block cfiCond40 Using cfiCommon0 CFI Function ZDApp_ProcessOSALMsg CFI Conditional ??CrossCallReturnLabel_71 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 15) CFI Block cfiCond41 Using cfiCommon0 CFI (cfiCond41) Function ZDO_beaconNotifyIndCB CFI (cfiCond41) Conditional ??CrossCallReturnLabel_72 CFI (cfiCond41) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond41) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond41) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond41) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond41) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond41) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond41) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond41) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond41) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond41) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond41) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond41) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond41) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond41) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond41) CFA_SP SP+-2 CFI (cfiCond41) CFA_XSP16 add(XSP16, 14) CFI Block cfiPicker42 Using cfiCommon1 CFI (cfiPicker42) NoFunction CFI (cfiPicker42) Picker MOV R5,A CFI EndBlock cfiCond40 CFI EndBlock cfiCond41 CFI EndBlock cfiPicker42 REQUIRE ??Subroutine47_0 ; // Fall through to label ??Subroutine47_0 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ??Subroutine47_0: CFI Block cfiCond43 Using cfiCommon0 CFI Function ZDO_beaconNotifyIndCB CFI Conditional ??CrossCallReturnLabel_70 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 14) CFI Block cfiCond44 Using cfiCommon0 CFI (cfiCond44) Function ZDApp_ProcessOSALMsg CFI (cfiCond44) Conditional ??CrossCallReturnLabel_71 CFI (cfiCond44) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond44) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond44) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond44) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond44) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond44) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond44) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond44) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond44) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond44) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond44) CFA_SP SP+-2 CFI (cfiCond44) CFA_XSP16 add(XSP16, 15) CFI Block cfiCond45 Using cfiCommon0 CFI (cfiCond45) Function ZDO_beaconNotifyIndCB CFI (cfiCond45) Conditional ??CrossCallReturnLabel_72 CFI (cfiCond45) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond45) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond45) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond45) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond45) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond45) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond45) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond45) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond45) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond45) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond45) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond45) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond45) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond45) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond45) CFA_SP SP+-2 CFI (cfiCond45) CFA_XSP16 add(XSP16, 14) CFI Block cfiPicker46 Using cfiCommon1 CFI (cfiPicker46) NoFunction CFI (cfiPicker46) Picker MOV A,R6 ADD A,#0xb MOV R2,A CLR A ADDC A,R7 MOV R3,A RET CFI EndBlock cfiCond43 CFI EndBlock cfiCond44 CFI EndBlock cfiCond45 CFI EndBlock cfiPicker46 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine10: CFI Block cfiCond47 Using cfiCommon0 CFI Function ZDApp_RestoreNetworkState CFI Conditional ??CrossCallReturnLabel_0 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 9) CFI Block cfiCond48 Using cfiCommon0 CFI (cfiCond48) Function ZDApp_ProcessOSALMsg CFI (cfiCond48) Conditional ??CrossCallReturnLabel_1 CFI (cfiCond48) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond48) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond48) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond48) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond48) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond48) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond48) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond48) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond48) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond48) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond48) CFA_SP SP+-2 CFI (cfiCond48) CFA_XSP16 add(XSP16, 11) CFI Block cfiPicker49 Using cfiCommon1 CFI (cfiPicker49) NoFunction CFI (cfiPicker49) Picker MOVX @DPTR,A ; Setup parameters for call to function sAddrExtCpy ; Setup parameters for call to function sAddrExtCpy MOV R4,#(_NIB + 53) & 0xff MOV R5,#((_NIB + 53) >> 8) & 0xff MOV R2,#ZDO_UseExtendedPANID & 0xff MOV R3,#(ZDO_UseExtendedPANID >> 8) & 0xff LCALL `??sAddrExtCpy::?relay`; Banked call to: sAddrExtCpy RET CFI EndBlock cfiCond47 CFI EndBlock cfiCond48 CFI EndBlock cfiPicker49 // 1168 // 1169 /********************************************************************* // 1170 * @fn ZDApp_ProcessMsgCBs() // 1171 * // 1172 * @brief Process response messages // 1173 * // 1174 * @param none // 1175 * // 1176 * @return none // 1177 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1178 void ZDApp_ProcessMsgCBs( zdoIncomingMsg_t *inMsg ) ZDApp_ProcessMsgCBs: CFI Block cfiBlock50 Using cfiCommon0 CFI Function ZDApp_ProcessMsgCBs CODE // 1179 { FUNCALL ZDApp_ProcessMsgCBs, ZDO_ParseAddrRsp LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 31, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 31, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessMsgCBs, ZDO_UpdateAddrManager LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 31, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 31, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessMsgCBs, osal_mem_free LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 31, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 31, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessMsgCBs, ZDO_ParseBindUnbindReq LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 31, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 31, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessMsgCBs, ZDO_ProcessBindUnbindReq LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 31, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 31, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 MOV A,#-0xa LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 10) ; Saved register size: 10 ; Auto size: 21 MOV A,#-0x15 LCALL ?ALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 31) MOV A,R2 MOV R6,A MOV A,R3 MOV R7,A // 1180 switch ( inMsg->clusterID ) LCALL ?Subroutine32 & 0xFFFF ??CrossCallReturnLabel_43: MOV ?V1,A MOV R0,#?V0 LCALL ?US_SWITCH_SPARSE `?_0`: DATA DATA16 DATA DATA16 DATA DATA16 DW 2 DATA DATA16 DATA DATA16 DATA DATA16 DW 33 DATA DATA16 DATA DATA16 DW 34 DATA DATA16 DATA DATA16 DATA DATA16 DW ??ZDApp_ProcessMsgCBs_0 DATA DATA16 DATA DATA16 DATA DATA16 DW 32768 DATA DATA16 DATA DATA16 DW 32769 DATA DATA16 DATA DATA16 DATA DATA16 DW ??ZDApp_ProcessMsgCBs_1 DATA DATA16 DATA DATA16 DATA DATA16 DW 0 DATA DATA16 DATA DATA16 DW ??ZDApp_ProcessMsgCBs_2 CODE // 1181 { // 1182 #if defined ( ZDO_NWKADDR_REQUEST ) || defined ( ZDO_IEEEADDR_REQUEST ) || defined ( REFLECTOR ) // 1183 case NWK_addr_rsp: // 1184 case IEEE_addr_rsp: // 1185 { // 1186 ZDO_NwkIEEEAddrResp_t *pAddrRsp; // 1187 pAddrRsp = ZDO_ParseAddrRsp( inMsg ); ??ZDApp_ProcessMsgCBs_1: ; Setup parameters for call to function ZDO_ParseAddrRsp LCALL `??ZDO_ParseAddrRsp::?relay`; Banked call to: ZDO_ParseAddrRsp MOV ?V0,R2 MOV ?V1,R3 MOV R7,?V1 // 1188 if ( pAddrRsp ) MOV A,R2 ORL A,R7 JZ ??ZDApp_ProcessMsgCBs_2 // 1189 { // 1190 if ( pAddrRsp->status == ZSuccess ) MOV DPL,R2 MOV DPH,R3 MOVX A,@DPTR JNZ ??ZDApp_ProcessMsgCBs_3 // 1191 { // 1192 ZDO_UpdateAddrManager( pAddrRsp->nwkAddr, pAddrRsp->extAddr ); ; Setup parameters for call to function ZDO_UpdateAddrManager MOV A,R2 ADD A,#0x3 MOV R4,A CLR A ADDC A,R7 MOV R5,A INC DPTR LCALL ?Subroutine38 & 0xFFFF // 1193 } ??CrossCallReturnLabel_52: LCALL `??ZDO_UpdateAddrManager::?relay`; Banked call to: ZDO_UpdateAddrManager // 1194 osal_mem_free( pAddrRsp ); ??ZDApp_ProcessMsgCBs_3: ; Setup parameters for call to function osal_mem_free MOV R2,?V0 MOV A,R7 MOV R3,A LCALL `??osal_mem_free::?relay`; Banked call to: osal_mem_free SJMP ??ZDApp_ProcessMsgCBs_2 // 1195 } // 1196 } // 1197 break; // 1198 #endif // 1199 // 1200 #if defined ( REFLECTOR ) // 1201 case Bind_req: // 1202 case Unbind_req: // 1203 { // 1204 ZDO_BindUnbindReq_t bindReq; // 1205 ZDO_ParseBindUnbindReq( inMsg, &bindReq ); ??ZDApp_ProcessMsgCBs_0: ; Setup parameters for call to function ZDO_ParseBindUnbindReq MOV R4,?XSP + 0 MOV R5,?XSP + 1 LCALL `??ZDO_ParseBindUnbindReq::?relay`; Banked call to: ZDO_ParseBindUnbindReq // 1206 ZDO_ProcessBindUnbindReq( inMsg, &bindReq ); ; Setup parameters for call to function ZDO_ProcessBindUnbindReq MOV R4,?XSP + 0 MOV R5,?XSP + 1 MOV A,R6 MOV R2,A MOV A,R7 MOV R3,A LCALL `??ZDO_ProcessBindUnbindReq::?relay`; Banked call to: ZDO_ProcessBindUnbindReq // 1207 } // 1208 break; // 1209 #endif // 1210 // 1211 #if ( ZG_BUILD_COORDINATOR_TYPE ) // 1212 case Bind_rsp: // 1213 case Unbind_rsp: // 1214 if (ZG_DEVICE_COORDINATOR_TYPE && matchED) // 1215 { // 1216 ZDMatchSendState( // 1217 (uint8)((inMsg->clusterID == Bind_rsp) ? ZDMATCH_REASON_BIND_RSP : ZDMATCH_REASON_UNBIND_RSP), // 1218 ZDO_ParseBindRsp(inMsg), inMsg->TransSeq ); // 1219 } // 1220 break; // 1221 // 1222 case End_Device_Bind_req: // 1223 if (ZG_DEVICE_COORDINATOR_TYPE) // 1224 { // 1225 ZDEndDeviceBind_t bindReq; // 1226 ZDO_ParseEndDeviceBindReq( inMsg, &bindReq ); // 1227 ZDO_MatchEndDeviceBind( &bindReq ); // 1228 // 1229 // Freeing the cluster lists - if allocated. // 1230 if ( bindReq.numInClusters ) // 1231 osal_mem_free( bindReq.inClusters ); // 1232 if ( bindReq.numOutClusters ) // 1233 osal_mem_free( bindReq.outClusters ); // 1234 } // 1235 break; // 1236 #endif // 1237 } // 1238 } ??ZDApp_ProcessMsgCBs_2: CFI EndBlock cfiBlock50 REQUIRE ?Subroutine8 ; // Fall through to label ?Subroutine8 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine8: CFI Block cfiBlock51 Using cfiCommon0 CFI NoFunction CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 31) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) MOV A,#0x15 LJMP ??Subroutine49_0 & 0xFFFF CFI EndBlock cfiBlock51 // 1239 // 1240 /********************************************************************* // 1241 * @fn ZDApp_RegisterCBs() // 1242 * // 1243 * @brief Process response messages // 1244 * // 1245 * @param none // 1246 * // 1247 * @return none // 1248 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1249 void ZDApp_RegisterCBs( void ) ZDApp_RegisterCBs: CFI Block cfiBlock52 Using cfiCommon0 CFI Function ZDApp_RegisterCBs CODE // 1250 { FUNCALL ZDApp_RegisterCBs, ZDO_RegisterForZDOMsg LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_RegisterCBs, ZDO_RegisterForZDOMsg LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_RegisterCBs, ZDO_RegisterForZDOMsg LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_RegisterCBs, ZDO_RegisterForZDOMsg LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC PUSH DPL CFI DPL0 Frame(CFA_SP, 4) CFI CFA_SP SP+-4 PUSH DPH CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-5 ; Saved register size: 2 ; Auto size: 0 // 1251 #if defined ( ZDO_IEEEADDR_REQUEST ) || defined ( REFLECTOR ) // 1252 ZDO_RegisterForZDOMsg( ZDAppTaskID, IEEE_addr_rsp ); ; Setup parameters for call to function ZDO_RegisterForZDOMsg MOV R2,#0x1 LCALL ?Subroutine23 & 0xFFFF // 1253 #endif // 1254 #if defined ( ZDO_NWKADDR_REQUEST ) || defined ( REFLECTOR ) // 1255 ZDO_RegisterForZDOMsg( ZDAppTaskID, NWK_addr_rsp ); ??CrossCallReturnLabel_73: ; Setup parameters for call to function ZDO_RegisterForZDOMsg MOV R2,#0x0 LCALL ?Subroutine23 & 0xFFFF // 1256 #endif // 1257 #if ZG_BUILD_COORDINATOR_TYPE // 1258 ZDO_RegisterForZDOMsg( ZDAppTaskID, Bind_rsp ); // 1259 ZDO_RegisterForZDOMsg( ZDAppTaskID, Unbind_rsp ); // 1260 ZDO_RegisterForZDOMsg( ZDAppTaskID, End_Device_Bind_req ); // 1261 #endif // 1262 #if defined ( REFLECTOR ) // 1263 ZDO_RegisterForZDOMsg( ZDAppTaskID, Bind_req ); ??CrossCallReturnLabel_74: ; Setup parameters for call to function ZDO_RegisterForZDOMsg MOV R2,#0x21 MOV R3,#0x0 LCALL ??Subroutine48_0 & 0xFFFF // 1264 ZDO_RegisterForZDOMsg( ZDAppTaskID, Unbind_req ); ??CrossCallReturnLabel_75: ; Setup parameters for call to function ZDO_RegisterForZDOMsg MOV R2,#0x22 MOV R3,#0x0 LCALL ??Subroutine48_0 & 0xFFFF // 1265 #endif // 1266 } ??CrossCallReturnLabel_76: LJMP ?Subroutine3 & 0xFFFF CFI EndBlock cfiBlock52 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine23: CFI Block cfiCond53 Using cfiCommon0 CFI Function ZDApp_RegisterCBs CFI Conditional ??CrossCallReturnLabel_73 CFI DPL0 Frame(CFA_SP, 4) CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-7 CFI Block cfiCond54 Using cfiCommon0 CFI (cfiCond54) Function ZDApp_RegisterCBs CFI (cfiCond54) Conditional ??CrossCallReturnLabel_74 CFI (cfiCond54) DPL0 Frame(CFA_SP, 4) CFI (cfiCond54) DPH0 Frame(CFA_SP, 5) CFI (cfiCond54) CFA_SP SP+-7 CFI Block cfiPicker55 Using cfiCommon1 CFI (cfiPicker55) NoFunction CFI (cfiPicker55) Picker MOV R3,#-0x80 CFI EndBlock cfiCond53 CFI EndBlock cfiCond54 CFI EndBlock cfiPicker55 REQUIRE ??Subroutine48_0 ; // Fall through to label ??Subroutine48_0 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ??Subroutine48_0: CFI Block cfiCond56 Using cfiCommon0 CFI Function ZDApp_RegisterCBs CFI Conditional ??CrossCallReturnLabel_75 CFI DPL0 Frame(CFA_SP, 4) CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-7 CFI Block cfiCond57 Using cfiCommon0 CFI (cfiCond57) Function ZDApp_RegisterCBs CFI (cfiCond57) Conditional ??CrossCallReturnLabel_76 CFI (cfiCond57) DPL0 Frame(CFA_SP, 4) CFI (cfiCond57) DPH0 Frame(CFA_SP, 5) CFI (cfiCond57) CFA_SP SP+-7 CFI Block cfiCond58 Using cfiCommon0 CFI (cfiCond58) Function ZDApp_RegisterCBs CFI (cfiCond58) Conditional ??CrossCallReturnLabel_73 CFI (cfiCond58) DPL0 Frame(CFA_SP, 4) CFI (cfiCond58) DPH0 Frame(CFA_SP, 5) CFI (cfiCond58) CFA_SP SP+-7 CFI Block cfiCond59 Using cfiCommon0 CFI (cfiCond59) Function ZDApp_RegisterCBs CFI (cfiCond59) Conditional ??CrossCallReturnLabel_74 CFI (cfiCond59) DPL0 Frame(CFA_SP, 4) CFI (cfiCond59) DPH0 Frame(CFA_SP, 5) CFI (cfiCond59) CFA_SP SP+-7 CFI Block cfiPicker60 Using cfiCommon1 CFI (cfiPicker60) NoFunction CFI (cfiPicker60) Picker MOV DPTR,#ZDAppTaskID MOVX A,@DPTR MOV R1,A LCALL `??ZDO_RegisterForZDOMsg::?relay`; Banked call to: ZDO_RegisterForZDOMsg RET CFI EndBlock cfiCond56 CFI EndBlock cfiCond57 CFI EndBlock cfiCond58 CFI EndBlock cfiCond59 CFI EndBlock cfiPicker60 // 1267 // 1268 /********************************************************************* // 1269 * @fn ZDApp_ProcessSecMsg() // 1270 * // 1271 * @brief Process the incoming security message. // 1272 * // 1273 * @param msgPtr - message to process // 1274 * // 1275 * @return none // 1276 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1277 void ZDApp_ProcessSecMsg( osal_event_hdr_t *msgPtr ) ZDApp_ProcessSecMsg: CFI Block cfiBlock61 Using cfiCommon0 CFI Function ZDApp_ProcessSecMsg CODE // 1278 { FUNCALL ZDApp_ProcessSecMsg, ZDSecMgrTransportKeyInd LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessSecMsg, ZDSecMgrRemoveDeviceInd LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessSecMsg, ZDSecMgrSwitchKeyInd LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC PUSH DPL CFI DPL0 Frame(CFA_SP, 4) CFI CFA_SP SP+-4 PUSH DPH CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-5 ; Saved register size: 2 ; Auto size: 0 // 1279 switch ( msgPtr->event ) MOV DPL,R2 MOV DPH,R3 MOVX A,@DPTR ADD A,#-0x6 JZ ??ZDApp_ProcessSecMsg_0 ADD A,#-0x2 JZ ??ZDApp_ProcessSecMsg_1 ADD A,#-0x2 JZ ??ZDApp_ProcessSecMsg_2 SJMP ??ZDApp_ProcessSecMsg_3 // 1280 { // 1281 case ZDO_ESTABLISH_KEY_CFM: // 1282 if ( ZG_CHECK_SECURITY_MODE == ZG_SECURITY_PRO_HIGH ) // 1283 { // 1284 ZDSecMgrEstablishKeyCfm( (ZDO_EstablishKeyCfm_t*)msgPtr ); // 1285 } // 1286 break; // 1287 // 1288 case ZDO_ESTABLISH_KEY_IND: // 1289 if ( ZG_CHECK_SECURITY_MODE == ZG_SECURITY_PRO_HIGH ) // 1290 { // 1291 if ( ZG_BUILD_JOINING_TYPE && ZG_DEVICE_JOINING_TYPE ) // 1292 { // 1293 ZDSecMgrEstablishKeyInd( (ZDO_EstablishKeyInd_t*)msgPtr ); // 1294 } // 1295 } // 1296 break; // 1297 // 1298 case ZDO_TRANSPORT_KEY_IND: // 1299 if ( ZG_BUILD_JOINING_TYPE && ZG_DEVICE_JOINING_TYPE ) ??ZDApp_ProcessSecMsg_0: MOV DPTR,#zgDeviceLogicalType MOVX A,@DPTR XRL A,#0x1 JZ ??ZDApp_ProcessSecMsg_4 MOVX A,@DPTR XRL A,#0x2 JNZ ??ZDApp_ProcessSecMsg_3 // 1300 { // 1301 ZDSecMgrTransportKeyInd( (ZDO_TransportKeyInd_t*)msgPtr ); ??ZDApp_ProcessSecMsg_4: ; Setup parameters for call to function ZDSecMgrTransportKeyInd LCALL `??ZDSecMgrTransportKeyInd::?relay`; Banked call to: ZDSecMgrTransportKeyInd SJMP ??ZDApp_ProcessSecMsg_3 // 1302 } // 1303 break; // 1304 // 1305 case ZDO_UPDATE_DEVICE_IND: // 1306 if ( ZG_BUILD_COORDINATOR_TYPE && ZG_DEVICE_COORDINATOR_TYPE ) // 1307 { // 1308 ZDSecMgrUpdateDeviceInd( (ZDO_UpdateDeviceInd_t*)msgPtr ); // 1309 } // 1310 break; // 1311 // 1312 case ZDO_REMOVE_DEVICE_IND: // 1313 if ( ZG_BUILD_RTRONLY_TYPE && ( zgDeviceLogicalType == ZG_DEVICETYPE_ROUTER ) ) ??ZDApp_ProcessSecMsg_1: MOV DPTR,#zgDeviceLogicalType MOVX A,@DPTR XRL A,#0x1 JNZ ??ZDApp_ProcessSecMsg_3 // 1314 { // 1315 ZDSecMgrRemoveDeviceInd( (ZDO_RemoveDeviceInd_t*)msgPtr ); ; Setup parameters for call to function ZDSecMgrRemoveDeviceInd LCALL `??ZDSecMgrRemoveDeviceInd::?relay`; Banked call to: ZDSecMgrRemoveDeviceInd SJMP ??ZDApp_ProcessSecMsg_3 // 1316 } // 1317 break; // 1318 // 1319 case ZDO_REQUEST_KEY_IND: // 1320 if (( ZG_CHECK_SECURITY_MODE == ZG_SECURITY_PRO_HIGH ) || // 1321 ( ZG_CHECK_SECURITY_MODE == ZG_SECURITY_SE_STANDARD )) // 1322 { // 1323 if ( ZG_BUILD_COORDINATOR_TYPE && ZG_DEVICE_COORDINATOR_TYPE ) // 1324 { // 1325 ZDSecMgrRequestKeyInd( (ZDO_RequestKeyInd_t*)msgPtr ); // 1326 } // 1327 } // 1328 break; // 1329 // 1330 case ZDO_SWITCH_KEY_IND: // 1331 if ( ZG_BUILD_JOINING_TYPE && ZG_DEVICE_JOINING_TYPE ) ??ZDApp_ProcessSecMsg_2: MOV DPTR,#zgDeviceLogicalType MOVX A,@DPTR XRL A,#0x1 JZ ??ZDApp_ProcessSecMsg_5 MOVX A,@DPTR XRL A,#0x2 JNZ ??ZDApp_ProcessSecMsg_3 // 1332 { // 1333 ZDSecMgrSwitchKeyInd( (ZDO_SwitchKeyInd_t*)msgPtr ); ??ZDApp_ProcessSecMsg_5: ; Setup parameters for call to function ZDSecMgrSwitchKeyInd LCALL `??ZDSecMgrSwitchKeyInd::?relay`; Banked call to: ZDSecMgrSwitchKeyInd // 1334 } // 1335 break; // 1336 // 1337 case ZDO_AUTHENTICATE_IND: // 1338 if ( ZG_CHECK_SECURITY_MODE == ZG_SECURITY_PRO_HIGH ) // 1339 { // 1340 ZDSecMgrAuthenticateInd( (ZDO_AuthenticateInd_t*)msgPtr ); // 1341 } // 1342 break; // 1343 // 1344 case ZDO_AUTHENTICATE_CFM: // 1345 if ( ZG_CHECK_SECURITY_MODE == ZG_SECURITY_PRO_HIGH ) // 1346 { // 1347 ZDSecMgrAuthenticateCfm( (ZDO_AuthenticateCfm_t*)msgPtr ); // 1348 } // 1349 break; // 1350 // 1351 default: // 1352 // Unsupported messages // 1353 break; // 1354 } // 1355 } ??ZDApp_ProcessSecMsg_3: LJMP ?Subroutine3 & 0xFFFF CFI EndBlock cfiBlock61 // 1356 // 1357 /********************************************************************* // 1358 * @fn ZDApp_ProcessNetworkJoin() // 1359 * // 1360 * @brief // 1361 * // 1362 * Save off the Network key information. // 1363 * // 1364 * @param none // 1365 * // 1366 * @return none // 1367 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1368 void ZDApp_ProcessNetworkJoin( void ) ZDApp_ProcessNetworkJoin: CFI Block cfiBlock62 Using cfiCommon0 CFI Function ZDApp_ProcessNetworkJoin CODE // 1369 { FUNCALL ZDApp_ProcessNetworkJoin, osal_set_event LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, ZDApp_AnnounceNewAddress LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, NLME_StartRouterRequest LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, NLME_GetShortAddr LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, ZMacSetReq LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, nwkNeighborInitTable LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, NLME_NwkDiscTerm LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, osal_rand LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, ZDApp_NetworkInit LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, osal_set_event LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, NLME_SetPollRate LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, NLME_SetQueuedPollRate LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, NLME_SetResponseRate LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, NLME_StartRouterRequest LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, ZDApp_AnnounceNewAddress LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, nwkNeighborInitTable LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, NLME_NwkDiscTerm LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, osal_rand LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, ZDApp_NetworkInit LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, ZDApp_AnnounceNewAddress LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ProcessNetworkJoin, osal_set_event LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 MOV A,#-0xa LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 10) ; Saved register size: 10 ; Auto size: 2 MOV A,#-0x2 LCALL ?ALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 12) // 1370 if ( (devState == DEV_NWK_JOINING) || // 1371 ((devState == DEV_NWK_ORPHAN) && // 1372 (ZDO_Config_Node_Descriptor.LogicalType == NODETYPE_ROUTER)) ) MOV DPTR,#devState MOVX A,@DPTR XRL A,#0x3 JZ ??ZDApp_ProcessNetworkJoin_0 MOVX A,@DPTR XRL A,#0xa JZ $+5 LJMP ??ZDApp_ProcessNetworkJoin_1 & 0xFFFF MOV DPTR,#ZDO_Config_Node_Descriptor MOVX A,@DPTR ANL A,#0x7 XRL A,#0x1 JZ $+5 LJMP ??ZDApp_ProcessNetworkJoin_2 & 0xFFFF // 1373 { // 1374 // Result of a Join attempt by this device. // 1375 if ( nwkStatus == ZSuccess ) ??ZDApp_ProcessNetworkJoin_0: MOV DPTR,#nwkStatus MOVX A,@DPTR JNZ ??ZDApp_ProcessNetworkJoin_3 // 1376 { // 1377 osal_set_event( ZDAppTaskID, ZDO_STATE_CHANGE_EVT ); ; Setup parameters for call to function osal_set_event LCALL ?Subroutine17 & 0xFFFF // 1378 // 1379 #if defined ( POWER_SAVING ) // 1380 osal_pwrmgr_device( PWRMGR_BATTERY ); // 1381 #endif // 1382 // 1383 if ( ZG_SECURE_ENABLED && ( ZDApp_RestoreNwkKey() == false ) ) // 1384 { // 1385 // wait for auth from trust center!! // 1386 devState = DEV_END_DEVICE_UNAUTH; // 1387 // 1388 // Start the reset timer for MAX UNAUTH time // 1389 ZDApp_ResetTimerStart( 10000 );//MAX_DEVICE_UNAUTH_TIMEOUT ); // 1390 } // 1391 else // 1392 { // 1393 if ( ZSTACK_ROUTER_BUILD ) // 1394 { // 1395 if ( devState == DEV_NWK_ORPHAN // 1396 && ZDO_Config_Node_Descriptor.LogicalType != NODETYPE_DEVICE ) ??CrossCallReturnLabel_61: MOV DPTR,#devState MOVX A,@DPTR XRL A,#0xa JNZ ??ZDApp_ProcessNetworkJoin_4 LCALL ?Subroutine21 & 0xFFFF ??CrossCallReturnLabel_21: JZ ??ZDApp_ProcessNetworkJoin_5 // 1397 { // 1398 // Change NIB state to router for restore // 1399 _NIB.nwkState = NWK_ROUTER; MOV DPTR,#_NIB + 35 MOV A,#0x8 MOVX @DPTR,A SJMP ??ZDApp_ProcessNetworkJoin_5 // 1400 } // 1401 } // 1402 // 1403 if ( devState == DEV_NWK_JOINING ) ??ZDApp_ProcessNetworkJoin_4: MOVX A,@DPTR XRL A,#0x3 JNZ ??ZDApp_ProcessNetworkJoin_5 // 1404 { // 1405 ZDApp_AnnounceNewAddress(); ; Setup parameters for call to function ZDApp_AnnounceNewAddress LCALL `??ZDApp_AnnounceNewAddress::?relay`; Banked call to: ZDApp_AnnounceNewAddress // 1406 } // 1407 // 1408 devState = DEV_END_DEVICE; ??ZDApp_ProcessNetworkJoin_5: MOV DPTR,#devState MOV A,#0x6 MOVX @DPTR,A // 1409 if ( ZSTACK_ROUTER_BUILD ) // 1410 { // 1411 // NOTE: first two parameters are not used, see NLMEDE.h for details // 1412 if ( ZDO_Config_Node_Descriptor.LogicalType != NODETYPE_DEVICE ) LCALL ?Subroutine21 & 0xFFFF ??CrossCallReturnLabel_22: JNZ $+5 LJMP ??CrossCallReturnLabel_62 & 0xFFFF // 1413 { // 1414 NLME_StartRouterRequest( 0, 0, false ); ; Setup parameters for call to function NLME_StartRouterRequest MOV R3,#0x0 MOV R2,#0x0 MOV R1,#0x0 LCALL `??NLME_StartRouterRequest::?relay`; Banked call to: NLME_StartRouterRequest LJMP ??CrossCallReturnLabel_62 & 0xFFFF // 1415 } // 1416 } // 1417 } // 1418 } // 1419 else // 1420 { // 1421 if ( (devStartMode == MODE_RESUME) && (++retryCnt >= MAX_RESUME_RETRY) ) ??ZDApp_ProcessNetworkJoin_3: MOV DPTR,#devStartMode MOVX A,@DPTR XRL A,#0x1 JNZ ??ZDApp_ProcessNetworkJoin_6 MOV DPTR,#retryCnt MOVX A,@DPTR INC A MOVX @DPTR,A CLR C SUBB A,#0x3 JC ??ZDApp_ProcessNetworkJoin_6 // 1422 { // 1423 if ( _NIB.nwkPanId == 0xFFFF || _NIB.nwkPanId == INVALID_PAN_ID ) MOV DPTR,#_NIB + 33 MOVX A,@DPTR CPL A JNZ ??ZDApp_ProcessNetworkJoin_7 INC DPTR MOVX A,@DPTR CPL A ??ZDApp_ProcessNetworkJoin_7: JZ ??ZDApp_ProcessNetworkJoin_8 MOV DPTR,#_NIB + 33 MOVX A,@DPTR XRL A,#0xfe JNZ ??ZDApp_ProcessNetworkJoin_9 INC DPTR MOVX A,@DPTR CPL A ??ZDApp_ProcessNetworkJoin_9: JNZ ??ZDApp_ProcessNetworkJoin_10 // 1424 devStartMode = MODE_JOIN; ??ZDApp_ProcessNetworkJoin_8: MOV DPTR,#devStartMode CLR A SJMP ??ZDApp_ProcessNetworkJoin_11 // 1425 else // 1426 { // 1427 devStartMode = MODE_REJOIN; ??ZDApp_ProcessNetworkJoin_10: MOV DPTR,#devStartMode MOV A,#0x3 MOVX @DPTR,A // 1428 _tmpRejoinState = true; MOV DPTR,#_tmpRejoinState MOV A,#0x1 ??ZDApp_ProcessNetworkJoin_11: MOVX @DPTR,A // 1429 } // 1430 } // 1431 // 1432 if ( (NLME_GetShortAddr() != INVALID_NODE_ADDR) || // 1433 (_NIB.nwkDevAddress != INVALID_NODE_ADDR) ) ??ZDApp_ProcessNetworkJoin_6: ; Setup parameters for call to function NLME_GetShortAddr LCALL `??NLME_GetShortAddr::?relay`; Banked call to: NLME_GetShortAddr MOV A,#-0x2 XRL A,R2 JNZ ??ZDApp_ProcessNetworkJoin_12 MOV A,#-0x1 XRL A,R3 ??ZDApp_ProcessNetworkJoin_12: JNZ ??ZDApp_ProcessNetworkJoin_13 MOV DPTR,#_NIB + 20 MOVX A,@DPTR XRL A,#0xfe JNZ ??ZDApp_ProcessNetworkJoin_14 INC DPTR MOVX A,@DPTR CPL A ??ZDApp_ProcessNetworkJoin_14: JZ ??ZDApp_ProcessNetworkJoin_15 // 1434 { // 1435 uint16 addr = INVALID_NODE_ADDR; ??ZDApp_ProcessNetworkJoin_13: MOV DPL,?XSP + 0 MOV DPH,?XSP + 1 MOV A,#-0x2 MOVX @DPTR,A INC DPTR INC A MOVX @DPTR,A // 1436 // Invalidate nwk addr so end device does not use in its data reqs. // 1437 _NIB.nwkDevAddress = INVALID_NODE_ADDR; MOV DPTR,#_NIB + 20 DEC A MOVX @DPTR,A INC DPTR INC A LCALL ?Subroutine13 & 0xFFFF // 1438 ZMacSetReq( ZMacShortAddress, (uint8 *)&addr ); // 1439 } ??CrossCallReturnLabel_5: MOV R1,#0x53 LCALL `??ZMacSetReq::?relay`; Banked call to: ZMacSetReq // 1440 // 1441 // Clear the neighbor Table and network discovery tables. // 1442 nwkNeighborInitTable(); ??ZDApp_ProcessNetworkJoin_15: ; Setup parameters for call to function nwkNeighborInitTable LCALL `??nwkNeighborInitTable::?relay`; Banked call to: nwkNeighborInitTable // 1443 NLME_NwkDiscTerm(); ; Setup parameters for call to function NLME_NwkDiscTerm LCALL `??NLME_NwkDiscTerm::?relay`; Banked call to: NLME_NwkDiscTerm // 1444 // 1445 zdoDiscCounter = 1; MOV DPTR,#zdoDiscCounter MOV A,#0x1 MOVX @DPTR,A // 1446 // 1447 // ZDApp_NetworkInit( (uint16) // 1448 // ((NWK_START_DELAY * (osal_rand() & 0x0F)) + // 1449 // (NWK_START_DELAY * 5)) ); // 1450 ZDApp_NetworkInit( (uint16)(NWK_START_DELAY // 1451 + ((uint16)(osal_rand()& EXTENDED_JOINING_RANDOM_MASK))) ); ; Setup parameters for call to function osal_rand SJMP ??ZDApp_ProcessNetworkJoin_16 // 1452 } // 1453 } // 1454 else if ( devState == DEV_NWK_ORPHAN || devState == DEV_NWK_REJOIN ) ??ZDApp_ProcessNetworkJoin_1: MOVX A,@DPTR XRL A,#0x4 JNZ ??ZDApp_ProcessNetworkJoin_17 // 1455 { // 1456 // results of an orphaning attempt by this device // 1457 if (nwkStatus == ZSuccess) ??ZDApp_ProcessNetworkJoin_2: MOV DPTR,#nwkStatus MOVX A,@DPTR JNZ ??ZDApp_ProcessNetworkJoin_18 // 1458 { // 1459 if ( ZG_SECURE_ENABLED ) // 1460 { // 1461 ZDApp_RestoreNwkKey(); // 1462 } // 1463 // 1464 devState = DEV_END_DEVICE; LCALL ?Subroutine9 & 0xFFFF // 1465 osal_set_event( ZDAppTaskID, ZDO_STATE_CHANGE_EVT ); // 1466 // setup Power Manager Device // 1467 #if defined ( POWER_SAVING ) // 1468 osal_pwrmgr_device( PWRMGR_BATTERY ); // 1469 #endif // 1470 // 1471 if ( ZDO_Config_Node_Descriptor.CapabilityFlags & CAPINFO_RCVR_ON_IDLE ) ??CrossCallReturnLabel_68: MOV DPTR,#ZDO_Config_Node_Descriptor + 2 MOVX A,@DPTR MOV C,0xE0 /* A */.3 JNC ??CrossCallReturnLabel_32 // 1472 { // 1473 // The receiver is on, turn network layer polling off. // 1474 NLME_SetPollRate( 0 ); ; Setup parameters for call to function NLME_SetPollRate LCALL ?Subroutine26 & 0xFFFF // 1475 NLME_SetQueuedPollRate( 0 ); // 1476 NLME_SetResponseRate( 0 ); // 1477 } // 1478 // 1479 if ( ZSTACK_ROUTER_BUILD ) // 1480 { // 1481 // NOTE: first two parameters are not used, see NLMEDE.h for details // 1482 if ( ZDO_Config_Node_Descriptor.LogicalType != NODETYPE_DEVICE ) ??CrossCallReturnLabel_32: LCALL ?Subroutine21 & 0xFFFF ??CrossCallReturnLabel_23: JZ ??ZDApp_ProcessNetworkJoin_19 // 1483 { // 1484 NLME_StartRouterRequest( 0, 0, false ); ; Setup parameters for call to function NLME_StartRouterRequest MOV R3,#0x0 MOV R2,#0x0 MOV R1,#0x0 LCALL `??NLME_StartRouterRequest::?relay`; Banked call to: NLME_StartRouterRequest // 1485 } // 1486 } // 1487 // 1488 ZDApp_AnnounceNewAddress(); ??ZDApp_ProcessNetworkJoin_19: ; Setup parameters for call to function ZDApp_AnnounceNewAddress LCALL `??ZDApp_AnnounceNewAddress::?relay`; Banked call to: ZDApp_AnnounceNewAddress SJMP ??CrossCallReturnLabel_62 // 1489 } // 1490 else // 1491 { // 1492 if ( devStartMode == MODE_RESUME ) ??ZDApp_ProcessNetworkJoin_18: MOV DPTR,#devStartMode MOVX A,@DPTR XRL A,#0x1 JNZ ??ZDApp_ProcessNetworkJoin_20 // 1493 { // 1494 if ( ++retryCnt <= MAX_RESUME_RETRY ) MOV DPTR,#retryCnt MOVX A,@DPTR INC A MOVX @DPTR,A CLR C SUBB A,#0x4 JNC ??ZDApp_ProcessNetworkJoin_21 // 1495 { // 1496 if ( _NIB.nwkPanId == 0xFFFF || _NIB.nwkPanId == INVALID_PAN_ID ) MOV DPTR,#_NIB + 33 MOVX A,@DPTR CPL A JNZ ??ZDApp_ProcessNetworkJoin_22 INC DPTR MOVX A,@DPTR CPL A ??ZDApp_ProcessNetworkJoin_22: JZ ??ZDApp_ProcessNetworkJoin_23 MOV DPTR,#_NIB + 33 MOVX A,@DPTR XRL A,#0xfe JNZ ??ZDApp_ProcessNetworkJoin_24 INC DPTR MOVX A,@DPTR CPL A ??ZDApp_ProcessNetworkJoin_24: JZ ??ZDApp_ProcessNetworkJoin_23 // 1497 devStartMode = MODE_JOIN; // 1498 else // 1499 { // 1500 devStartMode = MODE_REJOIN; MOV DPTR,#devStartMode MOV A,#0x3 MOVX @DPTR,A // 1501 _tmpRejoinState = true; MOV DPTR,#_tmpRejoinState MOV A,#0x1 SJMP ??ZDApp_ProcessNetworkJoin_25 // 1502 } // 1503 } // 1504 // Do a normal join to the network after certain times of rejoin retries // 1505 else if( AIB_apsUseInsecureJoin == true ) ??ZDApp_ProcessNetworkJoin_21: MOV DPTR,#AIB_apsUseInsecureJoin MOVX A,@DPTR XRL A,#0x1 JNZ ??ZDApp_ProcessNetworkJoin_20 // 1506 { // 1507 devStartMode = MODE_JOIN; ??ZDApp_ProcessNetworkJoin_23: MOV DPTR,#devStartMode CLR A ??ZDApp_ProcessNetworkJoin_25: MOVX @DPTR,A // 1508 } // 1509 } // 1510 // 1511 // Clear the neighbor Table and network discovery tables. // 1512 nwkNeighborInitTable(); ??ZDApp_ProcessNetworkJoin_20: ; Setup parameters for call to function nwkNeighborInitTable LCALL `??nwkNeighborInitTable::?relay`; Banked call to: nwkNeighborInitTable // 1513 NLME_NwkDiscTerm(); ; Setup parameters for call to function NLME_NwkDiscTerm LCALL `??NLME_NwkDiscTerm::?relay`; Banked call to: NLME_NwkDiscTerm // 1514 // 1515 // setup a retry for later... // 1516 ZDApp_NetworkInit( (uint16)(NWK_START_DELAY // 1517 + (osal_rand()& EXTENDED_JOINING_RANDOM_MASK)) ); ; Setup parameters for call to function osal_rand // 1518 } // 1519 } ??ZDApp_ProcessNetworkJoin_16: LCALL ?Subroutine27 & 0xFFFF ??CrossCallReturnLabel_34: SJMP ??CrossCallReturnLabel_62 // 1520 #if defined ( ZIGBEE_STOCHASTIC_ADDRESSING ) // 1521 else // 1522 { // 1523 // Assume from address conflict // 1524 if ( _NIB.nwkAddrAlloc == NWK_ADDRESSING_STOCHASTIC ) ??ZDApp_ProcessNetworkJoin_17: MOV DPTR,#_NIB + 96 MOVX A,@DPTR XRL A,#0x2 JNZ ??CrossCallReturnLabel_62 // 1525 { // 1526 // Notify the network // 1527 ZDApp_AnnounceNewAddress(); ; Setup parameters for call to function ZDApp_AnnounceNewAddress LCALL `??ZDApp_AnnounceNewAddress::?relay`; Banked call to: ZDApp_AnnounceNewAddress // 1528 // 1529 // Notify apps // 1530 osal_set_event( ZDAppTaskID, ZDO_STATE_CHANGE_EVT ); ; Setup parameters for call to function osal_set_event LCALL ?Subroutine17 & 0xFFFF // 1531 } // 1532 } // 1533 #endif // 1534 } ??CrossCallReturnLabel_62: LJMP ?Subroutine7 & 0xFFFF CFI EndBlock cfiBlock62 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine27: CFI Block cfiCond63 Using cfiCommon0 CFI Function ZDApp_ProcessOSALMsg CFI Conditional ??CrossCallReturnLabel_33 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 11) CFI Block cfiCond64 Using cfiCommon0 CFI (cfiCond64) Function ZDApp_ProcessNetworkJoin CFI (cfiCond64) Conditional ??CrossCallReturnLabel_34 CFI (cfiCond64) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond64) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond64) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond64) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond64) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond64) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond64) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond64) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond64) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond64) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond64) CFA_SP SP+-2 CFI (cfiCond64) CFA_XSP16 add(XSP16, 12) CFI Block cfiPicker65 Using cfiCommon1 CFI (cfiPicker65) NoFunction CFI (cfiPicker65) Picker LCALL `??osal_rand::?relay`; Banked call to: osal_rand ; Setup parameters for call to function ZDApp_NetworkInit ; Setup parameters for call to function ZDApp_NetworkInit MOV A,R2 ANL A,#0x7f ADD A,#0x64 MOV R2,A MOV R3,#0x0 LCALL `??ZDApp_NetworkInit::?relay`; Banked call to: ZDApp_NetworkInit RET CFI EndBlock cfiCond63 CFI EndBlock cfiCond64 CFI EndBlock cfiPicker65 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine26: CFI Block cfiCond66 Using cfiCommon0 CFI Function ZDApp_ProcessOSALMsg CFI Conditional ??CrossCallReturnLabel_31 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 11) CFI Block cfiCond67 Using cfiCommon0 CFI (cfiCond67) Function ZDApp_ProcessNetworkJoin CFI (cfiCond67) Conditional ??CrossCallReturnLabel_32 CFI (cfiCond67) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond67) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond67) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond67) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond67) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond67) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond67) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond67) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond67) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond67) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond67) CFA_SP SP+-2 CFI (cfiCond67) CFA_XSP16 add(XSP16, 12) CFI Block cfiPicker68 Using cfiCommon1 CFI (cfiPicker68) NoFunction CFI (cfiPicker68) Picker MOV R2,#0x0 MOV R3,#0x0 LCALL `??NLME_SetPollRate::?relay`; Banked call to: NLME_SetPollRate ; Setup parameters for call to function NLME_SetQueuedPollRate ; Setup parameters for call to function NLME_SetQueuedPollRate MOV R2,#0x0 MOV R3,#0x0 LCALL `??NLME_SetQueuedPollRate::?relay`; Banked call to: NLME_SetQueuedPollRate ; Setup parameters for call to function NLME_SetResponseRate ; Setup parameters for call to function NLME_SetResponseRate MOV R2,#0x0 MOV R3,#0x0 LCALL `??NLME_SetResponseRate::?relay`; Banked call to: NLME_SetResponseRate RET CFI EndBlock cfiCond66 CFI EndBlock cfiCond67 CFI EndBlock cfiPicker68 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine21: CFI Block cfiCond69 Using cfiCommon0 CFI Function ZDApp_DeviceAuthEvt CFI Conditional ??CrossCallReturnLabel_20 CFI DPL0 Frame(CFA_SP, 4) CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-7 CFI Block cfiCond70 Using cfiCommon0 CFI (cfiCond70) Function ZDApp_ProcessNetworkJoin CFI (cfiCond70) Conditional ??CrossCallReturnLabel_21 CFI (cfiCond70) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond70) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond70) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond70) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond70) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond70) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond70) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond70) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond70) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond70) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond70) CFA_SP SP+-2 CFI (cfiCond70) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond71 Using cfiCommon0 CFI (cfiCond71) Function ZDApp_ProcessNetworkJoin CFI (cfiCond71) Conditional ??CrossCallReturnLabel_22 CFI (cfiCond71) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond71) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond71) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond71) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond71) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond71) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond71) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond71) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond71) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond71) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond71) CFA_SP SP+-2 CFI (cfiCond71) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond72 Using cfiCommon0 CFI (cfiCond72) Function ZDApp_ProcessNetworkJoin CFI (cfiCond72) Conditional ??CrossCallReturnLabel_23 CFI (cfiCond72) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond72) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond72) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond72) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond72) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond72) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond72) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond72) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond72) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond72) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond72) CFA_SP SP+-2 CFI (cfiCond72) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond73 Using cfiCommon0 CFI (cfiCond73) Function ZDO_LeaveInd CFI (cfiCond73) Conditional ??CrossCallReturnLabel_24 CFI (cfiCond73) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond73) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond73) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond73) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond73) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond73) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond73) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond73) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond73) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond73) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond73) CFA_SP SP+-2 CFI (cfiCond73) CFA_XSP16 add(XSP16, 12) CFI Block cfiPicker74 Using cfiCommon1 CFI (cfiPicker74) NoFunction CFI (cfiPicker74) Picker MOV DPTR,#ZDO_Config_Node_Descriptor MOVX A,@DPTR ANL A,#0x7 XRL A,#0x2 RET CFI EndBlock cfiCond69 CFI EndBlock cfiCond70 CFI EndBlock cfiCond71 CFI EndBlock cfiCond72 CFI EndBlock cfiCond73 CFI EndBlock cfiPicker74 // 1535 // 1536 /********************************************************************* // 1537 * @fn ZDApp_SaveNwkKey() // 1538 * // 1539 * @brief Save off the Network key information. // 1540 * // 1541 * @param none // 1542 * // 1543 * @return none // 1544 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1545 void ZDApp_SaveNwkKey( void ) ZDApp_SaveNwkKey: CFI Block cfiBlock75 Using cfiCommon0 CFI Function ZDApp_SaveNwkKey CODE // 1546 { FUNCALL ZDApp_SaveNwkKey, SSP_ReadNwkActiveKey LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 33, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 33, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_SaveNwkKey, osal_nv_write LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 37, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 37, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_SaveNwkKey, osal_memset LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 33, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 33, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 REQUIRE ?V2 REQUIRE ?V3 MOV A,#-0xc LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 12) ; Saved register size: 12 ; Auto size: 21 MOV A,#-0x15 LCALL ?ALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 33) // 1547 nwkActiveKeyItems keyItems; // 1548 // 1549 SSP_ReadNwkActiveKey( &keyItems ); ; Setup parameters for call to function SSP_ReadNwkActiveKey MOV R2,?XSP + 0 MOV R3,?XSP + 1 LCALL `??SSP_ReadNwkActiveKey::?relay`; Banked call to: SSP_ReadNwkActiveKey // 1550 keyItems.frameCounter++; MOV DPTR,#__Constant_1 MOV R0,#?V0 LCALL ?L_MOV_X MOV A,#0x11 LCALL ?XSTACK_DISP0_8 MOV R0,#?V0 LCALL ?L_ADD_TO_X // 1551 // 1552 osal_nv_write( ZCD_NV_NWKKEY, 0, sizeof( nwkActiveKeyItems ), // 1553 (void *)&keyItems ); ; Setup parameters for call to function osal_nv_write MOV R0,?XSP + 0 MOV R1,?XSP + 1 MOV ?V0,R0 MOV ?V1,R1 MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_TWO CFI CFA_XSP16 add(XSP16, 35) MOV ?V0,#0x15 MOV ?V1,#0x0 MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_TWO CFI CFA_XSP16 add(XSP16, 37) MOV R4,#0x0 MOV R5,#0x0 MOV R2,#-0x7e MOV R3,#0x0 LCALL `??osal_nv_write::?relay`; Banked call to: osal_nv_write MOV A,#0x4 LCALL ?DEALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 33) // 1554 // 1555 nwkFrameCounterChanges = 0; MOV DPTR,#nwkFrameCounterChanges CLR A MOVX @DPTR,A INC DPTR MOVX @DPTR,A // 1556 // 1557 // Clear copy in RAM before return. // 1558 osal_memset( &keyItems, 0x00, sizeof(keyItems) ); ; Setup parameters for call to function osal_memset MOV R4,#0x15 MOV R5,A MOV R1,A MOV R2,?XSP + 0 MOV R3,?XSP + 1 LCALL `??osal_memset::?relay`; Banked call to: osal_memset // 1559 // 1560 } LJMP ?Subroutine1 & 0xFFFF CFI EndBlock cfiBlock75 // 1561 // 1562 /********************************************************************* // 1563 * @fn ZDApp_ResetNwkKey() // 1564 * // 1565 * @brief Reset the Network key information in NV. // 1566 * // 1567 * @param none // 1568 * // 1569 * @return none // 1570 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1571 void ZDApp_ResetNwkKey( void ) ZDApp_ResetNwkKey: CFI Block cfiBlock76 Using cfiCommon0 CFI Function ZDApp_ResetNwkKey CODE // 1572 { FUNCALL ZDApp_ResetNwkKey, osal_memset LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 31, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 31, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_ResetNwkKey, osal_nv_write LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 35, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 35, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 MOV A,#-0xa LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 10) ; Saved register size: 10 ; Auto size: 21 MOV A,#-0x15 LCALL ?ALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 31) // 1573 nwkActiveKeyItems keyItems; // 1574 // 1575 osal_memset( &keyItems, 0, sizeof( nwkActiveKeyItems ) ); ; Setup parameters for call to function osal_memset MOV R4,#0x15 LCALL ?Subroutine29 & 0xFFFF // 1576 osal_nv_write( ZCD_NV_NWKKEY, 0, sizeof( nwkActiveKeyItems ), // 1577 (void *)&keyItems ); ??CrossCallReturnLabel_38: LCALL ?PUSH_XSTACK_I_TWO CFI CFA_XSP16 add(XSP16, 33) MOV ?V0,#0x15 MOV ?V1,#0x0 MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_TWO CFI CFA_XSP16 add(XSP16, 35) MOV R4,#0x0 MOV R5,#0x0 MOV R2,#-0x7e MOV R3,#0x0 LCALL `??osal_nv_write::?relay`; Banked call to: osal_nv_write MOV A,#0x4 LCALL ?DEALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 31) // 1578 } LJMP ?Subroutine8 & 0xFFFF CFI EndBlock cfiBlock76 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine29: CFI Block cfiCond77 Using cfiCommon0 CFI Function ZDApp_InitUserDesc CFI Conditional ??CrossCallReturnLabel_37 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 27) CFI Block cfiCond78 Using cfiCommon0 CFI (cfiCond78) Function ZDApp_ResetNwkKey CFI (cfiCond78) Conditional ??CrossCallReturnLabel_38 CFI (cfiCond78) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond78) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond78) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond78) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond78) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond78) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond78) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond78) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond78) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond78) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond78) CFA_SP SP+-2 CFI (cfiCond78) CFA_XSP16 add(XSP16, 31) CFI Block cfiPicker79 Using cfiCommon1 CFI (cfiPicker79) NoFunction CFI (cfiPicker79) Picker MOV R5,#0x0 MOV R1,#0x0 MOV R2,?XSP + 0 MOV R3,?XSP + 1 LCALL `??osal_memset::?relay`; Banked call to: osal_memset ; Setup parameters for call to function osal_nv_item_init ; Setup parameters for call to function osal_nv_write MOV R0,?XSP + 0 MOV R1,?XSP + 1 MOV ?V0,R0 MOV ?V1,R1 MOV R0,#?V0 RET CFI EndBlock cfiCond77 CFI EndBlock cfiCond78 CFI EndBlock cfiPicker79 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine2: CFI Block cfiBlock80 Using cfiCommon0 CFI NoFunction CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 10) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) MOV ?V0,#ZDApp_LeaveCtrl & 0xff MOV ?V1,#(ZDApp_LeaveCtrl >> 8) & 0xff MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_TWO CFI CFA_XSP16 add(XSP16, 12) MOV ?V0,#0x1 MOV ?V1,#0x0 MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_TWO CFI CFA_XSP16 add(XSP16, 14) MOV R4,#0x0 MOV R5,#0x0 MOV R2,#-0x7b MOV R3,#0x0 LCALL `??osal_nv_write::?relay`; Banked call to: osal_nv_write MOV A,#0x4 CFI EndBlock cfiBlock80 REQUIRE ??Subroutine49_0 ; // Fall through to label ??Subroutine49_0 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ??Subroutine49_0: CFI Block cfiBlock81 Using cfiCommon0 CFI NoFunction CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 12) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI Invalid LCALL ?DEALLOC_XSTACK8 CFI EndBlock cfiBlock81 REQUIRE ??Subroutine50_0 ; // Fall through to label ??Subroutine50_0 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ??Subroutine50_0: CFI Block cfiBlock82 Using cfiCommon0 CFI NoFunction CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 10) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) MOV R7,#0x2 LJMP ?BANKED_LEAVE_XDATA CFI EndBlock cfiBlock82 // 1579 // 1580 /********************************************************************* // 1581 * @fn ZDApp_RestoreNwkKey() // 1582 * // 1583 * @brief // 1584 * // 1585 * Save off the Network key information. // 1586 * // 1587 * @param none // 1588 * // 1589 * @return true if restored from NV, false if not // 1590 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1591 uint8 ZDApp_RestoreNwkKey( void ) ZDApp_RestoreNwkKey: CFI Block cfiBlock83 Using cfiCommon0 CFI Function ZDApp_RestoreNwkKey CODE // 1592 { FUNCALL ZDApp_RestoreNwkKey, osal_nv_read LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 37, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 37, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_RestoreNwkKey, osal_memset LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 33, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 33, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 REQUIRE ?V2 REQUIRE ?V3 MOV A,#-0xc LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 12) ; Saved register size: 12 ; Auto size: 21 MOV A,#-0x15 LCALL ?ALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 33) // 1593 nwkActiveKeyItems keyItems; // 1594 uint8 ret = false; MOV R6,#0x0 // 1595 // 1596 if ( osal_nv_read( ZCD_NV_NWKKEY, 0, sizeof(nwkActiveKeyItems), (void*)&keyItems ) // 1597 == ZSUCCESS ) ; Setup parameters for call to function osal_nv_read MOV R0,?XSP + 0 MOV R1,?XSP + 1 MOV ?V0,R0 MOV ?V1,R1 MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_TWO CFI CFA_XSP16 add(XSP16, 35) MOV ?V0,#0x15 MOV ?V1,R6 MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_TWO CFI CFA_XSP16 add(XSP16, 37) MOV R4,#0x0 MOV R5,#0x0 MOV R2,#-0x7e LCALL ?Subroutine30 & 0xFFFF ??CrossCallReturnLabel_40: LCALL ?DEALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 33) MOV A,R1 JNZ ??ZDApp_RestoreNwkKey_0 // 1598 { // 1599 if ( keyItems.frameCounter > 0 ) MOV A,#0x11 LCALL ?XSTACK_DISP0_8 LCALL ?XLOAD_R0123 MOV A,R0 ORL A,R1 ORL A,R2 ORL A,R3 JZ ??ZDApp_RestoreNwkKey_1 // 1600 { // 1601 // Restore the key information // 1602 keyItems.frameCounter += MAX_NWK_FRAMECOUNTER_CHANGES; MOV DPTR,#__Constant_3e8 MOV R0,#?V0 LCALL ?L_MOV_X MOV A,#0x11 LCALL ?XSTACK_DISP0_8 MOV R0,#?V0 LCALL ?L_ADD_TO_X // 1603 nwkFrameCounter = keyItems.frameCounter; MOV A,#0x11 LCALL ?XSTACK_DISP0_8 LCALL ?XLOAD_R0123 MOV DPTR,#nwkFrameCounter LCALL ?XSTORE_R0123 // 1604 ret = true; MOV R6,#0x1 // 1605 } // 1606 // 1607 // Force a save for the first frame counter increment // 1608 nwkFrameCounterChanges = MAX_NWK_FRAMECOUNTER_CHANGES + 1; ??ZDApp_RestoreNwkKey_1: MOV DPTR,#nwkFrameCounterChanges MOV A,#-0x17 MOVX @DPTR,A INC DPTR MOV A,#0x3 MOVX @DPTR,A // 1609 } // 1610 // Clear copy in RAM before return. // 1611 osal_memset( &keyItems, 0x00, sizeof(keyItems) ); ??ZDApp_RestoreNwkKey_0: ; Setup parameters for call to function osal_memset MOV R4,#0x15 MOV R5,#0x0 MOV R1,#0x0 MOV R2,?XSP + 0 MOV R3,?XSP + 1 LCALL `??osal_memset::?relay`; Banked call to: osal_memset // 1612 // 1613 return ( ret ); MOV A,R6 MOV R1,A LJMP ?Subroutine1 & 0xFFFF // 1614 } CFI EndBlock cfiBlock83 // 1615 // 1616 /********************************************************************* // 1617 * @fn ZDApp_ResetTimerStart // 1618 * // 1619 * @brief Start the reset timer. // 1620 * // 1621 * @param delay - delay time(ms) before reset // 1622 * // 1623 * @return none // 1624 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1625 void ZDApp_ResetTimerStart( uint16 delay ) ZDApp_ResetTimerStart: CFI Block cfiBlock84 Using cfiCommon0 CFI Function ZDApp_ResetTimerStart CODE // 1626 { FUNCALL ZDApp_ResetTimerStart, osal_start_timerEx LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC PUSH DPL CFI DPL0 Frame(CFA_SP, 4) CFI CFA_SP SP+-4 PUSH DPH CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-5 ; Saved register size: 2 ; Auto size: 0 // 1627 // Start the rest timer // 1628 osal_start_timerEx( ZDAppTaskID, ZDO_DEVICE_RESET, delay ); ; Setup parameters for call to function osal_start_timerEx MOV A,R2 MOV R4,A MOV A,R3 MOV R5,A MOV R2,#0x4 LCALL ?Subroutine22 & 0xFFFF // 1629 } ??CrossCallReturnLabel_78: LJMP ?Subroutine3 & 0xFFFF CFI EndBlock cfiBlock84 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine22: CFI Block cfiCond85 Using cfiCommon0 CFI Function ZDApp_ProcessSecEvent CFI Conditional ??CrossCallReturnLabel_77 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 9) CFI Block cfiCond86 Using cfiCommon0 CFI (cfiCond86) Function ZDApp_ResetTimerStart CFI (cfiCond86) Conditional ??CrossCallReturnLabel_78 CFI (cfiCond86) DPL0 Frame(CFA_SP, 4) CFI (cfiCond86) DPH0 Frame(CFA_SP, 5) CFI (cfiCond86) CFA_SP SP+-7 CFI Block cfiCond87 Using cfiCommon0 CFI (cfiCond87) Function ZDApp_NetworkInit CFI (cfiCond87) Conditional ??CrossCallReturnLabel_79 CFI (cfiCond87) DPL0 Frame(CFA_SP, 4) CFI (cfiCond87) DPH0 Frame(CFA_SP, 5) CFI (cfiCond87) CFA_SP SP+-7 CFI Block cfiPicker88 Using cfiCommon1 CFI (cfiPicker88) NoFunction CFI (cfiPicker88) Picker MOV R3,#0x0 MOV DPTR,#ZDAppTaskID CFI EndBlock cfiCond85 CFI EndBlock cfiCond86 CFI EndBlock cfiCond87 CFI EndBlock cfiPicker88 REQUIRE ??Subroutine51_0 ; // Fall through to label ??Subroutine51_0 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ??Subroutine51_0: CFI Block cfiCond89 Using cfiCommon0 CFI Function ZDApp_event_loop CFI Conditional ??CrossCallReturnLabel_80 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 12) CFI Block cfiCond90 Using cfiCommon0 CFI (cfiCond90) Function ZDApp_ProcessSecEvent CFI (cfiCond90) Conditional ??CrossCallReturnLabel_77 CFI (cfiCond90) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond90) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond90) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond90) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond90) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond90) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond90) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond90) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond90) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond90) CFA_SP SP+-2 CFI (cfiCond90) CFA_XSP16 add(XSP16, 9) CFI Block cfiCond91 Using cfiCommon0 CFI (cfiCond91) Function ZDApp_ResetTimerStart CFI (cfiCond91) Conditional ??CrossCallReturnLabel_78 CFI (cfiCond91) DPL0 Frame(CFA_SP, 4) CFI (cfiCond91) DPH0 Frame(CFA_SP, 5) CFI (cfiCond91) CFA_SP SP+-7 CFI Block cfiCond92 Using cfiCommon0 CFI (cfiCond92) Function ZDApp_NetworkInit CFI (cfiCond92) Conditional ??CrossCallReturnLabel_79 CFI (cfiCond92) DPL0 Frame(CFA_SP, 4) CFI (cfiCond92) DPH0 Frame(CFA_SP, 5) CFI (cfiCond92) CFA_SP SP+-7 CFI Block cfiPicker93 Using cfiCommon1 CFI (cfiPicker93) NoFunction CFI (cfiPicker93) Picker MOVX A,@DPTR MOV R1,A LCALL `??osal_start_timerEx::?relay`; Banked call to: osal_start_timerEx RET CFI EndBlock cfiCond89 CFI EndBlock cfiCond90 CFI EndBlock cfiCond91 CFI EndBlock cfiCond92 CFI EndBlock cfiPicker93 // 1630 // 1631 /********************************************************************* // 1632 * @fn ZDApp_ResetTimerCancel // 1633 * // 1634 * @brief Cancel the reset timer. // 1635 * // 1636 * @param none // 1637 * // 1638 * @return none // 1639 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1640 void ZDApp_ResetTimerCancel( void ) ZDApp_ResetTimerCancel: CFI Block cfiBlock94 Using cfiCommon0 CFI Function ZDApp_ResetTimerCancel CODE // 1641 { FUNCALL ZDApp_ResetTimerCancel, osal_stop_timerEx LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC PUSH DPL CFI DPL0 Frame(CFA_SP, 4) CFI CFA_SP SP+-4 PUSH DPH CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-5 ; Saved register size: 2 ; Auto size: 0 // 1642 // Cancel the reset timer // 1643 osal_stop_timerEx( ZDAppTaskID, ZDO_DEVICE_RESET ); ; Setup parameters for call to function osal_stop_timerEx MOV R2,#0x4 MOV R3,#0x0 MOV DPTR,#ZDAppTaskID MOVX A,@DPTR MOV R1,A LCALL `??osal_stop_timerEx::?relay`; Banked call to: osal_stop_timerEx // 1644 } LJMP ?Subroutine3 & 0xFFFF CFI EndBlock cfiBlock94 // 1645 // 1646 /********************************************************************* // 1647 * @fn ZDApp_LeaveCtrlInit // 1648 * // 1649 * @brief Initialize the leave control logic. // 1650 * // 1651 * @param none // 1652 * // 1653 * @return none // 1654 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1655 void ZDApp_LeaveCtrlInit( void ) ZDApp_LeaveCtrlInit: CFI Block cfiBlock95 Using cfiCommon0 CFI Function ZDApp_LeaveCtrlInit CODE // 1656 { FUNCALL ZDApp_LeaveCtrlInit, osal_nv_item_init LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_LeaveCtrlInit, osal_nv_read LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 14, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 MOV A,#-0xa LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 10) ; Saved register size: 10 ; Auto size: 0 // 1657 uint8 status; // 1658 // 1659 // 1660 // Initialize control state // 1661 ZDApp_LeaveCtrl = ZDAPP_LEAVE_CTRL_INIT; MOV DPTR,#ZDApp_LeaveCtrl CLR A MOVX @DPTR,A // 1662 // 1663 status = osal_nv_item_init( ZCD_NV_LEAVE_CTRL, // 1664 sizeof(ZDApp_LeaveCtrl), // 1665 &ZDApp_LeaveCtrl ); // 1666 // 1667 if ( status == ZSUCCESS ) ; Setup parameters for call to function osal_nv_item_init MOV ?V0,#ZDApp_LeaveCtrl & 0xff MOV ?V1,#(ZDApp_LeaveCtrl >> 8) & 0xff MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_TWO CFI CFA_XSP16 add(XSP16, 12) MOV R4,#0x1 MOV R5,#0x0 MOV R2,#-0x7b MOV R3,#0x0 LCALL `??osal_nv_item_init::?relay`; Banked call to: osal_nv_item_init MOV A,#0x2 LCALL ?DEALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 10) MOV A,R1 JNZ ??ZDApp_LeaveCtrlInit_0 // 1668 { // 1669 // Read saved control // 1670 osal_nv_read( ZCD_NV_LEAVE_CTRL, // 1671 0, // 1672 sizeof( uint8 ), // 1673 &ZDApp_LeaveCtrl); ; Setup parameters for call to function osal_nv_read MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_TWO CFI CFA_XSP16 add(XSP16, 12) MOV ?V0,#0x1 MOV ?V1,#0x0 MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_TWO CFI CFA_XSP16 add(XSP16, 14) MOV R4,#0x0 MOV R5,#0x0 MOV R2,#-0x7b LCALL ?Subroutine30 & 0xFFFF // 1674 } ??CrossCallReturnLabel_41: LCALL ?DEALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 10) // 1675 } ??ZDApp_LeaveCtrlInit_0: LJMP ??Subroutine50_0 & 0xFFFF CFI EndBlock cfiBlock95 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine30: CFI Block cfiCond96 Using cfiCommon0 CFI Function ZDApp_InitUserDesc CFI Conditional ??CrossCallReturnLabel_39 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 31) CFI Block cfiCond97 Using cfiCommon0 CFI (cfiCond97) Function ZDApp_RestoreNwkKey CFI (cfiCond97) Conditional ??CrossCallReturnLabel_40 CFI (cfiCond97) R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond97) VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond97) V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond97) V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond97) V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond97) V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond97) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond97) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond97) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond97) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond97) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond97) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond97) CFA_SP SP+-2 CFI (cfiCond97) CFA_XSP16 add(XSP16, 37) CFI Block cfiCond98 Using cfiCommon0 CFI (cfiCond98) Function ZDApp_LeaveCtrlInit CFI (cfiCond98) Conditional ??CrossCallReturnLabel_41 CFI (cfiCond98) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond98) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond98) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond98) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond98) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond98) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond98) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond98) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond98) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond98) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond98) CFA_SP SP+-2 CFI (cfiCond98) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond99 Using cfiCommon0 CFI (cfiCond99) Function ZDApp_DeviceConfigured CFI (cfiCond99) Conditional ??CrossCallReturnLabel_42 CFI (cfiCond99) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond99) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond99) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond99) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond99) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond99) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond99) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond99) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond99) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond99) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond99) CFA_SP SP+-2 CFI (cfiCond99) CFA_XSP16 add(XSP16, 16) CFI Block cfiPicker100 Using cfiCommon1 CFI (cfiPicker100) NoFunction CFI (cfiPicker100) Picker MOV R3,#0x0 LCALL `??osal_nv_read::?relay`; Banked call to: osal_nv_read MOV A,#0x4 RET CFI EndBlock cfiCond96 CFI EndBlock cfiCond97 CFI EndBlock cfiCond98 CFI EndBlock cfiCond99 CFI EndBlock cfiPicker100 // 1676 // 1677 /********************************************************************* // 1678 * @fn ZDApp_LeaveCtrlSet // 1679 * // 1680 * @brief Set the leave control logic. // 1681 * // 1682 * @param ra - reassociate flag // 1683 * // 1684 * @return none // 1685 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1686 void ZDApp_LeaveCtrlSet( uint8 ra ) ZDApp_LeaveCtrlSet: CFI Block cfiBlock101 Using cfiCommon0 CFI Function ZDApp_LeaveCtrlSet CODE // 1687 { FUNCALL ZDApp_LeaveCtrlSet, osal_nv_write LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 14, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 MOV A,#-0xa LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 10) ; Saved register size: 10 ; Auto size: 0 MOV A,R1 MOV R6,A // 1688 ZDApp_LeaveCtrl = ZDAPP_LEAVE_CTRL_SET; MOV DPTR,#ZDApp_LeaveCtrl MOV A,#0x1 MOVX @DPTR,A // 1689 // 1690 if ( ra == TRUE ) XRL A,R6 JNZ ??ZDApp_LeaveCtrlSet_0 // 1691 { // 1692 ZDApp_LeaveCtrl |= ZDAPP_LEAVE_CTRL_RA; MOV A,#0x3 MOVX @DPTR,A // 1693 } // 1694 // 1695 // Write the leave control // 1696 osal_nv_write( ZCD_NV_LEAVE_CTRL, // 1697 0, // 1698 sizeof( uint8 ), // 1699 &ZDApp_LeaveCtrl); ??ZDApp_LeaveCtrlSet_0: ; Setup parameters for call to function osal_nv_write LJMP ?Subroutine2 & 0xFFFF // 1700 } CFI EndBlock cfiBlock101 // 1701 // 1702 /********************************************************************* // 1703 * @fn ZDApp_LeaveCtrlReset // 1704 * // 1705 * @brief Re-initialize the leave control logic. // 1706 * // 1707 * @param none // 1708 * // 1709 * @return none // 1710 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1711 void ZDApp_LeaveCtrlReset( void ) ZDApp_LeaveCtrlReset: CFI Block cfiBlock102 Using cfiCommon0 CFI Function ZDApp_LeaveCtrlReset CODE // 1712 { FUNCALL ZDApp_LeaveCtrlReset, osal_nv_write LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 14, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 MOV A,#-0xa LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 10) ; Saved register size: 10 ; Auto size: 0 // 1713 // Set leave control to initialized state // 1714 ZDApp_LeaveCtrl = ZDAPP_LEAVE_CTRL_INIT; MOV DPTR,#ZDApp_LeaveCtrl CLR A MOVX @DPTR,A // 1715 // 1716 // Write initialized control // 1717 osal_nv_write( ZCD_NV_LEAVE_CTRL, // 1718 0, // 1719 sizeof( uint8 ), // 1720 &ZDApp_LeaveCtrl); ; Setup parameters for call to function osal_nv_write LJMP ?Subroutine2 & 0xFFFF // 1721 } CFI EndBlock cfiBlock102 // 1722 // 1723 /********************************************************************* // 1724 * @fn ZDApp_LeaveCtrlBypass // 1725 * // 1726 * @brief Check if NV restore should be skipped during a leave reset. // 1727 * // 1728 * @param none // 1729 * // 1730 * @return uint8 - (TRUE bypass:FALSE do not bypass) // 1731 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1732 uint8 ZDApp_LeaveCtrlBypass( void ) ZDApp_LeaveCtrlBypass: CFI Block cfiBlock103 Using cfiCommon0 CFI Function ZDApp_LeaveCtrlBypass CODE // 1733 { PUSH DPL CFI DPL0 Frame(CFA_SP, 4) CFI CFA_SP SP+-4 PUSH DPH CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-5 ; Saved register size: 2 ; Auto size: 0 // 1734 uint8 bypass; // 1735 // 1736 if ( ZDApp_LeaveCtrl & ZDAPP_LEAVE_CTRL_SET ) // 1737 { // 1738 bypass = TRUE; // 1739 } // 1740 else // 1741 { // 1742 bypass = FALSE; // 1743 } // 1744 // 1745 return bypass; MOV DPTR,#ZDApp_LeaveCtrl MOVX A,@DPTR MOV C,0xE0 /* A */.0 CLR A RLC A MOV R1,A LJMP ?Subroutine3 & 0xFFFF // 1746 } CFI EndBlock cfiBlock103 // 1747 // 1748 /********************************************************************* // 1749 * @fn ZDApp_LeaveCtrlStartup // 1750 * // 1751 * @brief Check for startup conditions during a leave reset. // 1752 * // 1753 * @param state - devState_t determined by leave control logic // 1754 * @param startDelay - startup delay // 1755 * // 1756 * @return none // 1757 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1758 void ZDApp_LeaveCtrlStartup( devStates_t* state, uint16* startDelay ) ZDApp_LeaveCtrlStartup: CFI Block cfiBlock104 Using cfiCommon0 CFI Function ZDApp_LeaveCtrlStartup CODE // 1759 { FUNCALL ZDApp_LeaveCtrlStartup, ZDApp_LeaveCtrlReset LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC PUSH DPL CFI DPL0 Frame(CFA_SP, 4) CFI CFA_SP SP+-4 PUSH DPH CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-5 ; Saved register size: 2 ; Auto size: 0 // 1760 *startDelay = 0; MOV DPL,R4 MOV DPH,R5 CLR A MOVX @DPTR,A INC DPTR MOVX @DPTR,A // 1761 // 1762 if ( ZDApp_LeaveCtrl & ZDAPP_LEAVE_CTRL_SET ) MOV DPTR,#ZDApp_LeaveCtrl MOVX A,@DPTR MOV C,0xE0 /* A */.0 JNC ??ZDApp_LeaveCtrlStartup_0 // 1763 { // 1764 if ( ZDApp_LeaveCtrl & ZDAPP_LEAVE_CTRL_RA ) MOV C,0xE0 /* A */.1 JNC ??ZDApp_LeaveCtrlStartup_1 // 1765 { // 1766 *startDelay = LEAVE_RESET_DELAY; MOV DPL,R4 MOV DPH,R5 MOV A,#-0x78 MOVX @DPTR,A INC DPTR MOV A,#0x13 SJMP ??ZDApp_LeaveCtrlStartup_2 // 1767 } // 1768 else // 1769 { // 1770 *state = DEV_HOLD; ??ZDApp_LeaveCtrlStartup_1: MOV DPL,R2 MOV DPH,R3 CLR A ??ZDApp_LeaveCtrlStartup_2: MOVX @DPTR,A // 1771 } // 1772 // 1773 // Reset leave control logic // 1774 ZDApp_LeaveCtrlReset(); ; Setup parameters for call to function ZDApp_LeaveCtrlReset LCALL `??ZDApp_LeaveCtrlReset::?relay`; Banked call to: ZDApp_LeaveCtrlReset // 1775 } // 1776 } ??ZDApp_LeaveCtrlStartup_0: LJMP ?Subroutine3 & 0xFFFF CFI EndBlock cfiBlock104 // 1777 // 1778 /********************************************************************* // 1779 * @fn ZDApp_LeaveReset // 1780 * // 1781 * @brief Setup a device reset due to a leave indication/confirm. // 1782 * // 1783 * @param ra - reassociate flag // 1784 * // 1785 * @return none // 1786 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1787 void ZDApp_LeaveReset( uint8 ra ) ZDApp_LeaveReset: CFI Block cfiBlock105 Using cfiCommon0 CFI Function ZDApp_LeaveReset CODE // 1788 { FUNCALL ZDApp_LeaveReset, ZDApp_LeaveCtrlSet LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_LeaveReset, ZDApp_ResetTimerStart LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC MOV A,#-0x9 LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 9) ; Saved register size: 9 ; Auto size: 0 // 1789 ZDApp_LeaveCtrlSet( ra ); ; Setup parameters for call to function ZDApp_LeaveCtrlSet LCALL `??ZDApp_LeaveCtrlSet::?relay`; Banked call to: ZDApp_LeaveCtrlSet // 1790 // 1791 ZDApp_ResetTimerStart( LEAVE_RESET_DELAY ); ; Setup parameters for call to function ZDApp_ResetTimerStart MOV R2,#-0x78 MOV R3,#0x13 LCALL `??ZDApp_ResetTimerStart::?relay`; Banked call to: ZDApp_ResetTimerStart // 1792 } SJMP ??Subroutine52_0 CFI EndBlock cfiBlock105 // 1793 // 1794 /********************************************************************* // 1795 * @fn ZDApp_LeaveUpdate // 1796 * // 1797 * @brief Update local device data related to leaving device. // 1798 * // 1799 * @param nwkAddr - NWK address of leaving device // 1800 * @param extAddr - EXT address of leaving device // 1801 * @param removeChildren - remove children of leaving device // 1802 * // 1803 * @return none // 1804 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1805 void ZDApp_LeaveUpdate( uint16 nwkAddr, uint8* extAddr, ZDApp_LeaveUpdate: CFI Block cfiBlock106 Using cfiCommon0 CFI Function ZDApp_LeaveUpdate CODE // 1806 uint8 removeChildren ) // 1807 { FUNCALL ZDApp_LeaveUpdate, NLME_RemoveChild LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC MOV A,#-0x9 LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 9) ; Saved register size: 9 ; Auto size: 0 MOV A,R4 MOV R2,A MOV A,R5 MOV R3,A // 1808 /* // 1809 AddrMgrEntry_t entry; // 1810 */ // 1811 (void)nwkAddr; // Intentionally unreferenced parameter // 1812 // 1813 // Remove if child // 1814 if ( ZSTACK_ROUTER_BUILD ) // 1815 { // 1816 NLME_RemoveChild( extAddr, removeChildren ); ; Setup parameters for call to function NLME_RemoveChild LCALL `??NLME_RemoveChild::?relay`; Banked call to: NLME_RemoveChild // 1817 } // 1818 // 1819 /* // 1820 // Set NWK address to invalid // 1821 entry.user = ADDRMGR_USER_DEFAULT; // 1822 entry.nwkAddr = INVALID_NODE_ADDR; // 1823 AddrMgrExtAddrSet( entry.extAddr, extAddr ); // 1824 AddrMgrEntryUpdate( &entry ); // 1825 // 1826 // Check // 1827 if ( removeChildren == TRUE ) // 1828 { // 1829 // Set index to INVALID_NODE_ADDR to start search // 1830 entry.index = INVALID_NODE_ADDR; // 1831 // 1832 // Get first entry // 1833 AddrMgrEntryGetNext( &entry ); // 1834 // 1835 // Remove all descendents // 1836 while ( entry.index != INVALID_NODE_ADDR ) // 1837 { // 1838 // Check NWK address allocation algorithm // 1839 if ( RTG_ANCESTOR( entry.nwkAddr, thisAddr ) != 0 ) // 1840 { // 1841 // Set NWK address to invalid // 1842 entry.nwkAddr = INVALID_NODE_ADDR; // 1843 AddrMgrEntryUpdate( &entry ); // 1844 } // 1845 // 1846 // Get next entry // 1847 AddrMgrEntryGetNext( &entry ); // 1848 } // 1849 } // 1850 */ // 1851 } SJMP ??Subroutine52_0 CFI EndBlock cfiBlock106 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine0: CFI Block cfiBlock107 Using cfiCommon0 CFI NoFunction CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 9) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) LCALL ??Subroutine43_0 & 0xFFFF ??CrossCallReturnLabel_65: CFI EndBlock cfiBlock107 REQUIRE ??Subroutine52_0 ; // Fall through to label ??Subroutine52_0 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ??Subroutine52_0: CFI Block cfiBlock108 Using cfiCommon0 CFI NoFunction CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 9) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) MOV R7,#0x1 LJMP ?BANKED_LEAVE_XDATA CFI EndBlock cfiBlock108 // 1852 // 1853 /********************************************************************* // 1854 * @fn ZDApp_NetworkDiscoveryReq // 1855 * // 1856 * @brief Request a network discovery. // 1857 * // 1858 * @param scanChannels - // 1859 * @param scanDuration - // 1860 * // 1861 * @return ZStatus_t // 1862 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1863 ZStatus_t ZDApp_NetworkDiscoveryReq( uint32 scanChannels, uint8 scanDuration) ZDApp_NetworkDiscoveryReq: CFI Block cfiBlock109 Using cfiCommon0 CFI Function ZDApp_NetworkDiscoveryReq CODE // 1864 { FUNCALL ZDApp_NetworkDiscoveryReq, NLME_NetworkDiscoveryRequest LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 REQUIRE ?V2 REQUIRE ?V3 MOV A,#-0xc LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 12) ; Saved register size: 12 ; Auto size: 0 // 1865 // Setup optional filters - tbd // 1866 // 1867 // Request NLME network discovery // 1868 return NLME_NetworkDiscoveryRequest(scanChannels, scanDuration); ; Setup parameters for call to function NLME_NetworkDiscoveryRequest LCALL `??NLME_NetworkDiscoveryRequest::?relay`; Banked call to: NLME_NetworkDiscoveryRequest LJMP ??Subroutine45_0 & 0xFFFF // 1869 } CFI EndBlock cfiBlock109 // 1870 // 1871 /********************************************************************* // 1872 * @fn ZDApp_JoinReq // 1873 * // 1874 * @brief Request the device to join a parent in a network. // 1875 * // 1876 * @param channel - // 1877 * @param panID - // 1878 * // 1879 * @return ZStatus_t // 1880 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1881 ZStatus_t ZDApp_JoinReq( uint8 channel, uint16 panID, uint8 *extendedPanID, ZDApp_JoinReq: CFI Block cfiBlock110 Using cfiCommon0 CFI Function ZDApp_JoinReq CODE // 1882 uint16 chosenParent, uint8 parentDepth, uint8 stackProfile ) // 1883 { FUNCALL ZDApp_JoinReq, ZDApp_NodeProfileSync LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_JoinReq, NLME_JoinRequest LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 16, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 16, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 REQUIRE ?V2 REQUIRE ?V3 MOV A,#-0xc LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 12) ; Saved register size: 12 ; Auto size: 0 MOV ?V2,R1 MOV A,R2 MOV R6,A MOV A,R3 MOV R7,A MOV ?V0,R4 MOV ?V1,R5 // 1884 // Sync up the node with the stack profile (In the case where a pro device // 1885 // joins a non-pro network, or verse versa) // 1886 ZDApp_NodeProfileSync( stackProfile); ; Setup parameters for call to function ZDApp_NodeProfileSync MOV A,#0xf LCALL ?XSTACK_DISP0_8 MOVX A,@DPTR MOV R1,A LCALL `??ZDApp_NodeProfileSync::?relay`; Banked call to: ZDApp_NodeProfileSync // 1887 // 1888 // Request NLME Join Request // 1889 return NLME_JoinRequest(extendedPanID, panID,channel, // 1890 ZDO_Config_Node_Descriptor.CapabilityFlags, // 1891 chosenParent, parentDepth); ; Setup parameters for call to function NLME_JoinRequest MOV A,#0xe LCALL ?XSTACK_DISP0_8 MOVX A,@DPTR MOV ?V3,A MOV R0,#?V3 LCALL ?PUSH_XSTACK_I_ONE CFI CFA_XSP16 add(XSP16, 13) MOV A,#0xd LCALL ?XSTACK_DISP0_8 LCALL ?PUSH_XSTACK8_X_TWO CFI CFA_XSP16 add(XSP16, 15) MOV DPTR,#ZDO_Config_Node_Descriptor + 2 MOVX A,@DPTR MOV ?V3,A MOV R0,#?V3 LCALL ?PUSH_XSTACK_I_ONE CFI CFA_XSP16 add(XSP16, 16) MOV R1,?V2 MOV A,R6 MOV R4,A MOV A,R7 MOV R5,A MOV R2,?V0 MOV R3,?V1 LCALL `??NLME_JoinRequest::?relay`; Banked call to: NLME_JoinRequest MOV A,#0x4 LJMP ??Subroutine44_0 & 0xFFFF // 1892 // 1893 } CFI EndBlock cfiBlock110 // 1894 // 1895 /********************************************************************* // 1896 * @fn ZDApp_DeviceConfigured // 1897 * // 1898 * @brief Check to see if the local device is configured (i.e., part // 1899 * of a network). // 1900 * // 1901 * @param none // 1902 * // 1903 * @return TRUE if configured. FALSE, otherwise. // 1904 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1905 uint8 ZDApp_DeviceConfigured( void ) ZDApp_DeviceConfigured: CFI Block cfiBlock111 Using cfiCommon0 CFI Function ZDApp_DeviceConfigured CODE // 1906 { FUNCALL ZDApp_DeviceConfigured, osal_nv_read LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 16, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 16, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 MOV A,#-0xa LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 10) ; Saved register size: 10 ; Auto size: 2 MOV A,#-0x2 LCALL ?ALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 12) // 1907 uint16 nwkAddr = INVALID_NODE_ADDR; MOV DPL,?XSP + 0 MOV DPH,?XSP + 1 MOV A,#-0x2 MOVX @DPTR,A INC DPTR INC A MOVX @DPTR,A // 1908 // 1909 osal_nv_read( ZCD_NV_NIB, osal_offsetof( nwkIB_t, nwkDevAddress ), // 1910 sizeof( uint16), &nwkAddr ); ; Setup parameters for call to function osal_nv_read MOV R0,?XSP + 0 MOV R1,?XSP + 1 MOV ?V0,R0 MOV ?V1,R1 MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_TWO CFI CFA_XSP16 add(XSP16, 14) MOV ?V0,#0x2 MOV ?V1,#0x0 MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_TWO CFI CFA_XSP16 add(XSP16, 16) MOV R4,#0x14 MOV R5,#0x0 MOV R2,#0x21 LCALL ?Subroutine30 & 0xFFFF ??CrossCallReturnLabel_42: LCALL ?DEALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 12) // 1911 // 1912 // Does the NIB have anything more than default? // 1913 return ( nwkAddr == INVALID_NODE_ADDR ? FALSE : TRUE ); MOV DPL,?XSP + 0 MOV DPH,?XSP + 1 MOVX A,@DPTR XRL A,#0xfe JNZ ??ZDApp_DeviceConfigured_0 INC DPTR MOVX A,@DPTR CPL A ??ZDApp_DeviceConfigured_0: JNZ ??ZDApp_DeviceConfigured_1 MOV R1,#0x0 SJMP ??ZDApp_DeviceConfigured_2 ??ZDApp_DeviceConfigured_1: MOV R1,#0x1 ??ZDApp_DeviceConfigured_2: CFI EndBlock cfiBlock111 REQUIRE ?Subroutine7 ; // Fall through to label ?Subroutine7 // 1914 } RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine7: CFI Block cfiBlock112 Using cfiCommon0 CFI NoFunction CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 12) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) MOV A,#0x2 LJMP ??Subroutine49_0 & 0xFFFF CFI EndBlock cfiBlock112 // 1915 // 1916 /********************************************************************* // 1917 * CALLBACK FUNCTIONS // 1918 */ // 1919 // 1920 // 1921 /********************************************************************* // 1922 * @fn ZDApp_SendEventMsg() // 1923 * // 1924 * @brief // 1925 * // 1926 * Sends a Network Join message // 1927 * // 1928 * @param cmd - command ID // 1929 * @param len - length (in bytes) of the buf field // 1930 * @param buf - buffer for the rest of the message. // 1931 * // 1932 * @return none // 1933 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1934 void ZDApp_SendEventMsg( uint8 cmd, uint8 len, uint8 *buf ) ZDApp_SendEventMsg: CFI Block cfiBlock113 Using cfiCommon0 CFI Function ZDApp_SendEventMsg CODE // 1935 { FUNCALL ZDApp_SendEventMsg, ZDApp_SendMsg LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC MOV A,#-0x9 LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 9) ; Saved register size: 9 ; Auto size: 0 MOV A,R2 // 1936 ZDApp_SendMsg( ZDAppTaskID, cmd, len, buf ); ; Setup parameters for call to function ZDApp_SendMsg MOV R3,A MOV A,R1 MOV R2,A LCALL ?Subroutine24 & 0xFFFF // 1937 } ??CrossCallReturnLabel_25: LJMP ??Subroutine52_0 & 0xFFFF CFI EndBlock cfiBlock113 // 1938 // 1939 /********************************************************************* // 1940 * @fn ZDApp_SendMsg() // 1941 * // 1942 * @brief Sends a OSAL message // 1943 * // 1944 * @param taskID - Where to send the message // 1945 * @param cmd - command ID // 1946 * @param len - length (in bytes) of the buf field // 1947 * @param buf - buffer for the rest of the message. // 1948 * // 1949 * @return none // 1950 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1951 void ZDApp_SendMsg( uint8 taskID, uint8 cmd, uint8 len, uint8 *buf ) ZDApp_SendMsg: CFI Block cfiBlock114 Using cfiCommon0 CFI Function ZDApp_SendMsg CODE // 1952 { FUNCALL ZDApp_SendMsg, osal_msg_allocate LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 16, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 16, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_SendMsg, osal_memcpy LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 19, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 19, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_SendMsg, osal_msg_send LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 16, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 16, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 REQUIRE ?V2 REQUIRE ?V3 REQUIRE ?V4 REQUIRE ?V5 REQUIRE ?V6 REQUIRE ?V7 MOV A,#-0x10 LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 16) ; Saved register size: 16 ; Auto size: 0 MOV ?V7,R1 MOV ?V6,R2 MOV ?V3,R3 MOV ?V0,R4 MOV ?V1,R5 // 1953 osal_event_hdr_t *msgPtr; // 1954 // 1955 // Send the address to the task // 1956 msgPtr = (osal_event_hdr_t *)osal_msg_allocate( len ); ; Setup parameters for call to function osal_msg_allocate MOV R2,?V3 MOV R3,#0x0 LCALL `??osal_msg_allocate::?relay`; Banked call to: osal_msg_allocate MOV ?V4,R2 MOV ?V5,R3 MOV R6,?V4 MOV R7,?V5 // 1957 if ( msgPtr ) MOV A,R2 ORL A,R7 JZ ??ZDApp_SendMsg_0 // 1958 { // 1959 if ( (len > 0) && (buf != NULL) ) MOV A,?V3 JZ ??ZDApp_SendMsg_1 MOV A,?V0 ORL A,?V1 JZ ??ZDApp_SendMsg_1 // 1960 osal_memcpy( msgPtr, buf, len ); ; Setup parameters for call to function osal_memcpy MOV ?V2,#0x0 MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_THREE CFI CFA_XSP16 add(XSP16, 19) MOV R4,?V3 MOV R5,#0x0 LCALL `??osal_memcpy::?relay`; Banked call to: osal_memcpy MOV A,#0x3 LCALL ?DEALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 16) // 1961 // 1962 msgPtr->event = cmd; ??ZDApp_SendMsg_1: MOV DPL,R6 MOV DPH,R7 MOV A,?V6 MOVX @DPTR,A // 1963 osal_msg_send( taskID, (uint8 *)msgPtr ); ; Setup parameters for call to function osal_msg_send MOV A,R6 MOV R2,A MOV A,R7 MOV R3,A MOV R1,?V7 LCALL `??osal_msg_send::?relay`; Banked call to: osal_msg_send // 1964 } // 1965 } ??ZDApp_SendMsg_0: MOV R7,#0x8 LJMP ?BANKED_LEAVE_XDATA CFI EndBlock cfiBlock114 // 1966 // 1967 /********************************************************************* // 1968 * Call Back Functions from NWK - API // 1969 */ // 1970 // 1971 /********************************************************************* // 1972 * @fn ZDO_NetworkDiscoveryConfirmCB // 1973 * // 1974 * @brief This function returns a choice of PAN to join. // 1975 * // 1976 * @param status - return status of the nwk discovery confirm // 1977 * // 1978 * @return ZStatus_t // 1979 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 1980 ZStatus_t ZDO_NetworkDiscoveryConfirmCB(uint8 status) ZDO_NetworkDiscoveryConfirmCB: CFI Block cfiBlock115 Using cfiCommon0 CFI Function ZDO_NetworkDiscoveryConfirmCB CODE // 1981 { FUNCALL ZDO_NetworkDiscoveryConfirmCB, ZDApp_SendMsg LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 3, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 3, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC PUSH DPL CFI DPL0 Frame(CFA_SP, 4) CFI CFA_SP SP+-4 PUSH DPH CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-5 ; Saved register size: 2 ; Auto size: 3 MOV A,#-0x3 LCALL ?ALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 3) MOV A,R1 MOV DPL,?XSP + 0 MOV DPH,?XSP + 1 MOVX @DPTR,A // 1982 osal_event_hdr_t msg; // 1983 // 1984 // If Scan is initiated by ZDO_MGMT_NWK_DISC_REQ // 1985 // Send ZDO_MGMT_NWK_DISC_RSP back // 1986 #if defined ( ZDO_MGMT_NWKDISC_RESPONSE ) // 1987 if ( zdappMgmtNwkDiscReqInProgress ) // 1988 { // 1989 zdappMgmtNwkDiscReqInProgress = false; // 1990 ZDO_FinishProcessingMgmtNwkDiscReq(); // 1991 } // 1992 else // 1993 #endif // 1994 { // 1995 // Pass the confirm to another task if it registers the callback // 1996 // Otherwise, pass the confirm to ZDApp. // 1997 if (zdoCBFunc[ZDO_NWK_DISCOVERY_CNF_CBID] != NULL ) MOV DPTR,#zdoCBFunc + 4 LCALL ?Subroutine14 & 0xFFFF ??CrossCallReturnLabel_9: JZ ??ZDO_NetworkDiscoveryConfirmCB_0 // 1998 { // 1999 zdoCBFunc[ZDO_NWK_DISCOVERY_CNF_CBID]( (void*)&status ); ; Setup parameters for indirect call MOV R2,?XSP + 0 MOV R3,?XSP + 1 LCALL ??Subroutine57_0 & 0xFFFF // 2000 } ??CrossCallReturnLabel_95: LCALL ?CALL_IND SJMP ??CrossCallReturnLabel_26 // 2001 else // 2002 { // 2003 // Otherwise, send scan confirm to ZDApp task to proceed // 2004 msg.status = ZDO_SUCCESS; ??ZDO_NetworkDiscoveryConfirmCB_0: MOV A,#0x2 LCALL ?XSTACK_DISP0_8 CLR A MOVX @DPTR,A // 2005 ZDApp_SendMsg( ZDAppTaskID, ZDO_NWK_DISC_CNF, sizeof(osal_event_hdr_t), (uint8 *)&msg ); ; Setup parameters for call to function ZDApp_SendMsg INC A LCALL ?XSTACK_DISP102_8 MOV R3,#0x2 MOV R2,#0x1 LCALL ?Subroutine24 & 0xFFFF // 2006 } // 2007 } // 2008 return (ZSuccess); ??CrossCallReturnLabel_26: MOV R1,#0x0 MOV A,#0x3 LCALL ?DEALLOC_XSTACK8 CFI EndBlock cfiBlock115 REQUIRE ?Subroutine3 ; // Fall through to label ?Subroutine3 // 2009 } // ZDO_NetworkDiscoveryConfirmCB RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine3: CFI Block cfiBlock116 Using cfiCommon0 CFI NoFunction CFI CFA_SP SP+-5 CFI DPL0 Frame(CFA_SP, 4) CFI DPH0 Frame(CFA_SP, 5) POP DPH CFI CFA_SP SP+-4 CFI DPH0 SameValue POP DPL CFI CFA_SP SP+-3 CFI DPL0 SameValue LJMP ?BRET CFI EndBlock cfiBlock116 // 2010 // 2011 /********************************************************************* // 2012 * @fn ZDApp_NwkDescListProcessing // 2013 * // 2014 * @brief This function process the network discovery result and select // 2015 * a parent device to join itself. // 2016 * // 2017 * @param none // 2018 * // 2019 * @return ZStatus_t // 2020 */ // 2021 #define STACK_PROFILE_MAX 2 RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2022 networkDesc_t* ZDApp_NwkDescListProcessing(void) ZDApp_NwkDescListProcessing: CFI Block cfiBlock117 Using cfiCommon0 CFI Function ZDApp_NwkDescListProcessing CODE // 2023 { FUNCALL ZDApp_NwkDescListProcessing, nwk_getNwkDescList LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 14, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_NwkDescListProcessing, nwk_getNwkDescList LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 14, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_NwkDescListProcessing, nwk_ExtPANIDValid LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 14, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_NwkDescListProcessing, sAddrExtCmp LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 14, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 REQUIRE ?V2 REQUIRE ?V3 REQUIRE ?V4 REQUIRE ?V5 MOV A,#-0xe LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 14) ; Saved register size: 14 ; Auto size: 0 // 2024 networkDesc_t *pNwkDesc; // 2025 uint8 i, ResultCount = 0; MOV ?V3,#0x0 // 2026 uint8 stackProfile; // 2027 uint8 stackProfilePro; // 2028 uint8 selected; // 2029 // 2030 // Count the number of nwk descriptors in the list // 2031 pNwkDesc = nwk_getNwkDescList(); ; Setup parameters for call to function nwk_getNwkDescList LCALL `??nwk_getNwkDescList::?relay`; Banked call to: nwk_getNwkDescList MOV ?V0,R2 MOV ?V1,R3 MOV R6,?V0 MOV R7,?V1 SJMP ??CrossCallReturnLabel_91 // 2032 while (pNwkDesc) // 2033 { // 2034 ResultCount++; ??ZDApp_NwkDescListProcessing_0: INC ?V3 // 2035 pNwkDesc = pNwkDesc->nextDesc; LCALL ?Subroutine20 & 0xFFFF // 2036 } ??CrossCallReturnLabel_91: MOV A,R6 ORL A,R7 JNZ ??ZDApp_NwkDescListProcessing_0 // 2037 // 2038 // process discovery results // 2039 stackProfilePro = FALSE; MOV ?V0,#0x0 // 2040 selected = FALSE; // 2041 // 2042 // 2043 for ( stackProfile = 0; stackProfile < STACK_PROFILE_MAX; stackProfile++ ) MOV ?V2,#0x0 // 2044 { // 2045 pNwkDesc = nwk_getNwkDescList(); ??ZDApp_NwkDescListProcessing_1: ; Setup parameters for call to function nwk_getNwkDescList LCALL `??nwk_getNwkDescList::?relay`; Banked call to: nwk_getNwkDescList MOV ?V4,R2 MOV ?V5,R3 MOV R6,?V4 MOV R7,?V5 // 2046 for ( i = 0; i < ResultCount; i++, pNwkDesc = pNwkDesc->nextDesc ) MOV ?V1,#0x0 SJMP ??CrossCallReturnLabel_92 // 2047 { // 2048 if ( zgConfigPANID != 0xFFFF ) // 2049 { // 2050 // PAN Id is preconfigured. check if it matches // 2051 if ( pNwkDesc->panId != zgConfigPANID ) // 2052 continue; // 2053 } // 2054 // 2055 if ( nwk_ExtPANIDValid( ZDO_UseExtendedPANID) == true ) // 2056 { // 2057 // If the extended Pan ID is commissioned to a non zero value // 2058 // Only join the Pan that has match EPID // 2059 if ( osal_ExtAddrEqual( ZDO_UseExtendedPANID, pNwkDesc->extendedPANID) == false ) // 2060 continue; // 2061 // 2062 } // 2063 // 2064 // check that network is allowing joining // 2065 if ( ZSTACK_ROUTER_BUILD ) // 2066 { // 2067 if ( stackProfilePro == FALSE ) // 2068 { // 2069 if ( !pNwkDesc->routerCapacity ) // 2070 { // 2071 continue; // 2072 } // 2073 } // 2074 else // 2075 { // 2076 if ( !pNwkDesc->deviceCapacity ) // 2077 { // 2078 continue; // 2079 } // 2080 } // 2081 } // 2082 else if ( ZSTACK_END_DEVICE_BUILD ) // 2083 { // 2084 if ( !pNwkDesc->deviceCapacity ) // 2085 { // 2086 continue; // 2087 } // 2088 } // 2089 // 2090 // check version of zigbee protocol // 2091 if ( pNwkDesc->version != _NIB.nwkProtocolVersion ) // 2092 continue; // 2093 // 2094 // check version of stack profile // 2095 if ( pNwkDesc->stackProfile != zgStackProfile ) // 2096 { // 2097 if ( ((zgStackProfile == HOME_CONTROLS) && (pNwkDesc->stackProfile == ZIGBEEPRO_PROFILE)) // 2098 || ((zgStackProfile == ZIGBEEPRO_PROFILE) && (pNwkDesc->stackProfile == HOME_CONTROLS)) ) ??ZDApp_NwkDescListProcessing_2: MOVX A,@DPTR XRL A,#0x2 JNZ ??ZDApp_NwkDescListProcessing_3 MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR MOVX A,@DPTR XRL A,#0x1 JNZ ??ZDApp_NwkDescListProcessing_3 // 2099 { // 2100 stackProfilePro = TRUE; ??ZDApp_NwkDescListProcessing_4: MOV ?V0,#0x1 // 2101 } // 2102 // 2103 if ( stackProfile == 0 ) ??ZDApp_NwkDescListProcessing_3: MOV A,?V2 JZ $+5 LJMP ??ZDApp_NwkDescListProcessing_5 & 0xFFFF ??ZDApp_NwkDescListProcessing_6: INC ?V1 LCALL ?Subroutine20 & 0xFFFF ??CrossCallReturnLabel_92: MOV A,?V1 CLR C SUBB A,?V3 JC $+5 LJMP ??ZDApp_NwkDescListProcessing_7 & 0xFFFF MOV DPTR,#zgConfigPANID MOVX A,@DPTR CPL A JNZ ??ZDApp_NwkDescListProcessing_8 INC DPTR MOVX A,@DPTR CPL A ??ZDApp_NwkDescListProcessing_8: JZ ??ZDApp_NwkDescListProcessing_9 LCALL ?Subroutine18 & 0xFFFF ??CrossCallReturnLabel_86: MOV DPTR,#zgConfigPANID MOVX A,@DPTR XRL A,R0 JNZ ??ZDApp_NwkDescListProcessing_10 INC DPTR MOVX A,@DPTR XRL A,R1 ??ZDApp_NwkDescListProcessing_10: JNZ ??ZDApp_NwkDescListProcessing_6 ??ZDApp_NwkDescListProcessing_9: ; Setup parameters for call to function nwk_ExtPANIDValid MOV R2,#ZDO_UseExtendedPANID & 0xff MOV R3,#(ZDO_UseExtendedPANID >> 8) & 0xff LCALL `??nwk_ExtPANIDValid::?relay`; Banked call to: nwk_ExtPANIDValid MOV A,R1 XRL A,#0x1 JNZ ??ZDApp_NwkDescListProcessing_11 ; Setup parameters for call to function sAddrExtCmp MOV A,R6 ADD A,#0xb MOV R4,A CLR A ADDC A,R7 MOV R5,A MOV R2,#ZDO_UseExtendedPANID & 0xff MOV R3,#(ZDO_UseExtendedPANID >> 8) & 0xff LCALL `??sAddrExtCmp::?relay`; Banked call to: sAddrExtCmp MOV A,R1 JZ ??ZDApp_NwkDescListProcessing_6 ??ZDApp_NwkDescListProcessing_11: MOV A,?V0 MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR INC DPTR JNZ ??ZDApp_NwkDescListProcessing_12 MOVX A,@DPTR JNZ ??ZDApp_NwkDescListProcessing_13 SJMP ??ZDApp_NwkDescListProcessing_6 ??ZDApp_NwkDescListProcessing_12: INC DPTR MOVX A,@DPTR JZ ??ZDApp_NwkDescListProcessing_6 ??ZDApp_NwkDescListProcessing_13: MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR MOVX A,@DPTR MOV R0,A MOV DPTR,#_NIB + 17 MOVX A,@DPTR XRL A,R0 JNZ ??ZDApp_NwkDescListProcessing_6 MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR MOVX A,@DPTR MOV R0,A MOV DPTR,#zgStackProfile MOVX A,@DPTR XRL A,R0 JZ ??ZDApp_NwkDescListProcessing_5 MOVX A,@DPTR XRL A,#0x1 JZ $+5 LJMP ??ZDApp_NwkDescListProcessing_2 & 0xFFFF MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR MOVX A,@DPTR XRL A,#0x2 JZ $+5 LJMP ??ZDApp_NwkDescListProcessing_3 & 0xFFFF LJMP ??ZDApp_NwkDescListProcessing_4 & 0xFFFF // 2104 { // 2105 continue; // 2106 } // 2107 } // 2108 // 2109 break; // 2110 } // 2111 // 2112 if (i < ResultCount) // 2113 { // 2114 selected = TRUE; // 2115 break; // 2116 } // 2117 // 2118 // break if selected or stack profile pro wasn't found // 2119 if ( (selected == TRUE) || (stackProfilePro == FALSE) ) ??ZDApp_NwkDescListProcessing_7: MOV A,?V0 JZ ??ZDApp_NwkDescListProcessing_14 // 2120 { // 2121 break; // 2122 } // 2123 } INC ?V2 MOV A,?V2 CLR C SUBB A,#0x2 JNC $+5 LJMP ??ZDApp_NwkDescListProcessing_1 & 0xFFFF // 2124 // 2125 if ( i == ResultCount ) ??ZDApp_NwkDescListProcessing_14: MOV A,?V3 XRL A,?V1 JNZ ??ZDApp_NwkDescListProcessing_5 // 2126 { // 2127 return (NULL); // couldn't find appropriate PAN to join ! MOV R2,#0x0 MOV R3,#0x0 SJMP ??ZDApp_NwkDescListProcessing_15 // 2128 } // 2129 else // 2130 { // 2131 return (pNwkDesc); ??ZDApp_NwkDescListProcessing_5: MOV A,R6 MOV R2,A MOV A,R7 MOV R3,A // 2132 } ??ZDApp_NwkDescListProcessing_15: CFI EndBlock cfiBlock117 REQUIRE ?Subroutine5 ; // Fall through to label ?Subroutine5 // 2133 }// ZDApp_NwkDescListProcessing() RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine5: CFI Block cfiBlock118 Using cfiCommon0 CFI NoFunction CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 14) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) MOV R7,#0x6 LJMP ?BANKED_LEAVE_XDATA CFI EndBlock cfiBlock118 // 2134 // 2135 /********************************************************************* // 2136 * @fn ZDO_NetworkFormationConfirmCB // 2137 * // 2138 * @brief This function reports the results of the request to // 2139 * initialize a coordinator in a network. // 2140 * // 2141 * @param Status - Result of NLME_NetworkFormationRequest() // 2142 * // 2143 * @return none // 2144 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2145 void ZDO_NetworkFormationConfirmCB( ZStatus_t Status ) ZDO_NetworkFormationConfirmCB: CFI Block cfiBlock119 Using cfiCommon0 CFI Function ZDO_NetworkFormationConfirmCB CODE // 2146 { FUNCALL ZDO_NetworkFormationConfirmCB, osal_set_event LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC MOV A,#-0x9 LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 9) ; Saved register size: 9 ; Auto size: 0 MOV A,R1 // 2147 nwkStatus = (byte)Status; MOV DPTR,#nwkStatus MOVX @DPTR,A // 2148 // 2149 if ( Status == ZSUCCESS ) JNZ ??ZDO_NetworkFormationConfirmCB_0 // 2150 { // 2151 #if 0 // 2152 // LED on shows Coordinator started // 2153 HalLedSet ( HAL_LED_3, HAL_LED_MODE_ON ); // 2154 // 2155 // LED off forgets HOLD_AUTO_START // 2156 HalLedSet (HAL_LED_4, HAL_LED_MODE_OFF); // 2157 #endif // 2158 #if defined ( ZBIT ) // 2159 SIM_SetColor(0xd0ffd0); // 2160 #endif // 2161 // 2162 if ( devState == DEV_HOLD ) MOV DPTR,#devState MOVX A,@DPTR JNZ ??ZDO_NetworkFormationConfirmCB_0 // 2163 { // 2164 // Began with HOLD_AUTO_START // 2165 devState = DEV_COORD_STARTING; MOV A,#0x8 MOVX @DPTR,A // 2166 } // 2167 } // 2168 #if defined(BLINK_LEDS) // 2169 else // 2170 { // 2171 #if 0 // 2172 HalLedSet ( HAL_LED_3, HAL_LED_MODE_FLASH ); // Flash LED to show failure // 2173 #endif // 2174 } // 2175 #endif // 2176 // 2177 osal_set_event( ZDAppTaskID, ZDO_NETWORK_START ); ??ZDO_NetworkFormationConfirmCB_0: ; Setup parameters for call to function osal_set_event MOV R2,#0x2 LJMP ?Subroutine0 & 0xFFFF // 2178 } CFI EndBlock cfiBlock119 // 2179 // 2180 /**************************************************************************** // 2181 * @fn ZDApp_beaconIndProcessing // 2182 * // 2183 * @brief This function processes the incoming beacon indication. // 2184 * // 2185 * When another task (MT or App) is registered to process // 2186 * beacon indication themselves, this function will parse the // 2187 * beacon payload and pass the beacon descriptor to that task // 2188 * If no other tasks registered, this function will process // 2189 * the beacon payload and generate the network descriptor link // 2190 * list. // 2191 * // 2192 * @param // 2193 * // 2194 * @return none // 2195 * // 2196 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2197 void ZDO_beaconNotifyIndCB( NLME_beaconInd_t *pBeacon ) ZDO_beaconNotifyIndCB: CFI Block cfiBlock120 Using cfiCommon0 CFI Function ZDO_beaconNotifyIndCB CODE // 2198 { FUNCALL ZDO_beaconNotifyIndCB, osal_mem_alloc LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 14, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDO_beaconNotifyIndCB, osal_memset LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 14, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDO_beaconNotifyIndCB, sAddrExtCpy LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 14, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDO_beaconNotifyIndCB, osal_memset LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 14, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 REQUIRE ?V2 REQUIRE ?V3 REQUIRE ?V4 REQUIRE ?V5 MOV A,#-0xe LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 14) ; Saved register size: 14 ; Auto size: 0 MOV ?V0,R2 MOV ?V1,R3 // 2199 // Pass the beacon Indication to another task if it registers the callback // 2200 // Otherwise, process the beacon notification here. // 2201 if (zdoCBFunc[ZDO_BEACON_NOTIFY_IND_CBID] != NULL ) MOV DPTR,#zdoCBFunc + 6 LCALL ?Subroutine14 & 0xFFFF ??CrossCallReturnLabel_10: JZ ??ZDO_beaconNotifyIndCB_0 // 2202 { // 2203 zdoCBFunc[ZDO_BEACON_NOTIFY_IND_CBID]( (void*)pBeacon ); ; Setup parameters for indirect call LCALL ??Subroutine57_0 & 0xFFFF // 2204 } ??CrossCallReturnLabel_96: LCALL ?CALL_IND LJMP ??ZDO_beaconNotifyIndCB_1 & 0xFFFF // 2205 else // 2206 { // 2207 networkDesc_t *pNwkDesc; // 2208 networkDesc_t *pLastNwkDesc; // 2209 uint8 found = false; // 2210 // 2211 // Add the network to the Network Descriptor List // 2212 pNwkDesc = NwkDescList; ??ZDO_beaconNotifyIndCB_0: MOV DPTR,#NwkDescList LCALL ??Subroutine54_0 & 0xFFFF // 2213 pLastNwkDesc = NwkDescList; ??CrossCallReturnLabel_88: MOV DPTR,#NwkDescList MOVX A,@DPTR MOV ?V2,A INC DPTR MOVX A,@DPTR MOV ?V3,A SJMP ??CrossCallReturnLabel_93 // 2214 while (pNwkDesc) // 2215 { // 2216 if ((pNwkDesc->panId == pBeacon->panID) && // 2217 (pNwkDesc->logicalChannel == pBeacon->logicalChannel)) ??ZDO_beaconNotifyIndCB_2: LCALL ?Subroutine18 & 0xFFFF ??CrossCallReturnLabel_87: MOV DPL,R2 MOV DPH,R3 INC DPTR INC DPTR MOVX A,@DPTR XRL A,R0 JNZ ??ZDO_beaconNotifyIndCB_3 INC DPTR MOVX A,@DPTR XRL A,R1 ??ZDO_beaconNotifyIndCB_3: JNZ ??ZDO_beaconNotifyIndCB_4 MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR MOVX A,@DPTR MOV R0,A MOV DPL,R2 MOV DPH,R3 INC DPTR INC DPTR INC DPTR INC DPTR MOVX A,@DPTR XRL A,R0 JZ ??ZDO_beaconNotifyIndCB_5 // 2218 { // 2219 found = true; // 2220 break; // 2221 } // 2222 pLastNwkDesc = pNwkDesc; ??ZDO_beaconNotifyIndCB_4: MOV ?V2,R6 MOV ?V3,R7 // 2223 pNwkDesc = pNwkDesc->nextDesc; LCALL ?Subroutine20 & 0xFFFF // 2224 } ??CrossCallReturnLabel_93: MOV A,R6 ORL A,R7 JNZ ??ZDO_beaconNotifyIndCB_2 // 2225 // 2226 // If no existing descriptor found, make a new one and add to the list // 2227 if (found == false) // 2228 { // 2229 pNwkDesc = osal_mem_alloc( sizeof(networkDesc_t) ); ; Setup parameters for call to function osal_mem_alloc MOV R2,#0x16 MOV R3,#0x0 LCALL `??osal_mem_alloc::?relay`; Banked call to: osal_mem_alloc MOV ?V4,R2 MOV ?V5,R3 MOV R6,?V4 MOV R7,?V5 // 2230 if ( !pNwkDesc ) MOV A,R2 ORL A,R7 JNZ $+5 LJMP ??ZDO_beaconNotifyIndCB_1 & 0xFFFF // 2231 { // 2232 // Memory alloc failed, discard this beacon // 2233 return; // 2234 } // 2235 // 2236 // Clear the network descriptor // 2237 osal_memset( pNwkDesc, 0, sizeof(networkDesc_t) ); ; Setup parameters for call to function osal_memset MOV R4,#0x16 MOV R5,#0x0 MOV R1,#0x0 LCALL `??osal_memset::?relay`; Banked call to: osal_memset // 2238 // 2239 // Initialize the descriptor // 2240 pNwkDesc->chosenRouter = INVALID_NODE_ADDR; MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR MOV A,#-0x2 MOVX @DPTR,A INC DPTR INC A MOVX @DPTR,A // 2241 pNwkDesc->chosenRouterDepth = 0xFF; MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR MOVX @DPTR,A // 2242 // 2243 // Save new entry into the descriptor list // 2244 if ( !NwkDescList ) MOV DPTR,#NwkDescList LCALL ?Subroutine14 & 0xFFFF ??CrossCallReturnLabel_11: JNZ ??ZDO_beaconNotifyIndCB_6 // 2245 { // 2246 NwkDescList = pNwkDesc; MOV DPTR,#NwkDescList SJMP ??ZDO_beaconNotifyIndCB_7 // 2247 } // 2248 else // 2249 { // 2250 pLastNwkDesc->nextDesc = pNwkDesc; ??ZDO_beaconNotifyIndCB_6: MOV A,?V2 ADD A,#0x14 MOV DPL,A CLR A ADDC A,?V3 MOV DPH,A ??ZDO_beaconNotifyIndCB_7: MOV A,R6 MOVX @DPTR,A INC DPTR MOV A,R7 MOVX @DPTR,A // 2251 } // 2252 } // 2253 // 2254 // Update the descriptor with the incoming beacon // 2255 pNwkDesc->stackProfile = pBeacon->stackProfile; ??ZDO_beaconNotifyIndCB_5: MOV DPL,?V0 MOV DPH,?V1 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR LCALL ?Subroutine25 & 0xFFFF ??CrossCallReturnLabel_29: INC DPTR MOVX @DPTR,A // 2256 pNwkDesc->version = pBeacon->protocolVersion; MOV A,?V0 ADD A,#0x8 MOV R0,A CLR A ADDC A,?V1 MOV R1,A MOV DPL,R0 MOV DPH,A LCALL ?Subroutine25 & 0xFFFF ??CrossCallReturnLabel_30: LCALL ?Subroutine11 & 0xFFFF // 2257 pNwkDesc->logicalChannel = pBeacon->logicalChannel; ??CrossCallReturnLabel_2: MOVX A,@DPTR MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR LCALL ?Subroutine36 & 0xFFFF // 2258 pNwkDesc->panId = pBeacon->panID; ??CrossCallReturnLabel_47: LCALL ?Subroutine38 & 0xFFFF ??CrossCallReturnLabel_53: MOV DPL,R6 MOV DPH,R7 LCALL ??Subroutine60_0 & 0xFFFF // 2259 pNwkDesc->updateId = pBeacon->updateID; ??CrossCallReturnLabel_118: MOV A,?V0 ADD A,#0xc MOV DPL,A CLR A ADDC A,?V1 MOV DPH,A MOVX A,@DPTR PUSH A CFI CFA_SP SP+-1 MOV A,R6 ADD A,#0x13 MOV DPL,A CLR A ADDC A,R7 MOV DPH,A POP A CFI CFA_SP SP+0 MOVX @DPTR,A // 2260 // 2261 // Save the extended PAN ID from the beacon payload only if 1.1 version network // 2262 if ( pBeacon->protocolVersion != ZB_PROT_V1_0 ) MOV DPL,R0 MOV DPH,R1 MOVX A,@DPTR XRL A,#0x1 JZ ??ZDO_beaconNotifyIndCB_8 // 2263 { // 2264 osal_cpyExtAddr( pNwkDesc->extendedPANID, pBeacon->extendedPanID ); ; Setup parameters for call to function sAddrExtCpy MOV A,?V0 ADD A,#0xd MOV R4,A CLR A ADDC A,?V1 LCALL ?Subroutine35 & 0xFFFF // 2265 } ??CrossCallReturnLabel_72: LCALL `??sAddrExtCpy::?relay`; Banked call to: sAddrExtCpy SJMP ??ZDO_beaconNotifyIndCB_9 // 2266 else // 2267 { // 2268 osal_memset( pNwkDesc->extendedPANID, 0xFF, Z_EXTADDR_LEN ); ??ZDO_beaconNotifyIndCB_8: ; Setup parameters for call to function osal_memset MOV R4,#0x8 MOV R5,#0x0 MOV R1,#-0x1 LCALL ??Subroutine47_0 & 0xFFFF // 2269 } ??CrossCallReturnLabel_70: LCALL `??osal_memset::?relay`; Banked call to: osal_memset // 2270 // 2271 // check if this device is a better choice to join... // 2272 // ...dont bother checking assocPermit flag is doing a rejoin // 2273 if ( ( pBeacon->LQI > gMIN_TREE_LINK_COST ) && // 2274 ( ( pBeacon->permitJoining == TRUE ) || ( _tmpRejoinState ) ) ) ??ZDO_beaconNotifyIndCB_9: MOV DPL,?V0 MOV DPH,?V1 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR MOVX A,@DPTR MOV R0,A MOV DPTR,#gMIN_TREE_LINK_COST MOVX A,@DPTR CLR C SUBB A,R0 JC $+5 LJMP ??ZDO_beaconNotifyIndCB_1 & 0xFFFF MOV DPL,?V0 MOV DPH,?V1 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR MOVX A,@DPTR XRL A,#0x1 JZ ??ZDO_beaconNotifyIndCB_10 MOV DPTR,#_tmpRejoinState MOVX A,@DPTR JNZ $+5 LJMP ??ZDO_beaconNotifyIndCB_1 & 0xFFFF // 2275 { // 2276 uint8 selected = FALSE; // 2277 uint8 capacity = FALSE; // 2278 // 2279 if ( _NIB.nwkAddrAlloc == NWK_ADDRESSING_STOCHASTIC ) ??ZDO_beaconNotifyIndCB_10: MOV DPTR,#_NIB + 96 MOVX A,@DPTR XRL A,#0x2 JNZ ??ZDO_beaconNotifyIndCB_11 // 2280 { // 2281 if ( ((pBeacon->LQI > pNwkDesc->chosenRouterLinkQuality) && // 2282 (pBeacon->depth < MAX_NODE_DEPTH)) || // 2283 ((pBeacon->LQI == pNwkDesc->chosenRouterLinkQuality) && // 2284 (pBeacon->depth < pNwkDesc->chosenRouterDepth)) ) MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR MOVX A,@DPTR CLR C SUBB A,R0 JNC ??ZDO_beaconNotifyIndCB_12 LCALL ?Subroutine34 & 0xFFFF // 2285 { // 2286 selected = TRUE; // 2287 } // 2288 } ??CrossCallReturnLabel_45: SUBB A,#0x14 JC ??ZDO_beaconNotifyIndCB_13 SJMP ??ZDO_beaconNotifyIndCB_14 ??ZDO_beaconNotifyIndCB_12: MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR MOVX A,@DPTR XRL A,R0 JNZ ??ZDO_beaconNotifyIndCB_14 // 2289 else // 2290 { // 2291 if ( pBeacon->depth < pNwkDesc->chosenRouterDepth ) ??ZDO_beaconNotifyIndCB_11: MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR MOVX A,@DPTR MOV R0,A LCALL ?Subroutine34 & 0xFFFF ??CrossCallReturnLabel_46: SUBB A,R0 JNC ??ZDO_beaconNotifyIndCB_14 // 2292 { // 2293 selected = TRUE; // 2294 } // 2295 } // 2296 // 2297 if ( ZSTACK_ROUTER_BUILD ) // 2298 { // 2299 capacity = pBeacon->routerCapacity; // 2300 } // 2301 else if ( ZSTACK_END_DEVICE_BUILD ) // 2302 { // 2303 capacity = pBeacon->deviceCapacity; // 2304 } // 2305 // 2306 if ( (capacity) && (selected) ) ??ZDO_beaconNotifyIndCB_13: MOV DPL,?V0 MOV DPH,?V1 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR MOVX A,@DPTR JZ ??ZDO_beaconNotifyIndCB_14 // 2307 { // 2308 // this is the new chosen router for joining... // 2309 pNwkDesc->chosenRouter = pBeacon->sourceAddr; MOV DPL,?V0 MOV DPH,?V1 LCALL ??Subroutine53_0 & 0xFFFF ??CrossCallReturnLabel_82: MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR MOV A,R0 MOVX @DPTR,A INC DPTR MOV A,R1 LCALL ?Subroutine11 & 0xFFFF // 2310 pNwkDesc->chosenRouterLinkQuality = pBeacon->LQI; ??CrossCallReturnLabel_3: INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR LCALL ?Subroutine19 & 0xFFFF ??CrossCallReturnLabel_18: MOVX @DPTR,A // 2311 pNwkDesc->chosenRouterDepth = pBeacon->depth; LCALL ?Subroutine40 & 0xFFFF // 2312 } ??CrossCallReturnLabel_57: LCALL ?Subroutine19 & 0xFFFF ??CrossCallReturnLabel_19: INC DPTR MOVX @DPTR,A // 2313 // 2314 if ( pBeacon->deviceCapacity ) ??ZDO_beaconNotifyIndCB_14: MOV DPL,?V0 MOV DPH,?V1 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR MOVX A,@DPTR JZ ??ZDO_beaconNotifyIndCB_15 // 2315 pNwkDesc->deviceCapacity = 1; MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR INC DPTR INC DPTR MOV A,#0x1 MOVX @DPTR,A // 2316 // 2317 if ( pBeacon->routerCapacity ) ??ZDO_beaconNotifyIndCB_15: MOV DPL,?V0 MOV DPH,?V1 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR MOVX A,@DPTR JZ ??ZDO_beaconNotifyIndCB_1 // 2318 pNwkDesc->routerCapacity = 1; MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR INC DPTR MOV A,#0x1 MOVX @DPTR,A // 2319 } // 2320 } // 2321 } ??ZDO_beaconNotifyIndCB_1: LJMP ?Subroutine5 & 0xFFFF CFI EndBlock cfiBlock120 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine38: CFI Block cfiCond121 Using cfiCommon0 CFI Function ZDApp_DeviceAuthEvt CFI Conditional ??CrossCallReturnLabel_51 CFI DPL0 Frame(CFA_SP, 4) CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-7 CFI Block cfiCond122 Using cfiCommon0 CFI (cfiCond122) Function ZDApp_ProcessMsgCBs CFI (cfiCond122) Conditional ??CrossCallReturnLabel_52 CFI (cfiCond122) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond122) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond122) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond122) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond122) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond122) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond122) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond122) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond122) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond122) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond122) CFA_SP SP+-2 CFI (cfiCond122) CFA_XSP16 add(XSP16, 31) CFI Block cfiCond123 Using cfiCommon0 CFI (cfiCond123) Function ZDO_beaconNotifyIndCB CFI (cfiCond123) Conditional ??CrossCallReturnLabel_53 CFI (cfiCond123) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond123) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond123) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond123) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond123) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond123) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond123) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond123) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond123) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond123) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond123) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond123) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond123) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond123) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond123) CFA_SP SP+-2 CFI (cfiCond123) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond124 Using cfiCommon0 CFI (cfiCond124) Function ZDO_LeaveCnf CFI (cfiCond124) Conditional ??CrossCallReturnLabel_54, ??CrossCallReturnLabel_16 CFI (cfiCond124) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond124) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond124) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond124) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond124) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond124) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond124) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond124) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond124) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond124) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond124) CFA_SP SP+-4 CFI (cfiCond124) CFA_XSP16 add(XSP16, 10) CFI Block cfiCond125 Using cfiCommon0 CFI (cfiCond125) Function ZDO_LeaveInd CFI (cfiCond125) Conditional ??CrossCallReturnLabel_54, ??CrossCallReturnLabel_17 CFI (cfiCond125) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond125) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond125) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond125) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond125) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond125) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond125) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond125) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond125) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond125) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond125) CFA_SP SP+-4 CFI (cfiCond125) CFA_XSP16 add(XSP16, 12) CFI Block cfiPicker126 Using cfiCommon1 CFI (cfiPicker126) NoFunction CFI (cfiPicker126) Picker MOVX A,@DPTR MOV R2,A INC DPTR MOVX A,@DPTR MOV R3,A RET CFI EndBlock cfiCond121 CFI EndBlock cfiCond122 CFI EndBlock cfiCond123 CFI EndBlock cfiCond124 CFI EndBlock cfiCond125 CFI EndBlock cfiPicker126 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine34: CFI Block cfiCond127 Using cfiCommon0 CFI Function ZDO_beaconNotifyIndCB CFI Conditional ??CrossCallReturnLabel_45 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 14) CFI Block cfiCond128 Using cfiCommon0 CFI (cfiCond128) Function ZDO_beaconNotifyIndCB CFI (cfiCond128) Conditional ??CrossCallReturnLabel_46 CFI (cfiCond128) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond128) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond128) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond128) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond128) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond128) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond128) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond128) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond128) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond128) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond128) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond128) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond128) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond128) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond128) CFA_SP SP+-2 CFI (cfiCond128) CFA_XSP16 add(XSP16, 14) CFI Block cfiPicker129 Using cfiCommon1 CFI (cfiPicker129) NoFunction CFI (cfiPicker129) Picker LCALL ?Subroutine40 & 0xFFFF ??CrossCallReturnLabel_58: MOVX A,@DPTR CLR C RET CFI EndBlock cfiCond127 CFI EndBlock cfiCond128 CFI EndBlock cfiPicker129 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine40: CFI Block cfiCond130 Using cfiCommon0 CFI Function ZDO_beaconNotifyIndCB CFI Conditional ??CrossCallReturnLabel_57 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 14) CFI Block cfiCond131 Using cfiCommon0 CFI (cfiCond131) Function ZDO_beaconNotifyIndCB CFI (cfiCond131) Conditional ??CrossCallReturnLabel_58, ??CrossCallReturnLabel_45 CFI (cfiCond131) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond131) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond131) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond131) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond131) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond131) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond131) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond131) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond131) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond131) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond131) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond131) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond131) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond131) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond131) CFA_SP SP+-4 CFI (cfiCond131) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond132 Using cfiCommon0 CFI (cfiCond132) Function ZDO_beaconNotifyIndCB CFI (cfiCond132) Conditional ??CrossCallReturnLabel_58, ??CrossCallReturnLabel_46 CFI (cfiCond132) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond132) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond132) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond132) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond132) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond132) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond132) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond132) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond132) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond132) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond132) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond132) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond132) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond132) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond132) CFA_SP SP+-4 CFI (cfiCond132) CFA_XSP16 add(XSP16, 14) CFI Block cfiPicker133 Using cfiCommon1 CFI (cfiPicker133) NoFunction CFI (cfiPicker133) Picker MOV A,?V0 ADD A,#0xb MOV DPL,A CLR A ADDC A,?V1 MOV DPH,A RET CFI EndBlock cfiCond130 CFI EndBlock cfiCond131 CFI EndBlock cfiCond132 CFI EndBlock cfiPicker133 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine25: CFI Block cfiCond134 Using cfiCommon0 CFI Function ZDO_beaconNotifyIndCB CFI Conditional ??CrossCallReturnLabel_29 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 14) CFI Block cfiCond135 Using cfiCommon0 CFI (cfiCond135) Function ZDO_beaconNotifyIndCB CFI (cfiCond135) Conditional ??CrossCallReturnLabel_30 CFI (cfiCond135) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond135) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond135) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond135) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond135) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond135) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond135) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond135) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond135) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond135) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond135) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond135) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond135) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond135) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond135) CFA_SP SP+-2 CFI (cfiCond135) CFA_XSP16 add(XSP16, 14) CFI Block cfiPicker136 Using cfiCommon1 CFI (cfiPicker136) NoFunction CFI (cfiPicker136) Picker LCALL ?Subroutine37 & 0xFFFF ??CrossCallReturnLabel_50: RET CFI EndBlock cfiCond134 CFI EndBlock cfiCond135 CFI EndBlock cfiPicker136 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine37: CFI Block cfiCond137 Using cfiCommon0 CFI Function ZDO_beaconNotifyIndCB CFI Conditional ??CrossCallReturnLabel_50, ??CrossCallReturnLabel_29 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-4 CFI CFA_XSP16 add(XSP16, 14) CFI Block cfiCond138 Using cfiCommon0 CFI (cfiCond138) Function ZDO_beaconNotifyIndCB CFI (cfiCond138) Conditional ??CrossCallReturnLabel_50, ??CrossCallReturnLabel_30 CFI (cfiCond138) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond138) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond138) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond138) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond138) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond138) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond138) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond138) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond138) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond138) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond138) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond138) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond138) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond138) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond138) CFA_SP SP+-4 CFI (cfiCond138) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond139 Using cfiCommon0 CFI (cfiCond139) Function ZDO_beaconNotifyIndCB CFI (cfiCond139) Conditional ??CrossCallReturnLabel_49, ??CrossCallReturnLabel_18 CFI (cfiCond139) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond139) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond139) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond139) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond139) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond139) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond139) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond139) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond139) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond139) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond139) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond139) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond139) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond139) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond139) CFA_SP SP+-4 CFI (cfiCond139) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond140 Using cfiCommon0 CFI (cfiCond140) Function ZDO_beaconNotifyIndCB CFI (cfiCond140) Conditional ??CrossCallReturnLabel_49, ??CrossCallReturnLabel_19 CFI (cfiCond140) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond140) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond140) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond140) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond140) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond140) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond140) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond140) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond140) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond140) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond140) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond140) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond140) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond140) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond140) CFA_SP SP+-4 CFI (cfiCond140) CFA_XSP16 add(XSP16, 14) CFI Block cfiPicker141 Using cfiCommon1 CFI (cfiPicker141) NoFunction CFI (cfiPicker141) Picker MOVX A,@DPTR MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR RET CFI EndBlock cfiCond137 CFI EndBlock cfiCond138 CFI EndBlock cfiCond139 CFI EndBlock cfiCond140 CFI EndBlock cfiPicker141 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine19: CFI Block cfiCond142 Using cfiCommon0 CFI Function ZDO_beaconNotifyIndCB CFI Conditional ??CrossCallReturnLabel_18 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 14) CFI Block cfiCond143 Using cfiCommon0 CFI (cfiCond143) Function ZDO_beaconNotifyIndCB CFI (cfiCond143) Conditional ??CrossCallReturnLabel_19 CFI (cfiCond143) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond143) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond143) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond143) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond143) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond143) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond143) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond143) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond143) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond143) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond143) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond143) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond143) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond143) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond143) CFA_SP SP+-2 CFI (cfiCond143) CFA_XSP16 add(XSP16, 14) CFI Block cfiPicker144 Using cfiCommon1 CFI (cfiPicker144) NoFunction CFI (cfiPicker144) Picker LCALL ?Subroutine37 & 0xFFFF ??CrossCallReturnLabel_49: INC DPTR INC DPTR INC DPTR INC DPTR RET CFI EndBlock cfiCond142 CFI EndBlock cfiCond143 CFI EndBlock cfiPicker144 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine11: CFI Block cfiCond145 Using cfiCommon0 CFI Function ZDO_beaconNotifyIndCB CFI Conditional ??CrossCallReturnLabel_2 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 14) CFI Block cfiCond146 Using cfiCommon0 CFI (cfiCond146) Function ZDO_beaconNotifyIndCB CFI (cfiCond146) Conditional ??CrossCallReturnLabel_3 CFI (cfiCond146) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond146) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond146) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond146) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond146) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond146) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond146) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond146) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond146) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond146) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond146) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond146) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond146) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond146) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond146) CFA_SP SP+-2 CFI (cfiCond146) CFA_XSP16 add(XSP16, 14) CFI Block cfiPicker147 Using cfiCommon1 CFI (cfiPicker147) NoFunction CFI (cfiPicker147) Picker LCALL ?Subroutine36 & 0xFFFF ??CrossCallReturnLabel_48: INC DPTR INC DPTR RET CFI EndBlock cfiCond145 CFI EndBlock cfiCond146 CFI EndBlock cfiPicker147 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine36: CFI Block cfiCond148 Using cfiCommon0 CFI Function ZDO_beaconNotifyIndCB CFI Conditional ??CrossCallReturnLabel_47 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 14) CFI Block cfiCond149 Using cfiCommon0 CFI (cfiCond149) Function ZDO_beaconNotifyIndCB CFI (cfiCond149) Conditional ??CrossCallReturnLabel_48, ??CrossCallReturnLabel_2 CFI (cfiCond149) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond149) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond149) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond149) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond149) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond149) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond149) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond149) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond149) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond149) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond149) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond149) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond149) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond149) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond149) CFA_SP SP+-4 CFI (cfiCond149) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond150 Using cfiCommon0 CFI (cfiCond150) Function ZDO_beaconNotifyIndCB CFI (cfiCond150) Conditional ??CrossCallReturnLabel_48, ??CrossCallReturnLabel_3 CFI (cfiCond150) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond150) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond150) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond150) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond150) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond150) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond150) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond150) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond150) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond150) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond150) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond150) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond150) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond150) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond150) CFA_SP SP+-4 CFI (cfiCond150) CFA_XSP16 add(XSP16, 14) CFI Block cfiPicker151 Using cfiCommon1 CFI (cfiPicker151) NoFunction CFI (cfiPicker151) Picker MOVX @DPTR,A MOV DPL,?V0 MOV DPH,?V1 INC DPTR INC DPTR RET CFI EndBlock cfiCond148 CFI EndBlock cfiCond149 CFI EndBlock cfiCond150 CFI EndBlock cfiPicker151 // 2322 // 2323 /********************************************************************* // 2324 * @fn ZDO_StartRouterConfirmCB // 2325 * // 2326 * @brief This function reports the results of the request to // 2327 * start functioning as a router in a network. // 2328 * // 2329 * @param Status - Result of NLME_StartRouterRequest() // 2330 * // 2331 * @return none // 2332 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2333 void ZDO_StartRouterConfirmCB( ZStatus_t Status ) ZDO_StartRouterConfirmCB: CFI Block cfiBlock152 Using cfiCommon0 CFI Function ZDO_StartRouterConfirmCB CODE // 2334 { FUNCALL ZDO_StartRouterConfirmCB, osal_set_event LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC MOV A,#-0x9 LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 9) ; Saved register size: 9 ; Auto size: 0 MOV A,R1 // 2335 nwkStatus = (byte)Status; MOV DPTR,#nwkStatus MOVX @DPTR,A // 2336 // 2337 if ( Status == ZSUCCESS ) JNZ ??ZDO_StartRouterConfirmCB_0 // 2338 { // 2339 #if 0 // 2340 // LED on shows Router started // 2341 HalLedSet ( HAL_LED_3, HAL_LED_MODE_ON ); // 2342 // LED off forgets HOLD_AUTO_START // 2343 HalLedSet ( HAL_LED_4, HAL_LED_MODE_OFF); // 2344 #endif // 2345 if ( devState == DEV_HOLD ) MOV DPTR,#devState MOVX A,@DPTR JNZ ??ZDO_StartRouterConfirmCB_0 // 2346 { // 2347 // Began with HOLD_AUTO_START // 2348 devState = DEV_END_DEVICE; MOV A,#0x6 MOVX @DPTR,A // 2349 } // 2350 } // 2351 #if defined(BLINK_LEDS) // 2352 else // 2353 { // 2354 #if 0 // 2355 HalLedSet( HAL_LED_3, HAL_LED_MODE_FLASH ); // Flash LED to show failure // 2356 #endif // 2357 } // 2358 #endif // 2359 // 2360 osal_set_event( ZDAppTaskID, ZDO_ROUTER_START ); ??ZDO_StartRouterConfirmCB_0: ; Setup parameters for call to function osal_set_event MOV R2,#0x20 LJMP ?Subroutine0 & 0xFFFF // 2361 } CFI EndBlock cfiBlock152 // 2362 // 2363 /********************************************************************* // 2364 * @fn ZDO_JoinConfirmCB // 2365 * // 2366 * @brief This function allows the next hight layer to be notified // 2367 * of the results of its request to join itself or another // 2368 * device to a network. // 2369 * // 2370 * @param Status - Result of NLME_JoinRequest() // 2371 * // 2372 * @return none // 2373 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2374 void ZDO_JoinConfirmCB( uint16 PanId, ZStatus_t Status ) ZDO_JoinConfirmCB: CFI Block cfiBlock153 Using cfiCommon0 CFI Function ZDO_JoinConfirmCB CODE // 2375 { FUNCALL ZDO_JoinConfirmCB, ZDApp_SendMsg LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 14, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC MOV A,#-0x9 LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 9) ; Saved register size: 9 ; Auto size: 5 MOV A,#-0x5 LCALL ?ALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 14) MOV A,R1 MOV R6,A // 2376 (void)PanId; // remove if this parameter is used. // 2377 // 2378 nwkStatus = (byte)Status; MOV DPTR,#nwkStatus MOVX @DPTR,A // 2379 // 2380 if ( Status == ZSUCCESS ) JNZ ??ZDO_JoinConfirmCB_0 // 2381 { // 2382 #if 0 // 2383 // LED on shows device joined // 2384 HalLedSet ( HAL_LED_3, HAL_LED_MODE_ON ); // 2385 // LED off forgets HOLD_AUTO_START // 2386 HalLedSet ( HAL_LED_4, HAL_LED_MODE_OFF); // 2387 #endif // 2388 if ( (devState == DEV_HOLD) ) MOV DPTR,#devState MOVX A,@DPTR JNZ ??ZDO_JoinConfirmCB_0 // 2389 { // 2390 // Began with HOLD_AUTO_START // 2391 devState = DEV_NWK_JOINING; MOV A,#0x3 MOVX @DPTR,A // 2392 } // 2393 // 2394 if ( !ZG_SECURE_ENABLED ) // 2395 { // 2396 // Notify to save info into NV // 2397 ZDApp_NVUpdate(); // 2398 } // 2399 } // 2400 else // 2401 { // 2402 #if defined(BLINK_LEDS) // 2403 #if 0 // 2404 HalLedSet ( HAL_LED_3, HAL_LED_MODE_FLASH ); // Flash LED to show failure // 2405 #endif // 2406 #endif // 2407 } // 2408 // 2409 // Pass the join confirm to higher layer if callback registered // 2410 if (zdoCBFunc[ZDO_JOIN_CNF_CBID] != NULL ) ??ZDO_JoinConfirmCB_0: MOV DPTR,#zdoCBFunc + 8 LCALL ?Subroutine14 & 0xFFFF ??CrossCallReturnLabel_12: JZ ??ZDO_JoinConfirmCB_1 // 2411 { // 2412 zdoJoinCnf_t joinCnf; // 2413 // 2414 joinCnf.status = Status; MOV A,R6 MOV DPL,?XSP + 0 MOV DPH,?XSP + 1 MOVX @DPTR,A // 2415 joinCnf.deviceAddr = _NIB.nwkDevAddress; MOV DPTR,#_NIB + 20 LCALL ??Subroutine53_0 & 0xFFFF ??CrossCallReturnLabel_83: MOV A,#0x1 LCALL ?XSTACK_DISP0_8 MOV A,R0 MOVX @DPTR,A INC DPTR MOV A,R1 MOVX @DPTR,A // 2416 joinCnf.parentAddr = _NIB.nwkCoordAddress; MOV DPTR,#_NIB + 23 LCALL ??Subroutine53_0 & 0xFFFF // 2417 // 2418 zdoCBFunc[ZDO_JOIN_CNF_CBID]( (void*)&joinCnf ); // 2419 } ??CrossCallReturnLabel_84: MOV A,#0x3 LCALL ?XSTACK_DISP0_8 MOV A,R0 MOVX @DPTR,A INC DPTR MOV A,R1 LCALL ?Subroutine13 & 0xFFFF ??CrossCallReturnLabel_6: MOV DPTR,#zdoCBFunc + 8 LCALL ??Subroutine56_0 & 0xFFFF ??CrossCallReturnLabel_100: LCALL ?CALL_IND // 2420 // 2421 // Notify ZDApp // 2422 ZDApp_SendMsg( ZDAppTaskID, ZDO_NWK_JOIN_IND, sizeof(osal_event_hdr_t), (byte*)NULL ); ??ZDO_JoinConfirmCB_1: ; Setup parameters for call to function ZDApp_SendMsg MOV R4,#0x0 MOV R5,#0x0 MOV R3,#0x2 MOV R2,#0x2 LCALL ?Subroutine24 & 0xFFFF // 2423 // 2424 } ??CrossCallReturnLabel_27: CFI EndBlock cfiBlock153 REQUIRE ?Subroutine6 ; // Fall through to label ?Subroutine6 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine6: CFI Block cfiBlock154 Using cfiCommon0 CFI NoFunction CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 14) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) MOV A,#0x5 LCALL ?DEALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 9) LJMP ??Subroutine52_0 & 0xFFFF CFI EndBlock cfiBlock154 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine24: CFI Block cfiCond155 Using cfiCommon0 CFI Function ZDApp_SendEventMsg CFI Conditional ??CrossCallReturnLabel_25 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 9) CFI Block cfiCond156 Using cfiCommon0 CFI (cfiCond156) Function ZDO_NetworkDiscoveryConfirmCB CFI (cfiCond156) Conditional ??CrossCallReturnLabel_26 CFI (cfiCond156) DPL0 Frame(CFA_SP, 4) CFI (cfiCond156) DPH0 Frame(CFA_SP, 5) CFI (cfiCond156) CFA_SP SP+-7 CFI (cfiCond156) CFA_XSP16 add(XSP16, 3) CFI Block cfiCond157 Using cfiCommon0 CFI (cfiCond157) Function ZDO_JoinConfirmCB CFI (cfiCond157) Conditional ??CrossCallReturnLabel_27 CFI (cfiCond157) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond157) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond157) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond157) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond157) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond157) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond157) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond157) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond157) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond157) CFA_SP SP+-2 CFI (cfiCond157) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond158 Using cfiCommon0 CFI (cfiCond158) Function ZDO_SyncIndicationCB CFI (cfiCond158) Conditional ??CrossCallReturnLabel_28 CFI (cfiCond158) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond158) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond158) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond158) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond158) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond158) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond158) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond158) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond158) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond158) CFA_SP SP+-2 CFI (cfiCond158) CFA_XSP16 add(XSP16, 9) CFI Block cfiPicker159 Using cfiCommon1 CFI (cfiPicker159) NoFunction CFI (cfiPicker159) Picker MOV DPTR,#ZDAppTaskID MOVX A,@DPTR MOV R1,A LCALL `??ZDApp_SendMsg::?relay`; Banked call to: ZDApp_SendMsg RET CFI EndBlock cfiCond155 CFI EndBlock cfiCond156 CFI EndBlock cfiCond157 CFI EndBlock cfiCond158 CFI EndBlock cfiPicker159 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine18: CFI Block cfiCond160 Using cfiCommon0 CFI Function ZDApp_ProcessOSALMsg CFI Conditional ??CrossCallReturnLabel_85 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 11) CFI Block cfiCond161 Using cfiCommon0 CFI (cfiCond161) Function ZDApp_NwkDescListProcessing CFI (cfiCond161) Conditional ??CrossCallReturnLabel_86 CFI (cfiCond161) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond161) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond161) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond161) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond161) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond161) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond161) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond161) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond161) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond161) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond161) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond161) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond161) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond161) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond161) CFA_SP SP+-2 CFI (cfiCond161) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond162 Using cfiCommon0 CFI (cfiCond162) Function ZDO_beaconNotifyIndCB CFI (cfiCond162) Conditional ??CrossCallReturnLabel_87 CFI (cfiCond162) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond162) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond162) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond162) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond162) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond162) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond162) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond162) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond162) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond162) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond162) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond162) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond162) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond162) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond162) CFA_SP SP+-2 CFI (cfiCond162) CFA_XSP16 add(XSP16, 14) CFI Block cfiPicker163 Using cfiCommon1 CFI (cfiPicker163) NoFunction CFI (cfiPicker163) Picker MOV DPL,R6 MOV DPH,R7 CFI EndBlock cfiCond160 CFI EndBlock cfiCond161 CFI EndBlock cfiCond162 CFI EndBlock cfiPicker163 REQUIRE ??Subroutine53_0 ; // Fall through to label ??Subroutine53_0 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ??Subroutine53_0: CFI Block cfiCond164 Using cfiCommon0 CFI Function ZDApp_ProcessSecEvent CFI Conditional ??CrossCallReturnLabel_81 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 9) CFI Block cfiCond165 Using cfiCommon0 CFI (cfiCond165) Function ZDO_beaconNotifyIndCB CFI (cfiCond165) Conditional ??CrossCallReturnLabel_82 CFI (cfiCond165) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond165) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond165) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond165) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond165) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond165) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond165) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond165) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond165) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond165) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond165) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond165) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond165) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond165) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond165) CFA_SP SP+-2 CFI (cfiCond165) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond166 Using cfiCommon0 CFI (cfiCond166) Function ZDO_JoinConfirmCB CFI (cfiCond166) Conditional ??CrossCallReturnLabel_83 CFI (cfiCond166) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond166) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond166) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond166) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond166) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond166) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond166) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond166) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond166) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond166) CFA_SP SP+-2 CFI (cfiCond166) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond167 Using cfiCommon0 CFI (cfiCond167) Function ZDO_JoinConfirmCB CFI (cfiCond167) Conditional ??CrossCallReturnLabel_84 CFI (cfiCond167) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond167) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond167) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond167) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond167) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond167) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond167) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond167) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond167) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond167) CFA_SP SP+-2 CFI (cfiCond167) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond168 Using cfiCommon0 CFI (cfiCond168) Function ZDApp_ProcessOSALMsg CFI (cfiCond168) Conditional ??CrossCallReturnLabel_85 CFI (cfiCond168) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond168) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond168) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond168) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond168) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond168) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond168) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond168) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond168) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond168) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond168) CFA_SP SP+-2 CFI (cfiCond168) CFA_XSP16 add(XSP16, 11) CFI Block cfiCond169 Using cfiCommon0 CFI (cfiCond169) Function ZDApp_NwkDescListProcessing CFI (cfiCond169) Conditional ??CrossCallReturnLabel_86 CFI (cfiCond169) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond169) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond169) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond169) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond169) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond169) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond169) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond169) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond169) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond169) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond169) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond169) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond169) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond169) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond169) CFA_SP SP+-2 CFI (cfiCond169) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond170 Using cfiCommon0 CFI (cfiCond170) Function ZDO_beaconNotifyIndCB CFI (cfiCond170) Conditional ??CrossCallReturnLabel_87 CFI (cfiCond170) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond170) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond170) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond170) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond170) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond170) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond170) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond170) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond170) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond170) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond170) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond170) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond170) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond170) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond170) CFA_SP SP+-2 CFI (cfiCond170) CFA_XSP16 add(XSP16, 14) CFI Block cfiPicker171 Using cfiCommon1 CFI (cfiPicker171) NoFunction CFI (cfiPicker171) Picker MOVX A,@DPTR MOV R0,A INC DPTR MOVX A,@DPTR MOV R1,A RET CFI EndBlock cfiCond164 CFI EndBlock cfiCond165 CFI EndBlock cfiCond166 CFI EndBlock cfiCond167 CFI EndBlock cfiCond168 CFI EndBlock cfiCond169 CFI EndBlock cfiCond170 CFI EndBlock cfiPicker171 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine14: CFI Block cfiCond172 Using cfiCommon0 CFI Function ZDApp_ProcessOSALMsg CFI Conditional ??CrossCallReturnLabel_8 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 11) CFI Block cfiCond173 Using cfiCommon0 CFI (cfiCond173) Function ZDO_NetworkDiscoveryConfirmCB CFI (cfiCond173) Conditional ??CrossCallReturnLabel_9 CFI (cfiCond173) DPL0 Frame(CFA_SP, 4) CFI (cfiCond173) DPH0 Frame(CFA_SP, 5) CFI (cfiCond173) CFA_SP SP+-7 CFI (cfiCond173) CFA_XSP16 add(XSP16, 3) CFI Block cfiCond174 Using cfiCommon0 CFI (cfiCond174) Function ZDO_beaconNotifyIndCB CFI (cfiCond174) Conditional ??CrossCallReturnLabel_10 CFI (cfiCond174) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond174) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond174) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond174) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond174) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond174) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond174) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond174) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond174) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond174) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond174) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond174) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond174) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond174) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond174) CFA_SP SP+-2 CFI (cfiCond174) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond175 Using cfiCommon0 CFI (cfiCond175) Function ZDO_beaconNotifyIndCB CFI (cfiCond175) Conditional ??CrossCallReturnLabel_11 CFI (cfiCond175) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond175) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond175) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond175) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond175) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond175) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond175) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond175) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond175) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond175) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond175) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond175) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond175) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond175) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond175) CFA_SP SP+-2 CFI (cfiCond175) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond176 Using cfiCommon0 CFI (cfiCond176) Function ZDO_JoinConfirmCB CFI (cfiCond176) Conditional ??CrossCallReturnLabel_12 CFI (cfiCond176) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond176) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond176) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond176) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond176) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond176) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond176) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond176) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond176) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond176) CFA_SP SP+-2 CFI (cfiCond176) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond177 Using cfiCommon0 CFI (cfiCond177) Function ZDO_ConcentratorIndicationCB CFI (cfiCond177) Conditional ??CrossCallReturnLabel_13 CFI (cfiCond177) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond177) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond177) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond177) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond177) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond177) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond177) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond177) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond177) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond177) CFA_SP SP+-2 CFI (cfiCond177) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond178 Using cfiCommon0 CFI (cfiCond178) Function ZDO_LeaveCnf CFI (cfiCond178) Conditional ??CrossCallReturnLabel_14 CFI (cfiCond178) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond178) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond178) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond178) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond178) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond178) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond178) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond178) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond178) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond178) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond178) CFA_SP SP+-2 CFI (cfiCond178) CFA_XSP16 add(XSP16, 10) CFI Block cfiCond179 Using cfiCommon0 CFI (cfiCond179) Function ZDO_SrcRtgIndCB CFI (cfiCond179) Conditional ??CrossCallReturnLabel_15 CFI (cfiCond179) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond179) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond179) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond179) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond179) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond179) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond179) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond179) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond179) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond179) CFA_SP SP+-2 CFI (cfiCond179) CFA_XSP16 add(XSP16, 14) CFI Block cfiPicker180 Using cfiCommon1 CFI (cfiPicker180) NoFunction CFI (cfiPicker180) Picker MOVX A,@DPTR MOV R0,A INC DPTR MOVX A,@DPTR MOV R1,A MOV A,R0 ORL A,R1 RET CFI EndBlock cfiCond172 CFI EndBlock cfiCond173 CFI EndBlock cfiCond174 CFI EndBlock cfiCond175 CFI EndBlock cfiCond176 CFI EndBlock cfiCond177 CFI EndBlock cfiCond178 CFI EndBlock cfiCond179 CFI EndBlock cfiPicker180 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine13: CFI Block cfiCond181 Using cfiCommon0 CFI Function ZDApp_ProcessOSALMsg CFI Conditional ??CrossCallReturnLabel_4 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 11) CFI Block cfiCond182 Using cfiCommon0 CFI (cfiCond182) Function ZDApp_ProcessNetworkJoin CFI (cfiCond182) Conditional ??CrossCallReturnLabel_5 CFI (cfiCond182) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond182) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond182) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond182) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond182) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond182) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond182) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond182) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond182) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond182) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond182) CFA_SP SP+-2 CFI (cfiCond182) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond183 Using cfiCommon0 CFI (cfiCond183) Function ZDO_JoinConfirmCB CFI (cfiCond183) Conditional ??CrossCallReturnLabel_6 CFI (cfiCond183) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond183) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond183) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond183) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond183) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond183) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond183) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond183) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond183) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond183) CFA_SP SP+-2 CFI (cfiCond183) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond184 Using cfiCommon0 CFI (cfiCond184) Function ZDO_LeaveInd CFI (cfiCond184) Conditional ??CrossCallReturnLabel_7 CFI (cfiCond184) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond184) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond184) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond184) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond184) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond184) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond184) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond184) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond184) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond184) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond184) CFA_SP SP+-2 CFI (cfiCond184) CFA_XSP16 add(XSP16, 12) CFI Block cfiPicker185 Using cfiCommon1 CFI (cfiPicker185) NoFunction CFI (cfiPicker185) Picker MOVX @DPTR,A ; Setup parameters for call to function ZMacSetReq ; Setup parameters for call to function ZMacSetReq ; Setup parameters for indirect call ; Setup parameters for call to function NLME_LeaveRsp MOV R2,?XSP + 0 MOV R3,?XSP + 1 RET CFI EndBlock cfiCond181 CFI EndBlock cfiCond182 CFI EndBlock cfiCond183 CFI EndBlock cfiCond184 CFI EndBlock cfiPicker185 // 2425 // 2426 /********************************************************************* // 2427 * @fn ZDO_AddrChangeIndicationCB // 2428 * // 2429 * @brief This function notifies the application that this // 2430 * device's address has changed. Could happen in // 2431 * a network with stochastic addressing (PRO). // 2432 * // 2433 * @param newAddr - the new address // 2434 * // 2435 * @return none // 2436 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2437 void ZDO_AddrChangeIndicationCB( uint16 newAddr ) ZDO_AddrChangeIndicationCB: CFI Block cfiBlock186 Using cfiCommon0 CFI Function ZDO_AddrChangeIndicationCB CODE // 2438 { FUNCALL ZDO_AddrChangeIndicationCB, osal_set_event LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDO_AddrChangeIndicationCB, osal_msg_allocate LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDO_AddrChangeIndicationCB, osal_msg_send LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDO_AddrChangeIndicationCB, ZDApp_AnnounceNewAddress LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 REQUIRE ?V2 REQUIRE ?V3 MOV A,#-0xc LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 12) ; Saved register size: 12 ; Auto size: 0 MOV ?V0,R2 MOV ?V1,R3 // 2439 ZDO_AddrChangeInd_t *pZDOAddrChangeMsg; // 2440 epList_t *pItem = epList; MOV DPTR,#epList LCALL ??Subroutine54_0 & 0xFFFF // 2441 // 2442 // Notify to save info into NV // 2443 ZDApp_NVUpdate(); // 2444 // 2445 // Notify the applications // 2446 osal_set_event( ZDAppTaskID, ZDO_STATE_CHANGE_EVT ); ??CrossCallReturnLabel_89: ; Setup parameters for call to function osal_set_event LCALL ?Subroutine17 & 0xFFFF ??CrossCallReturnLabel_63: SJMP ??CrossCallReturnLabel_90 // 2447 // 2448 while (pItem != NULL) // 2449 { // 2450 if (pItem->epDesc->endPoint != ZDO_EP) ??ZDO_AddrChangeIndicationCB_0: LCALL ?Subroutine16 & 0xFFFF ??CrossCallReturnLabel_102: MOVX A,@DPTR JZ ??ZDO_AddrChangeIndicationCB_1 // 2451 { // 2452 pZDOAddrChangeMsg = (ZDO_AddrChangeInd_t *)osal_msg_allocate( sizeof( ZDO_AddrChangeInd_t ) ); ; Setup parameters for call to function osal_msg_allocate MOV R2,#0x4 MOV R3,#0x0 LCALL `??osal_msg_allocate::?relay`; Banked call to: osal_msg_allocate // 2453 if (pZDOAddrChangeMsg != NULL) MOV A,R2 ORL A,R3 JZ ??ZDO_AddrChangeIndicationCB_1 // 2454 { // 2455 pZDOAddrChangeMsg->hdr.event = ZDO_ADDR_CHANGE_IND; MOV DPL,R2 MOV DPH,R3 MOV A,#-0x2a MOVX @DPTR,A // 2456 pZDOAddrChangeMsg->shortAddr = newAddr; INC DPTR INC DPTR MOV A,?V0 MOVX @DPTR,A INC DPTR MOV A,?V1 MOVX @DPTR,A // 2457 osal_msg_send( *(pItem->epDesc->task_id), (uint8 *)pZDOAddrChangeMsg ); ; Setup parameters for call to function osal_msg_send LCALL ?Subroutine16 & 0xFFFF // 2458 } // 2459 } ??CrossCallReturnLabel_103: LCALL ??Subroutine55_0 & 0xFFFF ??CrossCallReturnLabel_101: MOVX A,@DPTR MOV R1,A LCALL `??osal_msg_send::?relay`; Banked call to: osal_msg_send // 2460 pItem = pItem->nextDesc; ??ZDO_AddrChangeIndicationCB_1: MOV DPL,R6 MOV DPH,R7 LCALL ??Subroutine54_0 & 0xFFFF // 2461 } ??CrossCallReturnLabel_90: MOV A,R6 ORL A,R7 JNZ ??ZDO_AddrChangeIndicationCB_0 // 2462 // 2463 // Send out a device announce // 2464 ZDApp_AnnounceNewAddress(); ; Setup parameters for call to function ZDApp_AnnounceNewAddress LCALL `??ZDApp_AnnounceNewAddress::?relay`; Banked call to: ZDApp_AnnounceNewAddress // 2465 } LJMP ??Subroutine45_0 & 0xFFFF CFI EndBlock cfiBlock186 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine20: CFI Block cfiCond187 Using cfiCommon0 CFI Function ZDApp_NwkDescListProcessing CFI Conditional ??CrossCallReturnLabel_91 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 14) CFI Block cfiCond188 Using cfiCommon0 CFI (cfiCond188) Function ZDApp_NwkDescListProcessing CFI (cfiCond188) Conditional ??CrossCallReturnLabel_92 CFI (cfiCond188) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond188) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond188) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond188) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond188) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond188) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond188) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond188) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond188) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond188) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond188) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond188) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond188) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond188) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond188) CFA_SP SP+-2 CFI (cfiCond188) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond189 Using cfiCommon0 CFI (cfiCond189) Function ZDO_beaconNotifyIndCB CFI (cfiCond189) Conditional ??CrossCallReturnLabel_93 CFI (cfiCond189) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond189) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond189) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond189) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond189) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond189) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond189) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond189) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond189) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond189) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond189) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond189) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond189) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond189) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond189) CFA_SP SP+-2 CFI (cfiCond189) CFA_XSP16 add(XSP16, 14) CFI Block cfiPicker190 Using cfiCommon1 CFI (cfiPicker190) NoFunction CFI (cfiPicker190) Picker MOV A,R6 ADD A,#0x14 MOV DPL,A CLR A ADDC A,R7 MOV DPH,A CFI EndBlock cfiCond187 CFI EndBlock cfiCond188 CFI EndBlock cfiCond189 CFI EndBlock cfiPicker190 REQUIRE ??Subroutine54_0 ; // Fall through to label ??Subroutine54_0 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ??Subroutine54_0: CFI Block cfiCond191 Using cfiCommon0 CFI Function ZDO_beaconNotifyIndCB CFI Conditional ??CrossCallReturnLabel_88 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 14) CFI Block cfiCond192 Using cfiCommon0 CFI (cfiCond192) Function ZDO_AddrChangeIndicationCB CFI (cfiCond192) Conditional ??CrossCallReturnLabel_89 CFI (cfiCond192) R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond192) VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond192) V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond192) V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond192) V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond192) V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond192) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond192) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond192) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond192) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond192) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond192) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond192) CFA_SP SP+-2 CFI (cfiCond192) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond193 Using cfiCommon0 CFI (cfiCond193) Function ZDO_AddrChangeIndicationCB CFI (cfiCond193) Conditional ??CrossCallReturnLabel_90 CFI (cfiCond193) R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond193) VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond193) V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond193) V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond193) V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond193) V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond193) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond193) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond193) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond193) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond193) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond193) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond193) CFA_SP SP+-2 CFI (cfiCond193) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond194 Using cfiCommon0 CFI (cfiCond194) Function ZDApp_NwkDescListProcessing CFI (cfiCond194) Conditional ??CrossCallReturnLabel_91 CFI (cfiCond194) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond194) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond194) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond194) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond194) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond194) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond194) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond194) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond194) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond194) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond194) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond194) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond194) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond194) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond194) CFA_SP SP+-2 CFI (cfiCond194) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond195 Using cfiCommon0 CFI (cfiCond195) Function ZDApp_NwkDescListProcessing CFI (cfiCond195) Conditional ??CrossCallReturnLabel_92 CFI (cfiCond195) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond195) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond195) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond195) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond195) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond195) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond195) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond195) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond195) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond195) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond195) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond195) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond195) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond195) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond195) CFA_SP SP+-2 CFI (cfiCond195) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond196 Using cfiCommon0 CFI (cfiCond196) Function ZDO_beaconNotifyIndCB CFI (cfiCond196) Conditional ??CrossCallReturnLabel_93 CFI (cfiCond196) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond196) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond196) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond196) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond196) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond196) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond196) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond196) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond196) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond196) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond196) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond196) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond196) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond196) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond196) CFA_SP SP+-2 CFI (cfiCond196) CFA_XSP16 add(XSP16, 14) CFI Block cfiPicker197 Using cfiCommon1 CFI (cfiPicker197) NoFunction CFI (cfiPicker197) Picker MOVX A,@DPTR MOV R6,A INC DPTR MOVX A,@DPTR MOV R7,A RET CFI EndBlock cfiCond191 CFI EndBlock cfiCond192 CFI EndBlock cfiCond193 CFI EndBlock cfiCond194 CFI EndBlock cfiCond195 CFI EndBlock cfiCond196 CFI EndBlock cfiPicker197 // 2466 // 2467 /********************************************************************* // 2468 * @fn ZDO_JoinIndicationCB // 2469 * // 2470 * @brief This function allows the next higher layer of a // 2471 * coordinator to be notified of a remote join request. // 2472 * // 2473 * @param ShortAddress - 16-bit address // 2474 * @param ExtendedAddress - IEEE (64-bit) address // 2475 * @param CapabilityFlags - Association Capability Flags // 2476 * @param type - of joining - // 2477 * NWK_ASSOC_JOIN // 2478 * NWK_ASSOC_REJOIN_UNSECURE // 2479 * NWK_ASSOC_REJOIN_SECURE // 2480 * // 2481 * @return ZStatus_t // 2482 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2483 ZStatus_t ZDO_JoinIndicationCB(uint16 ShortAddress, uint8 *ExtendedAddress, ZDO_JoinIndicationCB: CODE // 2484 uint8 CapabilityFlags, uint8 type) // 2485 { ; Saved register size: 0 ; Auto size: 0 // 2486 (void)ShortAddress; // 2487 (void)ExtendedAddress; // 2488 #if ZDO_NV_SAVE_RFDs // 2489 (void)CapabilityFlags; // 2490 // 2491 #else // if !ZDO_NV_SAVE_RFDs // 2492 if (CapabilityFlags & CAPINFO_DEVICETYPE_FFD) // 2493 #endif // 2494 { // 2495 ZDApp_NVUpdate(); // Notify to save info into NV. // 2496 } // 2497 // 2498 if (ZG_SECURE_ENABLED) // Send notification to TC of new device. // 2499 { // 2500 if (type == NWK_ASSOC_JOIN || type == NWK_ASSOC_REJOIN_UNSECURE) // 2501 { // 2502 osal_start_timerEx( ZDAppTaskID, ZDO_NEW_DEVICE, 600 ); // 2503 } // 2504 } // 2505 // 2506 return ZSuccess; REQUIRE ?Subroutine4 ; // Fall through to label ?Subroutine4 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine4: CFI Block cfiBlock198 Using cfiCommon0 CFI NoFunction MOV R1,#0x0 LJMP ?BRET CFI EndBlock cfiBlock198 // 2507 } // 2508 // 2509 /********************************************************************* // 2510 * @fn ZDO_ConcentratorIndicationCB // 2511 * // 2512 * @brief This function allows the next higher layer of a // 2513 * device to be notified of existence of the concentrator. // 2514 * // 2515 * @param nwkAddr - 16-bit NWK address of the concentrator // 2516 * @param extAddr - pointer to extended Address // 2517 * NULL if not available // 2518 * @param pktCost - PktCost from RREQ // 2519 * // 2520 * @return void // 2521 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2522 void ZDO_ConcentratorIndicationCB( uint16 nwkAddr, uint8 *extAddr, uint8 pktCost ) ZDO_ConcentratorIndicationCB: CFI Block cfiBlock199 Using cfiCommon0 CFI Function ZDO_ConcentratorIndicationCB CODE // 2523 { MOV A,#-0x9 LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 9) ; Saved register size: 9 ; Auto size: 5 MOV A,#-0x5 LCALL ?ALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 14) // 2524 zdoConcentratorInd_t conInd; // 2525 // 2526 conInd.nwkAddr = nwkAddr; LCALL ?Subroutine12 & 0xFFFF // 2527 conInd.extAddr = extAddr; ??CrossCallReturnLabel_121: MOV A,#0x2 LCALL ?XSTACK_DISP0_8 MOV A,R4 MOVX @DPTR,A INC DPTR MOV A,R5 MOVX @DPTR,A // 2528 conInd.pktCost = pktCost; MOV A,#0x4 LCALL ?XSTACK_DISP0_8 MOV A,R1 MOVX @DPTR,A // 2529 // 2530 if( zdoCBFunc[ZDO_CONCENTRATOR_IND_CBID] != NULL ) MOV DPTR,#zdoCBFunc + 2 LCALL ?Subroutine14 & 0xFFFF ??CrossCallReturnLabel_13: JZ ??ZDO_ConcentratorIndicationCB_0 // 2531 { // 2532 zdoCBFunc[ZDO_CONCENTRATOR_IND_CBID]( (void*)&conInd ); ; Setup parameters for indirect call MOV R2,?XSP + 0 MOV R3,?XSP + 1 LCALL ??Subroutine57_0 & 0xFFFF // 2533 } ??CrossCallReturnLabel_97: LCALL ?CALL_IND // 2534 } ??ZDO_ConcentratorIndicationCB_0: LJMP ?Subroutine6 & 0xFFFF CFI EndBlock cfiBlock199 // 2535 // 2536 /********************************************************************* // 2537 * @fn ZDO_LeaveCnf // 2538 * // 2539 * @brief This function allows the next higher layer to be // 2540 * notified of the results of its request for this or // 2541 * a child device to leave the network. // 2542 * // 2543 * @param cnf - NLME_LeaveCnf_t // 2544 * // 2545 * @return none // 2546 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2547 void ZDO_LeaveCnf( NLME_LeaveCnf_t* cnf ) ZDO_LeaveCnf: CFI Block cfiBlock200 Using cfiCommon0 CFI Function ZDO_LeaveCnf CODE // 2548 { FUNCALL ZDO_LeaveCnf, NLME_GetExtAddr LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 10, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 10, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDO_LeaveCnf, sAddrExtCmp LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 10, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 10, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDO_LeaveCnf, ZDApp_LeaveReset LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 10, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 10, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDO_LeaveCnf, ZDApp_LeaveUpdate LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 10, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 10, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 MOV A,#-0xa LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 10) ; Saved register size: 10 ; Auto size: 0 MOV A,R2 MOV R6,A MOV A,R3 MOV R7,A // 2549 // Check for this device // 2550 if ( osal_ExtAddrEqual( cnf->extAddr, // 2551 NLME_GetExtAddr() ) == TRUE ) ; Setup parameters for call to function NLME_GetExtAddr LCALL `??NLME_GetExtAddr::?relay`; Banked call to: NLME_GetExtAddr MOV ?V0,R2 MOV ?V1,R3 MOV R4,?V0 MOV R5,?V1 ; Setup parameters for call to function sAddrExtCmp MOV A,R6 ADD A,#0x2 MOV R2,A CLR A ADDC A,R7 MOV R3,A LCALL `??sAddrExtCmp::?relay`; Banked call to: sAddrExtCmp MOV A,R1 XRL A,#0x1 JNZ ??ZDO_LeaveCnf_0 // 2552 { // 2553 // Pass the leave confirm to higher layer if callback registered // 2554 if ( ( zdoCBFunc[ZDO_LEAVE_CNF_CBID] == NULL ) || // 2555 ( (*zdoCBFunc[ZDO_LEAVE_CNF_CBID])( cnf ) == NULL ) ) MOV DPTR,#zdoCBFunc + 10 LCALL ?Subroutine14 & 0xFFFF ??CrossCallReturnLabel_14: JZ ??ZDO_LeaveCnf_1 ; Setup parameters for indirect call MOV A,R6 MOV R2,A MOV A,R7 MOV R3,A LCALL ??Subroutine57_0 & 0xFFFF ??CrossCallReturnLabel_98: LCALL ?CALL_IND MOV A,R2 ORL A,R3 JNZ ??CrossCallReturnLabel_16 // 2556 { // 2557 // Prepare to leave with reset // 2558 ZDApp_LeaveReset( cnf->rejoin ); ??ZDO_LeaveCnf_1: ; Setup parameters for call to function ZDApp_LeaveReset LCALL ?Subroutine31 & 0xFFFF // 2559 } // 2560 } ??CrossCallReturnLabel_111: MOV R1,A LCALL `??ZDApp_LeaveReset::?relay`; Banked call to: ZDApp_LeaveReset SJMP ??CrossCallReturnLabel_16 // 2561 else if ( ZSTACK_ROUTER_BUILD ) // 2562 { // 2563 // Remove device address(optionally descendents) from data // 2564 ZDApp_LeaveUpdate( cnf->dstAddr, // 2565 cnf->extAddr, // 2566 cnf->removeChildren ); ??ZDO_LeaveCnf_0: ; Setup parameters for call to function ZDApp_LeaveUpdate MOV DPL,R6 MOV DPH,R7 INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR LCALL ?Subroutine15 & 0xFFFF // 2567 } // 2568 } ??CrossCallReturnLabel_16: LJMP ??Subroutine50_0 & 0xFFFF CFI EndBlock cfiBlock200 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine16: CFI Block cfiCond201 Using cfiCommon0 CFI Function ZDO_AddrChangeIndicationCB CFI Conditional ??CrossCallReturnLabel_102 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 12) CFI Block cfiCond202 Using cfiCommon0 CFI (cfiCond202) Function ZDO_AddrChangeIndicationCB CFI (cfiCond202) Conditional ??CrossCallReturnLabel_103 CFI (cfiCond202) R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond202) VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond202) V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond202) V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond202) V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond202) V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond202) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond202) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond202) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond202) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond202) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond202) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond202) CFA_SP SP+-2 CFI (cfiCond202) CFA_XSP16 add(XSP16, 12) CFI Block cfiPicker203 Using cfiCommon1 CFI (cfiPicker203) NoFunction CFI (cfiPicker203) Picker MOV DPL,R6 MOV DPH,R7 INC DPTR CFI EndBlock cfiCond201 CFI EndBlock cfiCond202 CFI EndBlock cfiPicker203 REQUIRE ??Subroutine55_0 ; // Fall through to label ??Subroutine55_0 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ??Subroutine55_0: CFI Block cfiCond204 Using cfiCommon0 CFI Function ZDO_AddrChangeIndicationCB CFI Conditional ??CrossCallReturnLabel_101 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 12) CFI Block cfiCond205 Using cfiCommon0 CFI (cfiCond205) Function ZDO_AddrChangeIndicationCB CFI (cfiCond205) Conditional ??CrossCallReturnLabel_102 CFI (cfiCond205) R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond205) VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond205) V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond205) V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond205) V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond205) V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond205) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond205) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond205) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond205) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond205) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond205) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond205) CFA_SP SP+-2 CFI (cfiCond205) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond206 Using cfiCommon0 CFI (cfiCond206) Function ZDO_AddrChangeIndicationCB CFI (cfiCond206) Conditional ??CrossCallReturnLabel_103 CFI (cfiCond206) R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond206) VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond206) V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond206) V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond206) V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond206) V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond206) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond206) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond206) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond206) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond206) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond206) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond206) CFA_SP SP+-2 CFI (cfiCond206) CFA_XSP16 add(XSP16, 12) CFI Block cfiPicker207 Using cfiCommon1 CFI (cfiPicker207) NoFunction CFI (cfiPicker207) Picker INC DPTR CFI EndBlock cfiCond204 CFI EndBlock cfiCond205 CFI EndBlock cfiCond206 CFI EndBlock cfiPicker207 REQUIRE ??Subroutine56_0 ; // Fall through to label ??Subroutine56_0 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ??Subroutine56_0: CFI Block cfiCond208 Using cfiCommon0 CFI Function ZDO_JoinConfirmCB CFI Conditional ??CrossCallReturnLabel_100 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 14) CFI Block cfiCond209 Using cfiCommon0 CFI (cfiCond209) Function ZDO_AddrChangeIndicationCB CFI (cfiCond209) Conditional ??CrossCallReturnLabel_101 CFI (cfiCond209) R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond209) VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond209) V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond209) V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond209) V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond209) V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond209) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond209) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond209) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond209) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond209) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond209) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond209) CFA_SP SP+-2 CFI (cfiCond209) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond210 Using cfiCommon0 CFI (cfiCond210) Function ZDO_AddrChangeIndicationCB CFI (cfiCond210) Conditional ??CrossCallReturnLabel_102 CFI (cfiCond210) R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond210) VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond210) V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond210) V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond210) V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond210) V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond210) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond210) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond210) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond210) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond210) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond210) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond210) CFA_SP SP+-2 CFI (cfiCond210) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond211 Using cfiCommon0 CFI (cfiCond211) Function ZDO_AddrChangeIndicationCB CFI (cfiCond211) Conditional ??CrossCallReturnLabel_103 CFI (cfiCond211) R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond211) VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond211) V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond211) V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond211) V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond211) V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond211) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond211) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond211) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond211) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond211) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond211) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond211) CFA_SP SP+-2 CFI (cfiCond211) CFA_XSP16 add(XSP16, 12) CFI Block cfiPicker212 Using cfiCommon1 CFI (cfiPicker212) NoFunction CFI (cfiPicker212) Picker MOVX A,@DPTR MOV R0,A INC DPTR CFI EndBlock cfiCond208 CFI EndBlock cfiCond209 CFI EndBlock cfiCond210 CFI EndBlock cfiCond211 CFI EndBlock cfiPicker212 REQUIRE ??Subroutine57_0 ; // Fall through to label ??Subroutine57_0 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ??Subroutine57_0: CFI Block cfiCond213 Using cfiCommon0 CFI Function ZDApp_ProcessOSALMsg CFI Conditional ??CrossCallReturnLabel_94 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 11) CFI Block cfiCond214 Using cfiCommon0 CFI (cfiCond214) Function ZDO_NetworkDiscoveryConfirmCB CFI (cfiCond214) Conditional ??CrossCallReturnLabel_95 CFI (cfiCond214) DPL0 Frame(CFA_SP, 4) CFI (cfiCond214) DPH0 Frame(CFA_SP, 5) CFI (cfiCond214) CFA_SP SP+-7 CFI (cfiCond214) CFA_XSP16 add(XSP16, 3) CFI Block cfiCond215 Using cfiCommon0 CFI (cfiCond215) Function ZDO_beaconNotifyIndCB CFI (cfiCond215) Conditional ??CrossCallReturnLabel_96 CFI (cfiCond215) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond215) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond215) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond215) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond215) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond215) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond215) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond215) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond215) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond215) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond215) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond215) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond215) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond215) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond215) CFA_SP SP+-2 CFI (cfiCond215) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond216 Using cfiCommon0 CFI (cfiCond216) Function ZDO_ConcentratorIndicationCB CFI (cfiCond216) Conditional ??CrossCallReturnLabel_97 CFI (cfiCond216) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond216) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond216) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond216) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond216) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond216) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond216) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond216) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond216) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond216) CFA_SP SP+-2 CFI (cfiCond216) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond217 Using cfiCommon0 CFI (cfiCond217) Function ZDO_LeaveCnf CFI (cfiCond217) Conditional ??CrossCallReturnLabel_98 CFI (cfiCond217) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond217) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond217) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond217) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond217) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond217) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond217) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond217) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond217) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond217) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond217) CFA_SP SP+-2 CFI (cfiCond217) CFA_XSP16 add(XSP16, 10) CFI Block cfiCond218 Using cfiCommon0 CFI (cfiCond218) Function ZDO_SrcRtgIndCB CFI (cfiCond218) Conditional ??CrossCallReturnLabel_99 CFI (cfiCond218) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond218) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond218) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond218) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond218) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond218) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond218) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond218) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond218) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond218) CFA_SP SP+-2 CFI (cfiCond218) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond219 Using cfiCommon0 CFI (cfiCond219) Function ZDO_JoinConfirmCB CFI (cfiCond219) Conditional ??CrossCallReturnLabel_100 CFI (cfiCond219) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond219) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond219) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond219) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond219) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond219) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond219) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond219) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond219) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond219) CFA_SP SP+-2 CFI (cfiCond219) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond220 Using cfiCommon0 CFI (cfiCond220) Function ZDO_AddrChangeIndicationCB CFI (cfiCond220) Conditional ??CrossCallReturnLabel_101 CFI (cfiCond220) R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond220) VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond220) V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond220) V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond220) V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond220) V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond220) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond220) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond220) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond220) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond220) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond220) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond220) CFA_SP SP+-2 CFI (cfiCond220) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond221 Using cfiCommon0 CFI (cfiCond221) Function ZDO_AddrChangeIndicationCB CFI (cfiCond221) Conditional ??CrossCallReturnLabel_102 CFI (cfiCond221) R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond221) VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond221) V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond221) V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond221) V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond221) V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond221) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond221) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond221) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond221) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond221) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond221) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond221) CFA_SP SP+-2 CFI (cfiCond221) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond222 Using cfiCommon0 CFI (cfiCond222) Function ZDO_AddrChangeIndicationCB CFI (cfiCond222) Conditional ??CrossCallReturnLabel_103 CFI (cfiCond222) R6 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond222) VB load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond222) V0 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond222) V1 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond222) V2 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond222) V3 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond222) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond222) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond222) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond222) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond222) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond222) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond222) CFA_SP SP+-2 CFI (cfiCond222) CFA_XSP16 add(XSP16, 12) CFI Block cfiPicker223 Using cfiCommon1 CFI (cfiPicker223) NoFunction CFI (cfiPicker223) Picker MOVX A,@DPTR MOV DPH,A MOV DPL,R0 RET CFI EndBlock cfiCond213 CFI EndBlock cfiCond214 CFI EndBlock cfiCond215 CFI EndBlock cfiCond216 CFI EndBlock cfiCond217 CFI EndBlock cfiCond218 CFI EndBlock cfiCond219 CFI EndBlock cfiCond220 CFI EndBlock cfiCond221 CFI EndBlock cfiCond222 CFI EndBlock cfiPicker223 // 2569 // 2570 /********************************************************************* // 2571 * @fn ZDO_LeaveInd // 2572 * // 2573 * @brief This function allows the next higher layer of a // 2574 * device to be notified of a remote leave request or // 2575 * indication. // 2576 * // 2577 * @param ind - NLME_LeaveInd_t // 2578 * // 2579 * @return none // 2580 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2581 void ZDO_LeaveInd( NLME_LeaveInd_t* ind ) ZDO_LeaveInd: CFI Block cfiBlock224 Using cfiCommon0 CFI Function ZDO_LeaveInd CODE // 2582 { FUNCALL ZDO_LeaveInd, NLME_LeaveRsp LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDO_LeaveInd, ZDApp_LeaveReset LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDO_LeaveInd, NLME_GetCoordShortAddr LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDO_LeaveInd, ZDApp_LeaveReset LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDO_LeaveInd, ZDApp_LeaveUpdate LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 12, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 12, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 MOV A,#-0xa LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 10) ; Saved register size: 10 ; Auto size: 2 MOV A,#-0x2 LCALL ?ALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 12) MOV A,R2 MOV R6,A MOV A,R3 MOV R7,A // 2583 uint8 leave; // 2584 // 2585 // 2586 // Parent is requesting the leave - NWK layer filters out illegal // 2587 // requests // 2588 if ( ind->request == TRUE ) MOV DPL,R2 MOV DPH,A INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR INC DPTR MOVX A,@DPTR XRL A,#0x1 JNZ ??ZDO_LeaveInd_0 // 2589 { // 2590 // Notify network of leave // 2591 if ( ZSTACK_ROUTER_BUILD ) // 2592 { // 2593 NLME_LeaveRsp_t rsp; // 2594 rsp.rejoin = ind->rejoin; MOV A,R2 ADD A,#0xc MOV ?V0,A CLR A ADDC A,R7 MOV ?V1,A MOV DPL,?V0 MOV DPH,A MOVX A,@DPTR PUSH A CFI CFA_SP SP+-1 MOV A,#0x1 LCALL ?XSTACK_DISP0_8 POP A CFI CFA_SP SP+0 MOVX @DPTR,A // 2595 rsp.removeChildren = ind->removeChildren; MOV A,R2 LCALL ??Subroutine59_0 & 0xFFFF // 2596 NLME_LeaveRsp( &rsp ); // 2597 } ??CrossCallReturnLabel_109: MOV DPL,?XSP + 0 MOV DPH,?XSP + 1 LCALL ?Subroutine13 & 0xFFFF ??CrossCallReturnLabel_7: LCALL `??NLME_LeaveRsp::?relay`; Banked call to: NLME_LeaveRsp // 2598 // 2599 // Prepare to leave with reset // 2600 ZDApp_LeaveReset( ind->rejoin ); ; Setup parameters for call to function ZDApp_LeaveReset MOV DPL,?V0 MOV DPH,?V1 SJMP ??CrossCallReturnLabel_104 // 2601 } // 2602 else // 2603 { // 2604 leave = FALSE; // 2605 // 2606 // Check if this device needs to leave as a child or descendent // 2607 if ( ind->srcAddr == NLME_GetCoordShortAddr() ) ??ZDO_LeaveInd_0: ; Setup parameters for call to function NLME_GetCoordShortAddr LCALL `??NLME_GetCoordShortAddr::?relay`; Banked call to: NLME_GetCoordShortAddr MOV ?V0,R2 MOV ?V1,R3 MOV R0,?V0 MOV R1,?V1 MOV DPL,R6 MOV DPH,R7 MOVX A,@DPTR XRL A,R0 JNZ ??ZDO_LeaveInd_1 INC DPTR MOVX A,@DPTR XRL A,R1 ??ZDO_LeaveInd_1: JNZ ??ZDO_LeaveInd_2 // 2608 { // 2609 if ( ( ind->removeChildren == TRUE ) || // 2610 ( ZDO_Config_Node_Descriptor.LogicalType == // 2611 NODETYPE_DEVICE ) ) LCALL ?Subroutine31 & 0xFFFF ??CrossCallReturnLabel_112: XRL A,#0x1 JZ ??ZDO_LeaveInd_3 LCALL ?Subroutine21 & 0xFFFF ??CrossCallReturnLabel_24: JNZ ??ZDO_LeaveInd_2 // 2612 { // 2613 leave = TRUE; // 2614 } // 2615 } // 2616 else if ( ind->removeChildren == TRUE ) // 2617 { // 2618 // Check NWK address allocation algorithm // 2619 //leave = RTG_ANCESTOR(nwkAddr,thisAddr); // 2620 } // 2621 // 2622 if ( leave == TRUE ) // 2623 { // 2624 // Prepare to leave with reset // 2625 ZDApp_LeaveReset( ind->rejoin ); ??ZDO_LeaveInd_3: ; Setup parameters for call to function ZDApp_LeaveReset MOV A,R6 LCALL ??Subroutine58_0 & 0xFFFF // 2626 } ??CrossCallReturnLabel_104: MOVX A,@DPTR MOV R1,A LCALL `??ZDApp_LeaveReset::?relay`; Banked call to: ZDApp_LeaveReset SJMP ??CrossCallReturnLabel_17 // 2627 else // 2628 { // 2629 // Remove device address(optionally descendents) from data // 2630 ZDApp_LeaveUpdate( ind->srcAddr, // 2631 ind->extAddr, // 2632 ind->removeChildren ); ??ZDO_LeaveInd_2: ; Setup parameters for call to function ZDApp_LeaveUpdate MOV A,R6 LCALL ?Subroutine41 & 0xFFFF // 2633 } // 2634 } ??CrossCallReturnLabel_113: LCALL ?Subroutine15 & 0xFFFF // 2635 } ??CrossCallReturnLabel_17: LJMP ?Subroutine7 & 0xFFFF CFI EndBlock cfiBlock224 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine15: CFI Block cfiCond225 Using cfiCommon0 CFI Function ZDO_LeaveCnf CFI Conditional ??CrossCallReturnLabel_16 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 10) CFI Block cfiCond226 Using cfiCommon0 CFI (cfiCond226) Function ZDO_LeaveInd CFI (cfiCond226) Conditional ??CrossCallReturnLabel_17 CFI (cfiCond226) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond226) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond226) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond226) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond226) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond226) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond226) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond226) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond226) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond226) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond226) CFA_SP SP+-2 CFI (cfiCond226) CFA_XSP16 add(XSP16, 12) CFI Block cfiPicker227 Using cfiCommon1 CFI (cfiPicker227) NoFunction CFI (cfiPicker227) Picker MOVX A,@DPTR MOV R1,A MOV A,R6 ADD A,#0x2 MOV R4,A CLR A ADDC A,R7 MOV R5,A MOV DPL,R6 MOV DPH,R7 LCALL ?Subroutine38 & 0xFFFF ??CrossCallReturnLabel_54: LCALL `??ZDApp_LeaveUpdate::?relay`; Banked call to: ZDApp_LeaveUpdate RET CFI EndBlock cfiCond225 CFI EndBlock cfiCond226 CFI EndBlock cfiPicker227 // 2636 // 2637 /********************************************************************* // 2638 * @fn ZDO_SyncIndicationCB // 2639 * // 2640 * @brief This function allows the next higher layer of a // 2641 * coordinator to be notified of a loss of synchronization // 2642 * with the parent/child device. // 2643 * // 2644 * @param type: 0 - child; 1 - parent // 2645 * // 2646 * // 2647 * @return none // 2648 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2649 void ZDO_SyncIndicationCB( uint8 type, uint16 shortAddr ) ZDO_SyncIndicationCB: CFI Block cfiBlock228 Using cfiCommon0 CFI Function ZDO_SyncIndicationCB CODE // 2650 { FUNCALL ZDO_SyncIndicationCB, nwkNeighborInitTable LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDO_SyncIndicationCB, ZDApp_SendMsg LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC MOV A,#-0x9 LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 9) ; Saved register size: 9 ; Auto size: 0 MOV A,R1 MOV R6,A // 2651 (void)shortAddr; // Remove this line if this parameter is used. // 2652 // 2653 if ( ZSTACK_END_DEVICE_BUILD // 2654 || (ZSTACK_ROUTER_BUILD && ((_NIB.CapabilityFlags & ZMAC_ASSOC_CAPINFO_FFD_TYPE) == 0))) MOV DPTR,#_NIB + 14 MOVX A,@DPTR MOV C,0xE0 /* A */.1 JC ??CrossCallReturnLabel_28 // 2655 { // 2656 if ( type == 1 ) MOV A,#0x1 XRL A,R6 JNZ ??CrossCallReturnLabel_28 // 2657 { // 2658 // We lost contact with our parent. Clear the neighbor Table. // 2659 nwkNeighborInitTable(); ; Setup parameters for call to function nwkNeighborInitTable LCALL `??nwkNeighborInitTable::?relay`; Banked call to: nwkNeighborInitTable // 2660 // 2661 // Start the rejoin process. // 2662 ZDApp_SendMsg( ZDAppTaskID, ZDO_NWK_JOIN_REQ, sizeof(osal_event_hdr_t), NULL ); ; Setup parameters for call to function ZDApp_SendMsg MOV R4,#0x0 MOV R5,#0x0 MOV R3,#0x2 MOV R2,#0x3 LCALL ?Subroutine24 & 0xFFFF // 2663 } // 2664 } // 2665 } ??CrossCallReturnLabel_28: LJMP ??Subroutine52_0 & 0xFFFF CFI EndBlock cfiBlock228 // 2666 // 2667 /********************************************************************* // 2668 * @fn ZDO_ManytoOneFailureIndicationCB // 2669 * // 2670 * @brief This function allows the next higher layer of a // 2671 * concentrator to be notified of a many-to-one route // 2672 * failure. // 2673 * // 2674 * @param none // 2675 * // 2676 * // 2677 * @return none // 2678 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2679 void ZDO_ManytoOneFailureIndicationCB() ZDO_ManytoOneFailureIndicationCB: CFI Block cfiBlock229 Using cfiCommon0 CFI Function ZDO_ManytoOneFailureIndicationCB CODE // 2680 { FUNCALL ZDO_ManytoOneFailureIndicationCB, RTG_MTORouteReq LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC PUSH DPL CFI DPL0 Frame(CFA_SP, 4) CFI CFA_SP SP+-4 PUSH DPH CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-5 ; Saved register size: 2 ; Auto size: 0 // 2681 // By default, the concentrator automatically redo many-to-one route // 2682 // discovery to update all many-to-one routes in the network // 2683 // If you want anything processing other than the default, // 2684 // please replace the following code. // 2685 // 2686 RTG_MTORouteReq(); ; Setup parameters for call to function RTG_MTORouteReq LCALL `??RTG_MTORouteReq::?relay`; Banked call to: RTG_MTORouteReq // 2687 } LJMP ?Subroutine3 & 0xFFFF CFI EndBlock cfiBlock229 // 2688 // 2689 /********************************************************************* // 2690 * @fn ZDO_PollConfirmCB // 2691 * // 2692 * @brief This function allows the next higher layer to be // 2693 * notified of a Poll Confirm. // 2694 * // 2695 * @param none // 2696 * // 2697 * @return none // 2698 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2699 void ZDO_PollConfirmCB( uint8 status ) ZDO_PollConfirmCB: CFI Block cfiBlock230 Using cfiCommon0 CFI Function ZDO_PollConfirmCB CODE // 2700 { ; Saved register size: 0 ; Auto size: 0 // 2701 (void)status; // Remove this line if this parameter is used. // 2702 return; LJMP ?BRET // 2703 } CFI EndBlock cfiBlock230 // 2704 // 2705 /****************************************************************************** // 2706 * @fn ZDApp_NwkWriteNVRequest (stubs AddrMgrWriteNVRequest) // 2707 * // 2708 * @brief Stub routine implemented by NHLE. NHLE should call // 2709 * when appropriate. // 2710 * // 2711 * @param none // 2712 * // 2713 * @return none // 2714 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2715 void ZDApp_NwkWriteNVRequest( void ) AddrMgrWriteNVRequest: CFI Block cfiBlock231 Using cfiCommon0 CFI Function AddrMgrWriteNVRequest CODE // 2716 { ; Saved register size: 0 ; Auto size: 0 // 2717 #if defined ( NV_RESTORE ) // 2718 if ( !osal_get_timeoutEx( ZDAppTaskID, ZDO_NWK_UPDATE_NV ) ) // 2719 { // 2720 // Trigger to save info into NV // 2721 ZDApp_NVUpdate(); // 2722 } // 2723 #endif // 2724 } LJMP ?BRET CFI EndBlock cfiBlock231 // 2725 // 2726 /********************************************************************* // 2727 * Call Back Functions from Security - API // 2728 */ // 2729 // 2730 /********************************************************************* // 2731 * @fn ZDO_UpdateDeviceIndication // 2732 * // 2733 * @brief This function notifies the "Trust Center" of a // 2734 * network when a device joins or leaves the network. // 2735 * // 2736 * @param extAddr - pointer to 64 bit address of new device // 2737 * @param status - 0 if a new device joined securely // 2738 * - 1 if a new device joined un-securely // 2739 * - 2 if a device left the network // 2740 * // 2741 * @return true if newly joined device should be allowed to // 2742 * remain on network // 2743 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2744 ZStatus_t ZDO_UpdateDeviceIndication( uint8 *extAddr, uint8 status ) ZDO_UpdateDeviceIndication: CFI Block cfiBlock232 Using cfiCommon0 CFI Function ZDO_UpdateDeviceIndication CODE // 2745 { ; Saved register size: 0 ; Auto size: 0 // 2746 // can implement a network access policy based on the // 2747 // IEEE address of newly joining devices... // 2748 (void)extAddr; // 2749 (void)status; // 2750 // 2751 return ZSuccess; LJMP ?Subroutine4 & 0xFFFF // 2752 } CFI EndBlock cfiBlock232 // 2753 // 2754 /********************************************************************* // 2755 * @fn ZDApp_InMsgCB // 2756 * // 2757 * @brief This function is called to pass up any message that is // 2758 * not yet supported. This allows for the developer to // 2759 * support features themselves.. // 2760 * // 2761 * @return none // 2762 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2763 void ZDApp_InMsgCB( zdoIncomingMsg_t *inMsg ) ZDApp_InMsgCB: CFI Block cfiBlock233 Using cfiCommon0 CFI Function ZDApp_InMsgCB CODE // 2764 { FUNCALL ZDApp_InMsgCB, ZDP_GenericRsp LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 14, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 14, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 MOV A,#-0xa LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 10) ; Saved register size: 10 ; Auto size: 0 MOV A,R2 MOV R6,A MOV A,R3 MOV R7,A // 2765 if ( inMsg->clusterID & ZDO_RESPONSE_BIT ) LCALL ?Subroutine33 & 0xFFFF ??CrossCallReturnLabel_105: INC DPTR MOVX A,@DPTR ANL A,#0x80 JNZ ??ZDApp_InMsgCB_0 // 2766 { // 2767 // Handle the response message // 2768 } // 2769 else // 2770 { // 2771 // Handle the request message by sending a generic "not supported". // 2772 // Device Announce doesn't have a response. // 2773 if ( !(inMsg->wasBroadcast) && inMsg->clusterID != Device_annce ) MOV A,R2 LCALL ??Subroutine59_0 & 0xFFFF ??CrossCallReturnLabel_110: JNZ ??ZDApp_InMsgCB_0 LCALL ?Subroutine33 & 0xFFFF ??CrossCallReturnLabel_106: MOVX A,@DPTR XRL A,#0x13 JNZ ??ZDApp_InMsgCB_1 INC DPTR MOVX A,@DPTR ??ZDApp_InMsgCB_1: JZ ??ZDApp_InMsgCB_0 // 2774 { // 2775 ZDP_GenericRsp( inMsg->TransSeq, &(inMsg->srcAddr), ZDP_NOT_SUPPORTED, 0, // 2776 (uint16)(inMsg->clusterID | ZDO_RESPONSE_BIT), inMsg->SecurityUse ); ; Setup parameters for call to function ZDP_GenericRsp LCALL ?Subroutine32 & 0xFFFF // 2777 } // 2778 } ??CrossCallReturnLabel_44: ORL A,#0x80 MOV ?V1,A MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_TWO CFI CFA_XSP16 add(XSP16, 12) CLR A MOV ?V0,A MOV ?V1,A MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_TWO CFI CFA_XSP16 add(XSP16, 14) MOV A,R2 ADD A,#0xe MOV DPL,A CLR A ADDC A,R7 MOV DPH,A MOVX A,@DPTR MOV R5,A MOV R4,#-0x7c MOV A,R2 ADD A,#0x2 MOV R2,A CLR A ADDC A,R7 MOV R3,A MOV A,R6 ADD A,#0xf MOV DPL,A CLR A ADDC A,R7 MOV DPH,A MOVX A,@DPTR MOV R1,A LCALL `??ZDP_GenericRsp::?relay`; Banked call to: ZDP_GenericRsp MOV A,#0x4 LCALL ?DEALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 10) // 2779 } ??ZDApp_InMsgCB_0: LJMP ??Subroutine50_0 & 0xFFFF CFI EndBlock cfiBlock233 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine33: CFI Block cfiCond234 Using cfiCommon0 CFI Function ZDApp_InMsgCB CFI Conditional ??CrossCallReturnLabel_105 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 10) CFI Block cfiCond235 Using cfiCommon0 CFI (cfiCond235) Function ZDApp_InMsgCB CFI (cfiCond235) Conditional ??CrossCallReturnLabel_106 CFI (cfiCond235) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond235) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond235) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond235) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond235) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond235) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond235) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond235) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond235) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond235) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond235) CFA_SP SP+-2 CFI (cfiCond235) CFA_XSP16 add(XSP16, 10) CFI Block cfiPicker236 Using cfiCommon1 CFI (cfiPicker236) NoFunction CFI (cfiPicker236) Picker MOV A,R2 CFI EndBlock cfiCond234 CFI EndBlock cfiCond235 CFI EndBlock cfiPicker236 REQUIRE ??Subroutine58_0 ; // Fall through to label ??Subroutine58_0 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ??Subroutine58_0: CFI Block cfiCond237 Using cfiCommon0 CFI Function ZDO_LeaveInd CFI Conditional ??CrossCallReturnLabel_104 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 12) CFI Block cfiCond238 Using cfiCommon0 CFI (cfiCond238) Function ZDApp_InMsgCB CFI (cfiCond238) Conditional ??CrossCallReturnLabel_105 CFI (cfiCond238) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond238) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond238) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond238) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond238) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond238) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond238) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond238) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond238) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond238) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond238) CFA_SP SP+-2 CFI (cfiCond238) CFA_XSP16 add(XSP16, 10) CFI Block cfiCond239 Using cfiCommon0 CFI (cfiCond239) Function ZDApp_InMsgCB CFI (cfiCond239) Conditional ??CrossCallReturnLabel_106 CFI (cfiCond239) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond239) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond239) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond239) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond239) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond239) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond239) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond239) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond239) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond239) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond239) CFA_SP SP+-2 CFI (cfiCond239) CFA_XSP16 add(XSP16, 10) CFI Block cfiPicker240 Using cfiCommon1 CFI (cfiPicker240) NoFunction CFI (cfiPicker240) Picker LCALL ?Subroutine42 & 0xFFFF ??CrossCallReturnLabel_108: RET CFI EndBlock cfiCond237 CFI EndBlock cfiCond238 CFI EndBlock cfiCond239 CFI EndBlock cfiPicker240 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine42: CFI Block cfiCond241 Using cfiCommon0 CFI Function ZDApp_InMsgCB CFI Conditional ??CrossCallReturnLabel_108, ??CrossCallReturnLabel_105 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-4 CFI CFA_XSP16 add(XSP16, 10) CFI Block cfiCond242 Using cfiCommon0 CFI (cfiCond242) Function ZDApp_InMsgCB CFI (cfiCond242) Conditional ??CrossCallReturnLabel_108, ??CrossCallReturnLabel_106 CFI (cfiCond242) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond242) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond242) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond242) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond242) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond242) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond242) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond242) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond242) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond242) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond242) CFA_SP SP+-4 CFI (cfiCond242) CFA_XSP16 add(XSP16, 10) CFI Block cfiCond243 Using cfiCommon0 CFI (cfiCond243) Function ZDO_LeaveInd CFI (cfiCond243) Conditional ??CrossCallReturnLabel_108, ??CrossCallReturnLabel_104 CFI (cfiCond243) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond243) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond243) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond243) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond243) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond243) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond243) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond243) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond243) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond243) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond243) CFA_SP SP+-4 CFI (cfiCond243) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond244 Using cfiCommon0 CFI (cfiCond244) Function ZDApp_ProcessMsgCBs CFI (cfiCond244) Conditional ??CrossCallReturnLabel_107, ??CrossCallReturnLabel_43 CFI (cfiCond244) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond244) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond244) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond244) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond244) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond244) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond244) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond244) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond244) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond244) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond244) CFA_SP SP+-4 CFI (cfiCond244) CFA_XSP16 add(XSP16, 31) CFI Block cfiCond245 Using cfiCommon0 CFI (cfiCond245) Function ZDApp_InMsgCB CFI (cfiCond245) Conditional ??CrossCallReturnLabel_107, ??CrossCallReturnLabel_44 CFI (cfiCond245) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond245) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond245) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond245) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond245) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond245) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond245) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond245) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond245) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond245) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond245) CFA_SP SP+-4 CFI (cfiCond245) CFA_XSP16 add(XSP16, 10) CFI Block cfiPicker246 Using cfiCommon1 CFI (cfiPicker246) NoFunction CFI (cfiPicker246) Picker ADD A,#0xc MOV DPL,A CLR A ADDC A,R7 MOV DPH,A RET CFI EndBlock cfiCond241 CFI EndBlock cfiCond242 CFI EndBlock cfiCond243 CFI EndBlock cfiCond244 CFI EndBlock cfiCond245 CFI EndBlock cfiPicker246 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine32: CFI Block cfiCond247 Using cfiCommon0 CFI Function ZDApp_ProcessMsgCBs CFI Conditional ??CrossCallReturnLabel_43 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 31) CFI Block cfiCond248 Using cfiCommon0 CFI (cfiCond248) Function ZDApp_InMsgCB CFI (cfiCond248) Conditional ??CrossCallReturnLabel_44 CFI (cfiCond248) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond248) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond248) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond248) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond248) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond248) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond248) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond248) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond248) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond248) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond248) CFA_SP SP+-2 CFI (cfiCond248) CFA_XSP16 add(XSP16, 10) CFI Block cfiPicker249 Using cfiCommon1 CFI (cfiPicker249) NoFunction CFI (cfiPicker249) Picker MOV A,R2 LCALL ?Subroutine42 & 0xFFFF ??CrossCallReturnLabel_107: MOVX A,@DPTR MOV ?V0,A INC DPTR MOVX A,@DPTR RET CFI EndBlock cfiCond247 CFI EndBlock cfiCond248 CFI EndBlock cfiPicker249 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine31: CFI Block cfiCond250 Using cfiCommon0 CFI Function ZDO_LeaveCnf CFI Conditional ??CrossCallReturnLabel_111 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 10) CFI Block cfiCond251 Using cfiCommon0 CFI (cfiCond251) Function ZDO_LeaveInd CFI (cfiCond251) Conditional ??CrossCallReturnLabel_112 CFI (cfiCond251) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond251) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond251) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond251) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond251) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond251) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond251) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond251) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond251) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond251) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond251) CFA_SP SP+-2 CFI (cfiCond251) CFA_XSP16 add(XSP16, 12) CFI Block cfiPicker252 Using cfiCommon1 CFI (cfiPicker252) NoFunction CFI (cfiPicker252) Picker MOV A,R6 CFI EndBlock cfiCond250 CFI EndBlock cfiCond251 CFI EndBlock cfiPicker252 REQUIRE ??Subroutine59_0 ; // Fall through to label ??Subroutine59_0 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ??Subroutine59_0: CFI Block cfiCond253 Using cfiCommon0 CFI Function ZDO_LeaveInd CFI Conditional ??CrossCallReturnLabel_109 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 12) CFI Block cfiCond254 Using cfiCommon0 CFI (cfiCond254) Function ZDApp_InMsgCB CFI (cfiCond254) Conditional ??CrossCallReturnLabel_110 CFI (cfiCond254) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond254) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond254) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond254) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond254) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond254) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond254) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond254) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond254) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond254) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond254) CFA_SP SP+-2 CFI (cfiCond254) CFA_XSP16 add(XSP16, 10) CFI Block cfiCond255 Using cfiCommon0 CFI (cfiCond255) Function ZDO_LeaveCnf CFI (cfiCond255) Conditional ??CrossCallReturnLabel_111 CFI (cfiCond255) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond255) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond255) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond255) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond255) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond255) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond255) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond255) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond255) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond255) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond255) CFA_SP SP+-2 CFI (cfiCond255) CFA_XSP16 add(XSP16, 10) CFI Block cfiCond256 Using cfiCommon0 CFI (cfiCond256) Function ZDO_LeaveInd CFI (cfiCond256) Conditional ??CrossCallReturnLabel_112 CFI (cfiCond256) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond256) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond256) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond256) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond256) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond256) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond256) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond256) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond256) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond256) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond256) CFA_SP SP+-2 CFI (cfiCond256) CFA_XSP16 add(XSP16, 12) CFI Block cfiPicker257 Using cfiCommon1 CFI (cfiPicker257) NoFunction CFI (cfiPicker257) Picker LCALL ?Subroutine41 & 0xFFFF ??CrossCallReturnLabel_114: MOVX A,@DPTR RET CFI EndBlock cfiCond253 CFI EndBlock cfiCond254 CFI EndBlock cfiCond255 CFI EndBlock cfiCond256 CFI EndBlock cfiPicker257 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine41: CFI Block cfiCond258 Using cfiCommon0 CFI Function ZDO_LeaveInd CFI Conditional ??CrossCallReturnLabel_113 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 12) CFI Block cfiCond259 Using cfiCommon0 CFI (cfiCond259) Function ZDO_LeaveCnf CFI (cfiCond259) Conditional ??CrossCallReturnLabel_114, ??CrossCallReturnLabel_111 CFI (cfiCond259) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond259) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond259) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond259) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond259) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond259) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond259) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond259) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond259) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond259) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond259) CFA_SP SP+-4 CFI (cfiCond259) CFA_XSP16 add(XSP16, 10) CFI Block cfiCond260 Using cfiCommon0 CFI (cfiCond260) Function ZDO_LeaveInd CFI (cfiCond260) Conditional ??CrossCallReturnLabel_114, ??CrossCallReturnLabel_112 CFI (cfiCond260) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond260) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond260) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond260) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond260) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond260) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond260) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond260) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond260) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond260) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond260) CFA_SP SP+-4 CFI (cfiCond260) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond261 Using cfiCommon0 CFI (cfiCond261) Function ZDO_LeaveInd CFI (cfiCond261) Conditional ??CrossCallReturnLabel_114, ??CrossCallReturnLabel_109 CFI (cfiCond261) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond261) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond261) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond261) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond261) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond261) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond261) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond261) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond261) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond261) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond261) CFA_SP SP+-4 CFI (cfiCond261) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond262 Using cfiCommon0 CFI (cfiCond262) Function ZDApp_InMsgCB CFI (cfiCond262) Conditional ??CrossCallReturnLabel_114, ??CrossCallReturnLabel_110 CFI (cfiCond262) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond262) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond262) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond262) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond262) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond262) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond262) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond262) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond262) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond262) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond262) CFA_SP SP+-4 CFI (cfiCond262) CFA_XSP16 add(XSP16, 10) CFI Block cfiPicker263 Using cfiCommon1 CFI (cfiPicker263) NoFunction CFI (cfiPicker263) Picker ADD A,#0xb MOV DPL,A CLR A ADDC A,R7 MOV DPH,A RET CFI EndBlock cfiCond258 CFI EndBlock cfiCond259 CFI EndBlock cfiCond260 CFI EndBlock cfiCond261 CFI EndBlock cfiCond262 CFI EndBlock cfiPicker263 // 2780 // 2781 // 2782 /********************************************************************* // 2783 * @fn ZDApp_ChangeMatchDescRespPermission() // 2784 * // 2785 * @brief Changes the Match Descriptor Response permission. // 2786 * // 2787 * @param endpoint - endpoint to allow responses // 2788 * @param action - true to allow responses, false to not // 2789 * // 2790 * @return none // 2791 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2792 void ZDApp_ChangeMatchDescRespPermission( uint8 endpoint, uint8 action ) ZDApp_ChangeMatchDescRespPermission: CFI Block cfiBlock264 Using cfiCommon0 CFI Function ZDApp_ChangeMatchDescRespPermission CODE // 2793 { FUNCALL ZDApp_ChangeMatchDescRespPermission, afSetMatch LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC MOV A,#-0x9 LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 9) ; Saved register size: 9 ; Auto size: 0 // 2794 // Store the action // 2795 afSetMatch( endpoint, action ); ; Setup parameters for call to function afSetMatch LCALL `??afSetMatch::?relay`; Banked call to: afSetMatch // 2796 } LJMP ??Subroutine52_0 & 0xFFFF CFI EndBlock cfiBlock264 // 2797 // 2798 /********************************************************************* // 2799 * @fn ZDApp_NetworkInit() // 2800 * // 2801 * @brief Used to start the network joining process // 2802 * // 2803 * @param delay - mSec delay to wait before starting // 2804 * // 2805 * @return none // 2806 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2807 void ZDApp_NetworkInit( uint16 delay ) ZDApp_NetworkInit: CFI Block cfiBlock265 Using cfiCommon0 CFI Function ZDApp_NetworkInit CODE // 2808 { FUNCALL ZDApp_NetworkInit, osal_start_timerEx LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_NetworkInit, osal_set_event LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC PUSH DPL CFI DPL0 Frame(CFA_SP, 4) CFI CFA_SP SP+-4 PUSH DPH CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-5 ; Saved register size: 2 ; Auto size: 0 // 2809 if ( delay ) MOV A,R2 ORL A,R3 JZ ??ZDApp_NetworkInit_0 // 2810 { // 2811 // Wait awhile before starting the device // 2812 osal_start_timerEx( ZDAppTaskID, ZDO_NETWORK_INIT, delay ); ; Setup parameters for call to function osal_start_timerEx MOV A,R2 MOV R4,A MOV A,R3 MOV R5,A MOV R2,#0x1 LCALL ?Subroutine22 & 0xFFFF // 2813 } ??CrossCallReturnLabel_79: SJMP ??CrossCallReturnLabel_66 // 2814 else // 2815 { // 2816 osal_set_event( ZDAppTaskID, ZDO_NETWORK_INIT ); ??ZDApp_NetworkInit_0: ; Setup parameters for call to function osal_set_event MOV R2,#0x1 LCALL ??Subroutine43_0 & 0xFFFF // 2817 } // 2818 } ??CrossCallReturnLabel_66: LJMP ?Subroutine3 & 0xFFFF CFI EndBlock cfiBlock265 // 2819 // 2820 /********************************************************************* // 2821 * @fn ZDApp_NwkStateUpdateCB() // 2822 * // 2823 * @brief This function notifies that this device's network // 2824 * state info has been changed. // 2825 * // 2826 * @param none // 2827 * // 2828 * @return none // 2829 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2830 void ZDApp_NwkStateUpdateCB( void ) ZDApp_NwkStateUpdateCB: CFI Block cfiBlock266 Using cfiCommon0 CFI Function ZDApp_NwkStateUpdateCB CODE // 2831 { FUNCALL ZDApp_NwkStateUpdateCB, osal_get_timeoutEx LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC PUSH DPL CFI DPL0 Frame(CFA_SP, 4) CFI CFA_SP SP+-4 PUSH DPH CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-5 ; Saved register size: 2 ; Auto size: 0 // 2832 // Notify to save info into NV // 2833 if ( !osal_get_timeoutEx( ZDAppTaskID, ZDO_NWK_UPDATE_NV ) ) ; Setup parameters for call to function osal_get_timeoutEx MOV R2,#0x0 MOV R3,#0x2 MOV DPTR,#ZDAppTaskID MOVX A,@DPTR MOV R1,A LCALL `??osal_get_timeoutEx::?relay`; Banked call to: osal_get_timeoutEx // 2834 { // 2835 // Trigger to save info into NV // 2836 ZDApp_NVUpdate(); // 2837 } // 2838 } LJMP ?Subroutine3 & 0xFFFF CFI EndBlock cfiBlock266 // 2839 // 2840 /********************************************************************* // 2841 * @fn ZDApp_NodeProfileSync() // 2842 * // 2843 * @brief Sync node with stack profile. // 2844 * // 2845 * @param stackProfile - stack profile of the network to join // 2846 * // 2847 * @return none // 2848 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2849 void ZDApp_NodeProfileSync( uint8 stackProfile ) ZDApp_NodeProfileSync: CFI Block cfiBlock267 Using cfiCommon0 CFI Function ZDApp_NodeProfileSync CODE // 2850 { FUNCALL ZDApp_NodeProfileSync, NLME_SetBroadcastFilter LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 9, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 9, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC MOV A,#-0x9 LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 9) ; Saved register size: 9 ; Auto size: 0 MOV A,R1 MOV R6,A // 2851 if ( ZDO_Config_Node_Descriptor.CapabilityFlags & CAPINFO_DEVICETYPE_FFD ) MOV DPTR,#ZDO_Config_Node_Descriptor + 2 MOVX A,@DPTR MOV C,0xE0 /* A */.1 JNC ??ZDApp_NodeProfileSync_0 // 2852 { // 2853 if ( stackProfile != zgStackProfile ) MOV DPTR,#zgStackProfile MOVX A,@DPTR XRL A,R6 JZ ??ZDApp_NodeProfileSync_0 // 2854 { // 2855 ZDO_Config_Node_Descriptor.LogicalType = NODETYPE_DEVICE; MOV DPTR,#ZDO_Config_Node_Descriptor MOVX A,@DPTR ANL A,#0xf8 ORL A,#0x2 MOVX @DPTR,A // 2856 ZDO_Config_Node_Descriptor.CapabilityFlags = CAPINFO_DEVICETYPE_RFD | CAPINFO_POWER_AC | CAPINFO_RCVR_ON_IDLE; MOV DPTR,#ZDO_Config_Node_Descriptor + 2 MOV A,#0xc MOVX @DPTR,A // 2857 NLME_SetBroadcastFilter( ZDO_Config_Node_Descriptor.CapabilityFlags ); ; Setup parameters for call to function NLME_SetBroadcastFilter MOV R1,A LCALL `??NLME_SetBroadcastFilter::?relay`; Banked call to: NLME_SetBroadcastFilter // 2858 } // 2859 } // 2860 } ??ZDApp_NodeProfileSync_0: LJMP ??Subroutine52_0 & 0xFFFF CFI EndBlock cfiBlock267 // 2861 // 2862 /********************************************************************* // 2863 * @fn ZDApp_StartJoiningCycle() // 2864 * // 2865 * @brief Starts the joining cycle of a device. This will only // 2866 * continue an already started (or stopped) joining cycle. // 2867 * // 2868 * @param none // 2869 * // 2870 * @return TRUE if joining stopped, FALSE if joining or rejoining // 2871 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2872 uint8 ZDApp_StartJoiningCycle( void ) ZDApp_StartJoiningCycle: CFI Block cfiBlock268 Using cfiCommon0 CFI Function ZDApp_StartJoiningCycle CODE // 2873 { FUNCALL ZDApp_StartJoiningCycle, ZDApp_NetworkInit LOCFRAME ISTACK, 2, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 0, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 2, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 0, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC PUSH DPL CFI DPL0 Frame(CFA_SP, 4) CFI CFA_SP SP+-4 PUSH DPH CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-5 ; Saved register size: 2 ; Auto size: 0 // 2874 if ( devState == DEV_INIT || devState == DEV_NWK_DISC ) MOV DPTR,#devState MOVX A,@DPTR XRL A,#0x1 JZ ??ZDApp_StartJoiningCycle_0 MOVX A,@DPTR XRL A,#0x2 JNZ ??ZDApp_StartJoiningCycle_1 // 2875 { // 2876 continueJoining = TRUE; ??ZDApp_StartJoiningCycle_0: MOV DPTR,#continueJoining MOV A,#0x1 MOVX @DPTR,A // 2877 ZDApp_NetworkInit( 0 ); ; Setup parameters for call to function ZDApp_NetworkInit MOV R2,#0x0 MOV R3,#0x0 LCALL `??ZDApp_NetworkInit::?relay`; Banked call to: ZDApp_NetworkInit // 2878 // 2879 return ( TRUE ); MOV R1,#0x1 SJMP ??ZDApp_StartJoiningCycle_2 // 2880 } // 2881 else // 2882 return ( FALSE ); ??ZDApp_StartJoiningCycle_1: MOV R1,#0x0 ??ZDApp_StartJoiningCycle_2: LJMP ?Subroutine3 & 0xFFFF // 2883 } CFI EndBlock cfiBlock268 // 2884 // 2885 /********************************************************************* // 2886 * @fn ZDApp_StopJoiningCycle() // 2887 * // 2888 * @brief Stops the joining or rejoining process of a device. // 2889 * // 2890 * @param none // 2891 * // 2892 * @return TRUE if joining stopped, FALSE if joining or rejoining // 2893 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2894 uint8 ZDApp_StopJoiningCycle( void ) ZDApp_StopJoiningCycle: CFI Block cfiBlock269 Using cfiCommon0 CFI Function ZDApp_StopJoiningCycle CODE // 2895 { PUSH DPL CFI DPL0 Frame(CFA_SP, 4) CFI CFA_SP SP+-4 PUSH DPH CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-5 ; Saved register size: 2 ; Auto size: 0 // 2896 if ( devState == DEV_INIT || devState == DEV_NWK_DISC ) MOV DPTR,#devState MOVX A,@DPTR XRL A,#0x1 JZ ??ZDApp_StopJoiningCycle_0 MOVX A,@DPTR XRL A,#0x2 JNZ ??ZDApp_StopJoiningCycle_1 // 2897 { // 2898 continueJoining = FALSE; ??ZDApp_StopJoiningCycle_0: MOV DPTR,#continueJoining CLR A MOVX @DPTR,A // 2899 return ( TRUE ); MOV R1,#0x1 SJMP ??ZDApp_StopJoiningCycle_2 // 2900 } // 2901 else // 2902 return ( FALSE ); ??ZDApp_StopJoiningCycle_1: MOV R1,#0x0 ??ZDApp_StopJoiningCycle_2: LJMP ?Subroutine3 & 0xFFFF // 2903 } CFI EndBlock cfiBlock269 // 2904 // 2905 /********************************************************************* // 2906 * @fn ZDApp_AnnounceNewAddress() // 2907 * // 2908 * @brief Send Device Announce and hold all transmissions for // 2909 * new address timeout. // 2910 * // 2911 * @param none // 2912 * // 2913 * @return none // 2914 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2915 void ZDApp_AnnounceNewAddress( void ) ZDApp_AnnounceNewAddress: CFI Block cfiBlock270 Using cfiCommon0 CFI Function ZDApp_AnnounceNewAddress CODE // 2916 { FUNCALL ZDApp_AnnounceNewAddress, APSME_HoldDataRequests LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 10, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 10, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_AnnounceNewAddress, NLME_GetExtAddr LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 10, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 10, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_AnnounceNewAddress, NLME_GetShortAddr LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 10, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 10, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_AnnounceNewAddress, ZDP_DeviceAnnce LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 11, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 11, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC FUNCALL ZDApp_AnnounceNewAddress, APSME_HoldDataRequests LOCFRAME ISTACK, 0, STACK LOCFRAME PSTACK, 0, STACK LOCFRAME XSTACK, 10, STACK LOCFRAME IOVERLAY, 0, STATIC LOCFRAME DOVERLAY, 0, STATIC ARGFRAME ISTACK, 0, STACK ARGFRAME PSTACK, 0, STACK ARGFRAME XSTACK, 10, STACK ARGFRAME IOVERLAY, 0, STATIC ARGFRAME DOVERLAY, 0, STATIC REQUIRE ?V0 REQUIRE ?V1 MOV A,#-0xa LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 10) ; Saved register size: 10 ; Auto size: 0 // 2917 #if defined ( ZIGBEE_NWK_UNIQUE_ADDR_CHECK ) // 2918 // Turn off data request hold // 2919 APSME_HoldDataRequests( 0 ); ; Setup parameters for call to function APSME_HoldDataRequests MOV R2,#0x0 MOV R3,#0x0 LCALL `??APSME_HoldDataRequests::?relay`; Banked call to: APSME_HoldDataRequests // 2920 #endif // 2921 // 2922 ZDP_DeviceAnnce( NLME_GetShortAddr(), NLME_GetExtAddr(), // 2923 ZDO_Config_Node_Descriptor.CapabilityFlags, 0 ); ; Setup parameters for call to function NLME_GetExtAddr LCALL `??NLME_GetExtAddr::?relay`; Banked call to: NLME_GetExtAddr MOV ?V0,R2 MOV ?V1,R3 MOV R6,?V0 ; Setup parameters for call to function NLME_GetShortAddr LCALL `??NLME_GetShortAddr::?relay`; Banked call to: NLME_GetShortAddr ; Setup parameters for call to function ZDP_DeviceAnnce MOV ?V0,#0x0 MOV R0,#?V0 LCALL ?PUSH_XSTACK_I_ONE CFI CFA_XSP16 add(XSP16, 11) MOV DPTR,#ZDO_Config_Node_Descriptor + 2 MOVX A,@DPTR MOV R1,A MOV A,R6 MOV R4,A MOV R5,?V1 LCALL `??ZDP_DeviceAnnce::?relay`; Banked call to: ZDP_DeviceAnnce MOV A,#0x1 LCALL ?DEALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 10) // 2924 // 2925 #if defined ( ZIGBEE_NWK_UNIQUE_ADDR_CHECK ) // 2926 // Setup the timeout // 2927 APSME_HoldDataRequests( ZDAPP_HOLD_DATA_REQUESTS_TIMEOUT ); ; Setup parameters for call to function APSME_HoldDataRequests MOV R2,#0x0 MOV R3,#0x0 LCALL `??APSME_HoldDataRequests::?relay`; Banked call to: APSME_HoldDataRequests // 2928 #endif // 2929 } LJMP ??Subroutine50_0 & 0xFFFF CFI EndBlock cfiBlock270 // 2930 // 2931 /********************************************************************* // 2932 * @fn ZDApp_NVUpdate // 2933 * // 2934 * @brief Set the NV Update Timer. // 2935 * // 2936 * @param none // 2937 * // 2938 * @return none // 2939 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2940 void ZDApp_NVUpdate( void ) ZDApp_NVUpdate: CFI Block cfiBlock271 Using cfiCommon0 CFI Function ZDApp_NVUpdate CODE // 2941 { ; Saved register size: 0 ; Auto size: 0 // 2942 #if defined ( NV_RESTORE ) // 2943 osal_start_timerEx( ZDAppTaskID, ZDO_NWK_UPDATE_NV, ZDAPP_UPDATE_NWK_NV_TIME ); // 2944 #endif // 2945 } LJMP ?BRET CFI EndBlock cfiBlock271 // 2946 // 2947 /********************************************************************* // 2948 * @fn ZDApp_CoordStartPANIDConflictCB() // 2949 * // 2950 * @brief Returns a PAN ID for the network layer to use during // 2951 * a coordinator start and there is another network with // 2952 * the intended PANID. // 2953 * // 2954 * @param panid - the intended PAN ID // 2955 * // 2956 * @return PANID to try // 2957 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2958 uint16 ZDApp_CoordStartPANIDConflictCB( uint16 panid ) ZDApp_CoordStartPANIDConflictCB: CFI Block cfiBlock272 Using cfiCommon0 CFI Function ZDApp_CoordStartPANIDConflictCB CODE // 2959 { ; Saved register size: 0 ; Auto size: 0 // 2960 return ( panid + 1 ); MOV A,R2 ADD A,#0x1 INC R2 JNC ??ZDApp_CoordStartPANIDConflictCB_0 INC R3 ??ZDApp_CoordStartPANIDConflictCB_0: LJMP ?BRET // 2961 } CFI EndBlock cfiBlock272 // 2962 // 2963 /********************************************************************* // 2964 * @fn ZDO_SrcRtgIndCB // 2965 * // 2966 * @brief This function notifies the ZDO available src route record received. // 2967 * // 2968 * @param srcAddr - source address of the source route // 2969 * @param relayCnt - number of devices in the relay list // 2970 * @param relayList - relay list of the source route // 2971 * // 2972 * @return none // 2973 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2974 void ZDO_SrcRtgIndCB (uint16 srcAddr, uint8 relayCnt, uint16* pRelayList ) ZDO_SrcRtgIndCB: CFI Block cfiBlock273 Using cfiCommon0 CFI Function ZDO_SrcRtgIndCB CODE // 2975 { MOV A,#-0x9 LCALL ?BANKED_ENTER_XDATA CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI CFA_SP SP+0 CFI CFA_XSP16 add(XSP16, 9) ; Saved register size: 9 ; Auto size: 5 MOV A,#-0x5 LCALL ?ALLOC_XSTACK8 CFI CFA_XSP16 add(XSP16, 14) // 2976 zdoSrcRtg_t srcRtg; // 2977 // 2978 srcRtg.srcAddr = srcAddr; LCALL ?Subroutine12 & 0xFFFF // 2979 srcRtg.relayCnt = relayCnt; ??CrossCallReturnLabel_122: MOV A,#0x2 LCALL ?XSTACK_DISP0_8 MOV A,R1 MOVX @DPTR,A // 2980 srcRtg.pRelayList = pRelayList; MOV A,#0x3 LCALL ?XSTACK_DISP0_8 MOV A,R4 MOVX @DPTR,A INC DPTR MOV A,R5 MOVX @DPTR,A // 2981 // 2982 if( zdoCBFunc[ZDO_SRC_RTG_IND_CBID] != NULL ) MOV DPTR,#zdoCBFunc LCALL ?Subroutine14 & 0xFFFF ??CrossCallReturnLabel_15: JZ ??ZDO_SrcRtgIndCB_0 // 2983 { // 2984 zdoCBFunc[ZDO_SRC_RTG_IND_CBID]( (void*)&srcRtg ); ; Setup parameters for indirect call MOV R2,?XSP + 0 MOV R3,?XSP + 1 LCALL ??Subroutine57_0 & 0xFFFF // 2985 } ??CrossCallReturnLabel_99: LCALL ?CALL_IND // 2986 } ??ZDO_SrcRtgIndCB_0: LJMP ?Subroutine6 & 0xFFFF CFI EndBlock cfiBlock273 // 2987 // 2988 /********************************************************************* // 2989 * @fn ZDApp_InitZdoCBFunc // 2990 * // 2991 * @brief Call this function to initialize zdoCBFunc[] // 2992 * // 2993 * @param none // 2994 * // 2995 * @return none // 2996 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 2997 void ZDApp_InitZdoCBFunc( void ) ZDApp_InitZdoCBFunc: CFI Block cfiBlock274 Using cfiCommon0 CFI Function ZDApp_InitZdoCBFunc CODE // 2998 { PUSH DPL CFI DPL0 Frame(CFA_SP, 4) CFI CFA_SP SP+-4 PUSH DPH CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-5 ; Saved register size: 2 ; Auto size: 0 // 2999 uint8 i; // 3000 // 3001 for ( i=0; i< MAX_ZDO_CB_FUNC; i++ ) MOV R2,#0x0 // 3002 { // 3003 zdoCBFunc[i] = NULL; ??ZDApp_InitZdoCBFunc_0: MOV A,R2 ADD A,0xE0 /* A */ LCALL ?Subroutine39 & 0xFFFF // 3004 } ??CrossCallReturnLabel_55: CLR A MOVX @DPTR,A INC DPTR MOVX @DPTR,A INC R2 MOV A,R2 CLR C SUBB A,#0x6 JC ??ZDApp_InitZdoCBFunc_0 // 3005 } LJMP ?Subroutine3 & 0xFFFF CFI EndBlock cfiBlock274 // 3006 // 3007 /********************************************************************* // 3008 * @fn ZDO_RegisterForZdoCB // 3009 * // 3010 * @brief Call this function to register the higher layer (for // 3011 * example, the Application layer or MT layer) with ZDO // 3012 * callbacks to get notified of some ZDO indication like // 3013 * existence of a concentrator or receipt of a source // 3014 * route record. // 3015 * // 3016 * @param indID - ZDO Indication ID // 3017 * @param pFn - Callback function pointer // 3018 * // 3019 * @return ZSuccess - successful, ZInvalidParameter if not // 3020 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 3021 ZStatus_t ZDO_RegisterForZdoCB( uint8 indID, pfnZdoCb pFn ) ZDO_RegisterForZdoCB: CFI Block cfiBlock275 Using cfiCommon0 CFI Function ZDO_RegisterForZdoCB CODE // 3022 { PUSH DPL CFI DPL0 Frame(CFA_SP, 4) CFI CFA_SP SP+-4 PUSH DPH CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-5 ; Saved register size: 2 ; Auto size: 0 MOV A,R1 // 3023 // Check the range of the indication ID // 3024 if ( indID < MAX_ZDO_CB_FUNC ) CLR C SUBB A,#0x6 JNC ??ZDO_RegisterForZdoCB_0 // 3025 { // 3026 zdoCBFunc[indID] = pFn; LCALL ?Subroutine28 & 0xFFFF ??CrossCallReturnLabel_35: LCALL ??Subroutine60_0 & 0xFFFF // 3027 return ZSuccess; ??CrossCallReturnLabel_119: MOV R1,#0x0 SJMP ??ZDO_RegisterForZdoCB_1 // 3028 } // 3029 // 3030 return ZInvalidParameter; ??ZDO_RegisterForZdoCB_0: MOV R1,#0x2 ??ZDO_RegisterForZdoCB_1: LJMP ?Subroutine3 & 0xFFFF // 3031 } CFI EndBlock cfiBlock275 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine12: CFI Block cfiCond276 Using cfiCommon0 CFI Function ZDOInitDevice CFI Conditional ??CrossCallReturnLabel_120 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 12) CFI Block cfiCond277 Using cfiCommon0 CFI (cfiCond277) Function ZDO_ConcentratorIndicationCB CFI (cfiCond277) Conditional ??CrossCallReturnLabel_121 CFI (cfiCond277) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond277) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond277) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond277) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond277) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond277) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond277) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond277) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond277) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond277) CFA_SP SP+-2 CFI (cfiCond277) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond278 Using cfiCommon0 CFI (cfiCond278) Function ZDO_SrcRtgIndCB CFI (cfiCond278) Conditional ??CrossCallReturnLabel_122 CFI (cfiCond278) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond278) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond278) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond278) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond278) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond278) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond278) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond278) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond278) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond278) CFA_SP SP+-2 CFI (cfiCond278) CFA_XSP16 add(XSP16, 14) CFI Block cfiPicker279 Using cfiCommon1 CFI (cfiPicker279) NoFunction CFI (cfiPicker279) Picker MOV DPL,?XSP + 0 MOV DPH,?XSP + 1 CFI EndBlock cfiCond276 CFI EndBlock cfiCond277 CFI EndBlock cfiCond278 CFI EndBlock cfiPicker279 REQUIRE ??Subroutine60_0 ; // Fall through to label ??Subroutine60_0 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ??Subroutine60_0: CFI Block cfiCond280 Using cfiCommon0 CFI Function ZDApp_ProcessSecEvent CFI Conditional ??CrossCallReturnLabel_115 CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI CFA_SP SP+-2 CFI CFA_XSP16 add(XSP16, 9) CFI Block cfiCond281 Using cfiCommon0 CFI (cfiCond281) Function ZDApp_RestoreNetworkState CFI (cfiCond281) Conditional ??CrossCallReturnLabel_116 CFI (cfiCond281) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond281) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond281) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond281) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond281) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond281) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond281) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond281) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond281) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond281) CFA_SP SP+-2 CFI (cfiCond281) CFA_XSP16 add(XSP16, 9) CFI Block cfiCond282 Using cfiCommon0 CFI (cfiCond282) Function ZDApp_ProcessOSALMsg CFI (cfiCond282) Conditional ??CrossCallReturnLabel_117 CFI (cfiCond282) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond282) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond282) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond282) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond282) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond282) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond282) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond282) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond282) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond282) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond282) CFA_SP SP+-2 CFI (cfiCond282) CFA_XSP16 add(XSP16, 11) CFI Block cfiCond283 Using cfiCommon0 CFI (cfiCond283) Function ZDO_beaconNotifyIndCB CFI (cfiCond283) Conditional ??CrossCallReturnLabel_118 CFI (cfiCond283) R6 load(1, XDATA, add(CFA_XSP16, literal(-14))) CFI (cfiCond283) VB load(1, XDATA, add(CFA_XSP16, literal(-13))) CFI (cfiCond283) V0 load(1, XDATA, add(CFA_XSP16, literal(-12))) CFI (cfiCond283) V1 load(1, XDATA, add(CFA_XSP16, literal(-11))) CFI (cfiCond283) V2 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond283) V3 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond283) V4 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond283) V5 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond283) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond283) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond283) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond283) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond283) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond283) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond283) CFA_SP SP+-2 CFI (cfiCond283) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond284 Using cfiCommon0 CFI (cfiCond284) Function ZDO_RegisterForZdoCB CFI (cfiCond284) Conditional ??CrossCallReturnLabel_119 CFI (cfiCond284) DPL0 Frame(CFA_SP, 4) CFI (cfiCond284) DPH0 Frame(CFA_SP, 5) CFI (cfiCond284) CFA_SP SP+-7 CFI Block cfiCond285 Using cfiCommon0 CFI (cfiCond285) Function ZDOInitDevice CFI (cfiCond285) Conditional ??CrossCallReturnLabel_120 CFI (cfiCond285) R6 load(1, XDATA, add(CFA_XSP16, literal(-10))) CFI (cfiCond285) VB load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond285) V0 load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond285) V1 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond285) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond285) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond285) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond285) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond285) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond285) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond285) CFA_SP SP+-2 CFI (cfiCond285) CFA_XSP16 add(XSP16, 12) CFI Block cfiCond286 Using cfiCommon0 CFI (cfiCond286) Function ZDO_ConcentratorIndicationCB CFI (cfiCond286) Conditional ??CrossCallReturnLabel_121 CFI (cfiCond286) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond286) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond286) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond286) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond286) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond286) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond286) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond286) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond286) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond286) CFA_SP SP+-2 CFI (cfiCond286) CFA_XSP16 add(XSP16, 14) CFI Block cfiCond287 Using cfiCommon0 CFI (cfiCond287) Function ZDO_SrcRtgIndCB CFI (cfiCond287) Conditional ??CrossCallReturnLabel_122 CFI (cfiCond287) R6 load(1, XDATA, add(CFA_XSP16, literal(-9))) CFI (cfiCond287) VB load(1, XDATA, add(CFA_XSP16, literal(-8))) CFI (cfiCond287) V0 load(1, XDATA, add(CFA_XSP16, literal(-7))) CFI (cfiCond287) R7 load(1, XDATA, add(CFA_XSP16, literal(-6))) CFI (cfiCond287) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5))) CFI (cfiCond287) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4))) CFI (cfiCond287) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3))) CFI (cfiCond287) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2))) CFI (cfiCond287) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1))) CFI (cfiCond287) CFA_SP SP+-2 CFI (cfiCond287) CFA_XSP16 add(XSP16, 14) CFI Block cfiPicker288 Using cfiCommon1 CFI (cfiPicker288) NoFunction CFI (cfiPicker288) Picker MOV A,R2 MOVX @DPTR,A INC DPTR MOV A,R3 MOVX @DPTR,A RET CFI EndBlock cfiCond280 CFI EndBlock cfiCond281 CFI EndBlock cfiCond282 CFI EndBlock cfiCond283 CFI EndBlock cfiCond284 CFI EndBlock cfiCond285 CFI EndBlock cfiCond286 CFI EndBlock cfiCond287 CFI EndBlock cfiPicker288 // 3032 // 3033 /********************************************************************* // 3034 * @fn ZDO_DeregisterForZdoCB // 3035 * // 3036 * @brief Call this function to de-register the higher layer (for // 3037 * example, the Application layer or MT layer) with ZDO // 3038 * callbacks to get notified of some ZDO indication like // 3039 * existence of a concentrator or receipt of a source // 3040 * route record. // 3041 * // 3042 * @param indID - ZDO Indication ID // 3043 * // 3044 * @return ZSuccess - successful, ZInvalidParameter if not // 3045 */ RSEG BANKED_CODE:HUGECODE:NOROOT(0) // 3046 ZStatus_t ZDO_DeregisterForZdoCB( uint8 indID ) ZDO_DeregisterForZdoCB: CFI Block cfiBlock289 Using cfiCommon0 CFI Function ZDO_DeregisterForZdoCB CODE // 3047 { PUSH DPL CFI DPL0 Frame(CFA_SP, 4) CFI CFA_SP SP+-4 PUSH DPH CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-5 ; Saved register size: 2 ; Auto size: 0 MOV A,R1 // 3048 // Check the range of the indication ID // 3049 if ( indID < MAX_ZDO_CB_FUNC ) CLR C SUBB A,#0x6 JNC ??ZDO_DeregisterForZdoCB_0 // 3050 { // 3051 zdoCBFunc[indID] = NULL; LCALL ?Subroutine28 & 0xFFFF ??CrossCallReturnLabel_36: CLR A MOVX @DPTR,A INC DPTR MOVX @DPTR,A // 3052 return ZSuccess; MOV R1,A SJMP ??ZDO_DeregisterForZdoCB_1 // 3053 } // 3054 // 3055 return ZInvalidParameter; ??ZDO_DeregisterForZdoCB_0: MOV R1,#0x2 ??ZDO_DeregisterForZdoCB_1: LJMP ?Subroutine3 & 0xFFFF // 3056 } CFI EndBlock cfiBlock289 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine28: CFI Block cfiCond290 Using cfiCommon0 CFI Function ZDO_RegisterForZdoCB CFI Conditional ??CrossCallReturnLabel_35 CFI DPL0 Frame(CFA_SP, 4) CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-7 CFI Block cfiCond291 Using cfiCommon0 CFI (cfiCond291) Function ZDO_DeregisterForZdoCB CFI (cfiCond291) Conditional ??CrossCallReturnLabel_36 CFI (cfiCond291) DPL0 Frame(CFA_SP, 4) CFI (cfiCond291) DPH0 Frame(CFA_SP, 5) CFI (cfiCond291) CFA_SP SP+-7 CFI Block cfiPicker292 Using cfiCommon1 CFI (cfiPicker292) NoFunction CFI (cfiPicker292) Picker MOV A,R1 ADD A,R1 LCALL ?Subroutine39 & 0xFFFF ??CrossCallReturnLabel_56: RET CFI EndBlock cfiCond290 CFI EndBlock cfiCond291 CFI EndBlock cfiPicker292 RSEG BANKED_CODE:HUGECODE:NOROOT(0) ?Subroutine39: CFI Block cfiCond293 Using cfiCommon0 CFI Function ZDApp_InitZdoCBFunc CFI Conditional ??CrossCallReturnLabel_55 CFI DPL0 Frame(CFA_SP, 4) CFI DPH0 Frame(CFA_SP, 5) CFI CFA_SP SP+-7 CFI Block cfiCond294 Using cfiCommon0 CFI (cfiCond294) Function ZDO_RegisterForZdoCB CFI (cfiCond294) Conditional ??CrossCallReturnLabel_56, ??CrossCallReturnLabel_35 CFI (cfiCond294) DPL0 Frame(CFA_SP, 4) CFI (cfiCond294) DPH0 Frame(CFA_SP, 5) CFI (cfiCond294) CFA_SP SP+-9 CFI Block cfiCond295 Using cfiCommon0 CFI (cfiCond295) Function ZDO_DeregisterForZdoCB CFI (cfiCond295) Conditional ??CrossCallReturnLabel_56, ??CrossCallReturnLabel_36 CFI (cfiCond295) DPL0 Frame(CFA_SP, 4) CFI (cfiCond295) DPH0 Frame(CFA_SP, 5) CFI (cfiCond295) CFA_SP SP+-9 CFI Block cfiPicker296 Using cfiCommon1 CFI (cfiPicker296) NoFunction CFI (cfiPicker296) Picker MOV R0,A CLR A RLC A MOV R1,A MOV A,#zdoCBFunc & 0xff ADD A,R0 MOV DPL,A MOV A,#(zdoCBFunc >> 8) & 0xff ADDC A,R1 MOV DPH,A RET CFI EndBlock cfiCond293 CFI EndBlock cfiCond294 CFI EndBlock cfiCond295 CFI EndBlock cfiPicker296 RSEG XDATA_ID:CODE:NOROOT(0) `?`: DATA8 DB 1 RSEG XDATA_ID:CODE:NOROOT(0) `?`: DATA8 DB 1 RSEG XDATA_ID:CODE:NOROOT(0) `?`: DATA8 DB 1 RSEG XDATA_ID:CODE:NOROOT(0) `?`: DATA8 DB 0 DATA16 DW ZDAppTaskID DW 0H DATA8 DB 0 RSEG XDATA_ID:CODE:NOROOT(0) `?`: DATA16 DW 1000 RSEG XDATA_ROM_C:CONST:REORDER:NOROOT(0) DATA32 __Constant_1: DD 1 RSEG XDATA_ROM_C:CONST:REORDER:NOROOT(0) DATA32 __Constant_3e8: DD 1000 RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_Init::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_Init RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_SecInit::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_SecInit RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_event_loop::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_event_loop RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_ProcessSecEvent::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_ProcessSecEvent RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDOInitDevice::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDOInitDevice RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_ReadNetworkRestoreState::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_ReadNetworkRestoreState RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDAppDetermineDeviceType::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDAppDetermineDeviceType RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_NetworkStartEvt::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_NetworkStartEvt RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_DeviceAuthEvt::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_DeviceAuthEvt RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_SaveNetworkStateEvt::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_SaveNetworkStateEvt RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_RestoreNetworkState::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_RestoreNetworkState RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_InitUserDesc::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_InitUserDesc RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDAppCheckForHoldKey::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDAppCheckForHoldKey RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_ProcessOSALMsg::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_ProcessOSALMsg RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_ProcessMsgCBs::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_ProcessMsgCBs RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_RegisterCBs::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_RegisterCBs RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_ProcessSecMsg::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_ProcessSecMsg RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_ProcessNetworkJoin::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_ProcessNetworkJoin RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_SaveNwkKey::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_SaveNwkKey RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_ResetNwkKey::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_ResetNwkKey RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_RestoreNwkKey::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_RestoreNwkKey RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_ResetTimerStart::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_ResetTimerStart RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_ResetTimerCancel::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_ResetTimerCancel RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_LeaveCtrlInit::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_LeaveCtrlInit RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_LeaveCtrlSet::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_LeaveCtrlSet RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_LeaveCtrlReset::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_LeaveCtrlReset RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_LeaveCtrlBypass::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_LeaveCtrlBypass RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_LeaveCtrlStartup::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_LeaveCtrlStartup RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_LeaveReset::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_LeaveReset RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_LeaveUpdate::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_LeaveUpdate RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_NetworkDiscoveryReq::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_NetworkDiscoveryReq RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_JoinReq::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_JoinReq RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_DeviceConfigured::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_DeviceConfigured RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_SendEventMsg::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_SendEventMsg RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_SendMsg::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_SendMsg RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDO_NetworkDiscoveryConfirmCB::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDO_NetworkDiscoveryConfirmCB RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_NwkDescListProcessing::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_NwkDescListProcessing RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDO_NetworkFormationConfirmCB::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDO_NetworkFormationConfirmCB RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDO_beaconNotifyIndCB::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDO_beaconNotifyIndCB RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDO_StartRouterConfirmCB::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDO_StartRouterConfirmCB RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDO_JoinConfirmCB::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDO_JoinConfirmCB RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDO_AddrChangeIndicationCB::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDO_AddrChangeIndicationCB RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDO_JoinIndicationCB::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDO_JoinIndicationCB RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDO_ConcentratorIndicationCB::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDO_ConcentratorIndicationCB RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDO_LeaveCnf::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDO_LeaveCnf RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDO_LeaveInd::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDO_LeaveInd RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDO_SyncIndicationCB::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDO_SyncIndicationCB RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDO_ManytoOneFailureIndicationCB::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDO_ManytoOneFailureIndicationCB RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDO_PollConfirmCB::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDO_PollConfirmCB RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??AddrMgrWriteNVRequest::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 AddrMgrWriteNVRequest RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDO_UpdateDeviceIndication::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDO_UpdateDeviceIndication RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_InMsgCB::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_InMsgCB RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_ChangeMatchDescRespPermission::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_ChangeMatchDescRespPermission RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_NetworkInit::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_NetworkInit RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_NwkStateUpdateCB::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_NwkStateUpdateCB RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_NodeProfileSync::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_NodeProfileSync RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_StartJoiningCycle::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_StartJoiningCycle RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_StopJoiningCycle::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_StopJoiningCycle RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_AnnounceNewAddress::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_AnnounceNewAddress RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_NVUpdate::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_NVUpdate RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_CoordStartPANIDConflictCB::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_CoordStartPANIDConflictCB RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDO_SrcRtgIndCB::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDO_SrcRtgIndCB RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDApp_InitZdoCBFunc::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDApp_InitZdoCBFunc RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDO_RegisterForZdoCB::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDO_RegisterForZdoCB RSEG BANK_RELAYS:CODE:REORDER:NOROOT(0) `??ZDO_DeregisterForZdoCB::?relay`: CODE LCALL ?BDISPATCH DATA24 DC24 ZDO_DeregisterForZdoCB END // 3057 // 3058 /********************************************************************* // 3059 *********************************************************************/ // // 5 147 bytes in segment BANKED_CODE // 390 bytes in segment BANK_RELAYS // 11 bytes in segment XDATA_I // 11 bytes in segment XDATA_ID // 8 bytes in segment XDATA_ROM_C // 53 bytes in segment XDATA_Z // // 401 bytes of CODE memory // 0 bytes of CONST memory (+ 8 bytes shared) // 5 147 bytes of HUGECODE memory // 64 bytes of XDATA memory // //Errors: none //Warnings: none