⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zdobject.lst

📁 cc2430应用实例
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   000019   75..00       MOV     ?V0 + 0,#0x0
   \   00001C   78..         MOV     R0,#?V0 + 0
   \   00001E   12....       LCALL   ?PUSH_XSTACK_I_ONE
   \   000021   90....       MOV     DPTR,#zgDefaultChannelList
   \   000024   12....       LCALL   ?PUSH_XSTACK8_X_FOUR
   \   000027   EC           MOV     A,R4
   \   000028   FD           MOV     R5,A
   \   000029   E9           MOV     A,R1
   \   00002A   FC           MOV     R4,A
   \   00002B   90....       MOV     DPTR,#zgDefaultStartingScanDuration
   \   00002E   E0           MOVX    A,@DPTR
   \   00002F   F9           MOV     R1,A
   \   000030   90....       MOV     DPTR,#zgConfigPANID
   \   000033   12....       LCALL   ??Subroutine53_0 & 0xFFFF
   \                     ??CrossCallReturnLabel_160:
   \   000036   90....       MOV     DPTR,#(NLME_NetworkFormationRequest & 0xffff)
   \   000039   74..         MOV     A,#((NLME_NetworkFormationRequest >> 16) & 0xff)
   \   00003B   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00003E   7405         MOV     A,#0x5
   \   000040   12....       LCALL   ?DEALLOC_XSTACK8
   \   000043   8017         SJMP    ??ZDO_StartDevice_2
    306              }
    307              else if ( startMode == MODE_RESUME )
   \                     ??ZDO_StartDevice_1:
   \   000045   7401         MOV     A,#0x1
   \   000047   6A           XRL     A,R2
   \   000048   7014         JNZ     ??ZDO_StartDevice_0
    308              {
    309                // Just start the coordinator
    310                devState = DEV_COORD_STARTING;
   \   00004A   7408         MOV     A,#0x8
   \   00004C   90....       MOV     DPTR,#devState
   \   00004F   F0           MOVX    @DPTR,A
    311                ret = NLME_StartRouterRequest( beaconOrder, beaconOrder, false );
   \   000050                ; Setup parameters for call to function NLME_StartRouterRequest
   \   000050   7B00         MOV     R3,#0x0
   \   000052   E9           MOV     A,R1
   \   000053   FA           MOV     R2,A
   \   000054   90....       MOV     DPTR,#(NLME_StartRouterRequest & 0xffff)
   \   000057   74..         MOV     A,#((NLME_StartRouterRequest >> 16) & 0xff)
   \   000059   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \                     ??ZDO_StartDevice_2:
   \   00005C   E9           MOV     A,R1
   \   00005D   FE           MOV     R6,A
    312              }
    313              else
    314              {
    315          #if defined( LCD_SUPPORTED )
    316                HalLcdWriteScreen( "StartDevice ERR", "MODE unknown" );
    317          #endif
    318              }
    319            }
    320          #endif  // !ZDO_COORDINATOR
    321          
    322          #if !defined ( ZDO_COORDINATOR ) || defined( SOFT_START )
    323            if ( logicalType == NODETYPE_ROUTER || logicalType == NODETYPE_DEVICE )
    324            {
    325              if ( (startMode == MODE_JOIN) || (startMode == MODE_REJOIN) )
    326              {
    327                devState = DEV_NWK_DISC;
    328          
    329            #if defined( MANAGED_SCAN )
    330                ZDOManagedScan_Next();
    331                ret = NLME_NetworkDiscoveryRequest( managedScanChannelMask, BEACON_ORDER_15_MSEC );
    332            #else
    333                ret = NLME_NetworkDiscoveryRequest( zgDefaultChannelList, zgDefaultStartingScanDuration );
    334            #endif
    335              }
    336              else if ( startMode == MODE_RESUME )
    337              {
    338                if ( logicalType == NODETYPE_ROUTER )
    339                {
    340                  ZMacScanCnf_t scanCnf;
    341                  devState = DEV_NWK_ORPHAN;
    342          
    343                  /* if router and nvram is available, fake successful orphan scan */
    344                  scanCnf.hdr.Status = ZSUCCESS;
    345                  scanCnf.ScanType = ZMAC_ORPHAN_SCAN;
    346                  scanCnf.UnscannedChannels = 0;
    347                  scanCnf.ResultListSize = 0;
    348                  nwk_ScanJoiningOrphan(&scanCnf);
    349          
    350                  ret = ZSuccess;
    351                }
    352                else
    353                {
    354                  devState = DEV_NWK_ORPHAN;
    355                  ret = NLME_OrphanJoinRequest( zgDefaultChannelList,
    356                                                zgDefaultStartingScanDuration );
    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_0:
   \   00005E                ; Setup parameters for call to function ZDSecMgrConfig
   \   00005E   90....       MOV     DPTR,#(ZDSecMgrConfig & 0xffff)
   \   000061   74..         MOV     A,#((ZDSecMgrConfig >> 16) & 0xff)
   \   000063   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    370          
    371            if ( ret != ZSuccess )
   \   000066   EE           MOV     A,R6
   \   000067   6010         JZ      ??ZDO_StartDevice_3
    372              osal_start_timer( ZDO_NETWORK_INIT, NWK_RETRY_DELAY );
   \   000069                ; Setup parameters for call to function osal_start_timer
   \   000069   7CE8         MOV     R4,#-0x18
   \   00006B   7D03         MOV     R5,#0x3
   \   00006D   7A01         MOV     R2,#0x1
   \   00006F   7B00         MOV     R3,#0x0
   \   000071   90....       MOV     DPTR,#(osal_start_timer & 0xffff)
   \   000074   74..         MOV     A,#((osal_start_timer >> 16) & 0xff)
   \   000076   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    373          }
   \                     ??ZDO_StartDevice_3:
   \   000079   7F01         MOV     R7,#0x1
   \   00007B   02....       LJMP    ?BANKED_LEAVE_XDATA

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine53:
   \   000000   12....       LCALL   ??Subroutine87_0 & 0xFFFF
   \                     ??Subroutine53_0:
   \   000003   12....       LCALL   ?Subroutine78 & 0xFFFF
   \                     ??CrossCallReturnLabel_323:
   \   000006   22           RET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine78:
   \   000000   E0           MOVX    A,@DPTR
   \   000001                REQUIRE ?Subroutine100
   \   000001                ; // Fall through to label ?Subroutine100

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine100:
   \   000000   FA           MOV     R2,A
   \   000001   A3           INC     DPTR
   \   000002   E0           MOVX    A,@DPTR
   \   000003   FB           MOV     R3,A
   \   000004   22           RET
    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 BANKED_CODE, align 1, keep-with-next
    387          void ZDO_UpdateNwkStatus( devStates_t state )
   \                     ZDO_UpdateNwkStatus:
    388          {
   \   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
    389            // Endpoint/Interface descriptor list.
    390            epList_t *epDesc = epList;
   \   000007   90....       MOV     DPTR,#epList
   \   00000A   12....       LCALL   ?Subroutine55 & 0xFFFF
    391            byte bufLen = sizeof(osal_event_hdr_t);
    392            osal_event_hdr_t *msgPtr;
    393          
    394            ZDAppNwkAddr.addr.shortAddr = NLME_GetShortAddr();
   \                     ??CrossCallReturnLabel_175:
   \   00000D                ; Setup parameters for call to function NLME_GetShortAddr
   \   00000D   90....       MOV     DPTR,#(NLME_GetShortAddr & 0xffff)
   \   000010   74..         MOV     A,#((NLME_GetShortAddr >> 16) & 0xff)
   \   000012   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000015   90....       MOV     DPTR,#ZDAppNwkAddr
   \   000018   12....       LCALL   ?Subroutine9 & 0xFFFF
    395            (void)NLME_GetExtAddr();  // Load the saveExtAddr pointer.
   \                     ??CrossCallReturnLabel_22:
   \   00001B                ; Setup parameters for call to function NLME_GetExtAddr
   \   00001B   90....       MOV     DPTR,#(NLME_GetExtAddr & 0xffff)
   \   00001E   74..         MOV     A,#((NLME_GetExtAddr >> 16) & 0xff)
   \   000020   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000023   803D         SJMP    ??CrossCallReturnLabel_176
    396          
    397            while ( epDesc )
    398            {
    399              if ( epDesc->epDesc->endPoint != ZDO_EP )
   \                     ??ZDO_UpdateNwkStatus_0:
   \   000025   8E82         MOV     DPL,R6
   \   000027   8F83         MOV     DPH,R7
   \   000029   12....       LCALL   ?Subroutine38 & 0xFFFF
   \                     ??CrossCallReturnLabel_116:
   \   00002C   6025         JZ      ??ZDO_UpdateNwkStatus_1
    400              {
    401                msgPtr = (osal_event_hdr_t *)osal_msg_allocate( bufLen );
   \   00002E                ; Setup parameters for call to function osal_msg_allocate
   \   00002E   7A02         MOV     R2,#0x2
   \   000030   7B00         MOV     R3,#0x0
   \   000032   90....       MOV     DPTR,#(osal_msg_allocate & 0xffff)
   \   000035   74..         MOV     A,#((osal_msg_allocate >> 16) & 0xff)
   \   000037   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    402                if ( msgPtr )
   \   00003A   EA           MOV     A,R2
   \   00003B   7001         JNZ     ??ZDO_UpdateNwkStatus_2
   \   00003D   EB           MOV     A,R3
   \                     ??ZDO_UpdateNwkStatus_2:
   \   00003E   6013         JZ      ??ZDO_UpdateNwkStatus_1
    403                {
    404                  msgPtr->event = ZDO_STATE_CHANGE; // Command ID
   \   000040   74D1         MOV     A,#-0x2f
   \   000042   8A82         MOV     DPL,R2
   \   000044   8B83         MOV     DPH,R3
   \   000046   F0           MOVX    @DPTR,A
    405                  msgPtr->status = (byte)state;
   \   000047   A3           INC     DPTR
   \   000048   E5..         MOV     A,?V0 + 0
   \   00004A   12....       LCALL   ?Subroutine6 & 0xFFFF
    406          
    407                  osal_msg_send( *(epDesc->epDesc->task_id), (byte *)msgPtr );
   \                     ??CrossCallReturnLabel_14:
   \   00004D   12....       LCALL   ?Subroutine23 & 0xFFFF
   \                     ??CrossCallReturnLabel_85:
   \   000050   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    408                }
    409              }
    410              epDesc = epDesc->nextDesc;
   \                     ??ZDO_UpdateNwkStatus_1:
   \   000053   8E82         MOV     DPL,R6
   \   000055   8F83         MOV     DPH,R7
   \   000057   A3           INC     DPTR
   \   000058   A3           INC     DPTR
   \   000059   A3           INC     DPTR
   \   00005A   A3           INC     DPTR
   \   00005B   A3           INC     DPTR
   \   00005C   A3           INC     DPTR
   \   00005D   A3           INC     DPTR
   \   00005E   A3           INC     DPTR
   \   00005F   12....       LCALL   ?Subroutine55 & 0xFFFF
    411            }
   \                     ??CrossCallReturnLabel_176:
   \   000062   EE           MOV     A,R6
   \   000063   7001         JNZ     ??ZDO_UpdateNwkStatus_3
   \   000065   EF           MOV     A,R7
   \                     ??ZDO_UpdateNwkStatus_3:
   \   000066   70BD         JNZ     ??ZDO_UpdateNwkStatus_0
    412          }

⌨️ 快捷键说明

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