zdobject.lst

来自「用IAR开发的ZIGBEE网络路由例子」· LST 代码 · 共 1,291 行 · 第 1/5 页

LST
1,291
字号
   \   000044   90....       MOV     DPTR,#devState
   \   000047   F0           MOVX    @DPTR,A
    342          
    343                  /* if router and nvram is available, fake successful orphan scan */
    344                  scanCnf.hdr.Status = ZSUCCESS;
   \   000048   7401         MOV     A,#0x1
   \   00004A   12....       LCALL   ?XSTACK_DISP0_8
   \   00004D   E4           CLR     A
   \   00004E   F0           MOVX    @DPTR,A
    345                  scanCnf.ScanType = ZMAC_ORPHAN_SCAN;
   \   00004F   7402         MOV     A,#0x2
   \   000051   12....       LCALL   ?XSTACK_DISP0_8
   \   000054   7403         MOV     A,#0x3
   \   000056   F0           MOVX    @DPTR,A
    346                  scanCnf.UnscannedChannels = 0;
   \   000057   90....       MOV     DPTR,#__Constant_0
   \   00005A   78..         MOV     R0,#?V0 + 0
   \   00005C   12....       LCALL   ?L_MOV_X
   \   00005F   7404         MOV     A,#0x4
   \   000061   12....       LCALL   ?XSTACK_DISP0_8
   \   000064   78..         MOV     R0,#?V0 + 0
   \   000066   12....       LCALL   ?L_MOV_TO_X
    347                  scanCnf.ResultListSize = 0;
   \   000069   7408         MOV     A,#0x8
   \   00006B   12....       LCALL   ?XSTACK_DISP0_8
   \   00006E   E4           CLR     A
   \   00006F   F0           MOVX    @DPTR,A
    348                  nwk_ScanJoiningOrphan(&scanCnf);
   \   000070                ; Setup parameters for call to function nwk_ScanJoiningOrphan
   \   000070   85..82       MOV     DPL,?XSP + 0
   \   000073   85..83       MOV     DPH,?XSP + 1
   \   000076   AA82         MOV     R2,DPL
   \   000078   AB83         MOV     R3,DPH
   \   00007A   90....       MOV     DPTR,#(nwk_ScanJoiningOrphan & 0xffff)
   \   00007D   74..         MOV     A,#((nwk_ScanJoiningOrphan >> 16) & 0xff)
   \   00007F   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    349          
    350                  ret = ZSuccess;
   \   000082   7E00         MOV     R6,#0x0
   \   000084   801A         SJMP    ??ZDO_StartDevice_1
    351                }
    352                else
    353                {
    354                  devState = DEV_NWK_ORPHAN;
   \                     ??ZDO_StartDevice_5:
   \   000086   740A         MOV     A,#0xa
   \   000088   12....       LCALL   ?Subroutine1 & 0xFFFF
    355                  ret = NLME_OrphanJoinRequest( zgDefaultChannelList,
    356                                                zgDefaultStartingScanDuration );
   \                     ??CrossCallReturnLabel_3:
   \   00008B   12....       LCALL   ?L_MOV_X
   \   00008E   AA..         MOV     R2,?V0 + 0
   \   000090   AB..         MOV     R3,?V0 + 1
   \   000092   AC..         MOV     R4,?V0 + 2
   \   000094   AD..         MOV     R5,?V0 + 3
   \   000096   90....       MOV     DPTR,#(NLME_OrphanJoinRequest & 0xffff)
   \   000099   74..         MOV     A,#((NLME_OrphanJoinRequest >> 16) & 0xff)
   \                     ??ZDO_StartDevice_4:
   \   00009B   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00009E   E9           MOV     A,R1
   \   00009F   FE           MOV     R6,A
    357                }
    358              }
    359              else
    360              {
    361          #if defined( LCD_SUPPORTED )
    362                HalLcdWriteScreen( "StartDevice ERR", "MODE unknown" );
    363          #endif
    364              }
    365            }
    366          #endif  //!ZDO COORDINATOR || SOFT_START
    367          
    368            // configure the Security Manager for type of device
    369            ZDSecMgrConfig();
   \                     ??ZDO_StartDevice_1:
   \   0000A0                ; Setup parameters for call to function ZDSecMgrConfig
   \   0000A0   90....       MOV     DPTR,#(ZDSecMgrConfig & 0xffff)
   \   0000A3   74..         MOV     A,#((ZDSecMgrConfig >> 16) & 0xff)
   \   0000A5   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    370          
    371            if ( ret != ZSuccess )
   \   0000A8   EE           MOV     A,R6
   \   0000A9   6010         JZ      ??ZDO_StartDevice_6
    372              osal_start_timer( ZDO_NETWORK_INIT, NWK_RETRY_DELAY );
   \   0000AB                ; Setup parameters for call to function osal_start_timer
   \   0000AB   7CE8         MOV     R4,#-0x18
   \   0000AD   7D03         MOV     R5,#0x3
   \   0000AF   7A01         MOV     R2,#0x1
   \   0000B1   7B00         MOV     R3,#0x0
   \   0000B3   90....       MOV     DPTR,#(osal_start_timer & 0xffff)
   \   0000B6   74..         MOV     A,#((osal_start_timer >> 16) & 0xff)
   \   0000B8   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    373          }
   \                     ??ZDO_StartDevice_6:
   \   0000BB   740B         MOV     A,#0xb
   \   0000BD   12....       LCALL   ?DEALLOC_XSTACK8
   \   0000C0   02....       LJMP    ?Subroutine25 & 0xFFFF

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine1:
   \   000000   90....       MOV     DPTR,#devState
   \   000003   F0           MOVX    @DPTR,A
   \   000004                ; Setup parameters for call to function NLME_NetworkDiscoveryRequest
   \   000004                ; Setup parameters for call to function NLME_OrphanJoinRequest
   \   000004   90....       MOV     DPTR,#zgDefaultStartingScanDuration
   \   000007   E0           MOVX    A,@DPTR
   \   000008   F9           MOV     R1,A
   \   000009   90....       MOV     DPTR,#zgDefaultChannelList
   \   00000C   78..         MOV     R0,#?V0 + 0
   \   00000E   22           RET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine25:
   \   000000   7F04         MOV     R7,#0x4
   \   000002   02....       LJMP    ?BANKED_LEAVE_XDATA
    374          
    375          /*********************************************************************
    376           * @fn      ZDO_UpdateNwkStatus()
    377           *
    378           * @brief
    379           *
    380           *   This function will send an update message to each registered
    381           *   application endpoint/interface about a network status change.
    382           *
    383           * @param   none
    384           *
    385           * @return  none
    386           */

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    387          uint16 a;
   \                     `a`:
   \   000000                DS 2

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    388          void ZDO_UpdateNwkStatus( devStates_t state )
   \                     ZDO_UpdateNwkStatus:
    389          {
   \   000000   74F4         MOV     A,#-0xc
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 12
   \   000005                ; Auto size: 0
   \   000005   89..         MOV     ?V0 + 0,R1
    390            // Endpoint/Interface descriptor list.
    391            epList_t *epDesc = epList;
   \   000007   90....       MOV     DPTR,#epList
   \   00000A   E0           MOVX    A,@DPTR
   \   00000B   FE           MOV     R6,A
   \   00000C   A3           INC     DPTR
   \   00000D   E0           MOVX    A,@DPTR
   \   00000E   FF           MOV     R7,A
    392            byte bufLen = sizeof(osal_event_hdr_t);
    393            osal_event_hdr_t *msgPtr;
    394          
    395            ZDAppNwkAddr.addr.shortAddr = NLME_GetShortAddr();
   \   00000F                ; Setup parameters for call to function NLME_GetShortAddr
   \   00000F   90....       MOV     DPTR,#(NLME_GetShortAddr & 0xffff)
   \   000012   74..         MOV     A,#((NLME_GetShortAddr >> 16) & 0xff)
   \   000014   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000017   90....       MOV     DPTR,#ZDAppNwkAddr
   \   00001A   12....       LCALL   ?Subroutine3 & 0xFFFF
    396          /*
    397                  a=0x0003;
    398                  ZDAppNwkAddr.addr.shortAddr = a;
    399                  NLME_SetRequest(nwkShortAddress,2,&a);
    400                  MAC_MlmeSetReq(ZMacShortAddress, &a);
    401           */
    402            (void)NLME_GetExtAddr();  // Load the saveExtAddr pointer.
   \                     ??CrossCallReturnLabel_6:
   \   00001D                ; Setup parameters for call to function NLME_GetExtAddr
   \   00001D   90....       MOV     DPTR,#(NLME_GetExtAddr & 0xffff)
   \   000020   74..         MOV     A,#((NLME_GetExtAddr >> 16) & 0xff)
   \   000022   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000025   8041         SJMP    ??ZDO_UpdateNwkStatus_0
    403          
    404            while ( epDesc )
    405            {
    406              if ( epDesc->epDesc->endPoint != ZDO_EP )
   \                     ??ZDO_UpdateNwkStatus_1:
   \   000027   8E82         MOV     DPL,R6
   \   000029   8F83         MOV     DPH,R7
   \   00002B   12....       LCALL   ?Subroutine11 & 0xFFFF
   \                     ??CrossCallReturnLabel_31:
   \   00002E   6027         JZ      ??ZDO_UpdateNwkStatus_2
    407              {
    408                msgPtr = (osal_event_hdr_t *)osal_msg_allocate( bufLen );
   \   000030                ; Setup parameters for call to function osal_msg_allocate
   \   000030   7A02         MOV     R2,#0x2
   \   000032   7B00         MOV     R3,#0x0
   \   000034   90....       MOV     DPTR,#(osal_msg_allocate & 0xffff)
   \   000037   74..         MOV     A,#((osal_msg_allocate >> 16) & 0xff)
   \   000039   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    409                if ( msgPtr )
   \   00003C   EA           MOV     A,R2
   \   00003D   7001         JNZ     ??ZDO_UpdateNwkStatus_3
   \   00003F   EB           MOV     A,R3
   \                     ??ZDO_UpdateNwkStatus_3:
   \   000040   6015         JZ      ??ZDO_UpdateNwkStatus_2
    410                {
    411                  msgPtr->event = ZDO_STATE_CHANGE; // Command ID
   \   000042   74D1         MOV     A,#-0x2f
   \   000044   8A82         MOV     DPL,R2
   \   000046   8B83         MOV     DPH,R3
   \   000048   F0           MOVX    @DPTR,A
    412                  msgPtr->status = (byte)state;
   \   000049   A3           INC     DPTR
   \   00004A   E5..         MOV     A,?V0 + 0
   \   00004C   F0           MOVX    @DPTR,A
    413          
    414                  osal_msg_send( *(epDesc->epDesc->task_id), (byte *)msgPtr );
   \   00004D                ; Setup parameters for call to function osal_msg_send
   \   00004D   8E82         MOV     DPL,R6
   \   00004F   8F83         MOV     DPH,R7
   \   000051   12....       LCALL   ?Subroutine6 & 0xFFFF
   \                     ??CrossCallReturnLabel_20:
   \   000054   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    415                }
    416              }
    417              epDesc = epDesc->nextDesc;
   \                     ??ZDO_UpdateNwkStatus_2:
   \   000057   8E82         MOV     DPL,R6
   \   000059   8F83         MOV     DPH,R7
   \   00005B   A3           INC     DPTR
   \   00005C   A3           INC     DPTR
   \   00005D   A3           INC     DPTR
   \   00005E   A3           INC     DPTR
   \   00005F   A3           INC     DPTR
   \   000060   A3           INC     DPTR
   \   000061   A3           INC     DPTR
   \   000062   A3           INC     DPTR
   \   000063   E0           MOVX    A,@DPTR
   \   000064   FE           MOV     R6,A
   \   000065   A3           INC     DPTR
   \   000066   E0           MOVX    A,@DPTR
   \   000067   FF           MOV     R7,A
    418            }
   \                     ??ZDO_UpdateNwkStatus_0:
   \   000068   EE           MOV     A,R6
   \   000069   7001         JNZ     ??ZDO_UpdateNwkStatus_4
   \   00006B   EF           MOV     A,R7
   \                     ??ZDO_UpdateNwkStatus_4:
   \   00006C   70B9         JNZ     ??ZDO_UpdateNwkStatus_1
    419          }
   \   00006E   02....       LJMP    ?Subroutine25 & 0xFFFF

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine22:
   \   000000   E0           MOVX    A,@DPTR
   \   000001   F8           MOV     R0,A
   \                     ??Subroutine22_0:
   \   000002   A3           INC     DPTR
   \   000003   E0           MOVX    A,@DPTR
   \   000004   F583         MOV     DPH,A
   \   000006   8882         MOV     DPL,R0
   \   000008   22           RET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine11:

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?