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

📄 zdobject.lst

📁 用IAR开发的ZIGBEE网络路由例子
💻 LST
📖 第 1 页 / 共 5 页
字号:
    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
   \                     ?Subroutine41:
   \   000000   12....       LCALL   ?Subroutine61 & 0xFFFF
   \                     ??CrossCallReturnLabel_180:
   \   000003   22           RET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine61:
   \   000000   E0           MOVX    A,@DPTR
   \   000001   FA           MOV     R2,A
   \   000002   A3           INC     DPTR
   \   000003   E0           MOVX    A,@DPTR
   \   000004   FB           MOV     R3,A
   \   000005   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 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   12....       LCALL   ?Subroutine42 & 0xFFFF
    392            byte bufLen = sizeof(osal_event_hdr_t);
    393            osal_event_hdr_t *msgPtr;
    394          
    395            ZDAppNwkAddr.addr.shortAddr = NLME_GetShortAddr();
   \                     ??CrossCallReturnLabel_125:
   \   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   ?Subroutine10 & 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_25:
   \   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   803F         SJMP    ??CrossCallReturnLabel_126
    403          
    404            while ( epDesc )
    405            {
    406              if ( epDesc->epDesc->endPoint != ZDO_EP )
   \                     ??ZDO_UpdateNwkStatus_0:
   \   000025   8E82         MOV     DPL,R6
   \   000027   8F83         MOV     DPH,R7
   \   000029   12....       LCALL   ?Subroutine27 & 0xFFFF
   \                     ??CrossCallReturnLabel_75:
   \   00002C   6027         JZ      ??ZDO_UpdateNwkStatus_1
    407              {
    408                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()
    409                if ( msgPtr )
   \   00003A   EA           MOV     A,R2
   \   00003B   7001         JNZ     ??ZDO_UpdateNwkStatus_2
   \   00003D   EB           MOV     A,R3
   \                     ??ZDO_UpdateNwkStatus_2:
   \   00003E   6015         JZ      ??ZDO_UpdateNwkStatus_1
    410                {
    411                  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
    412                  msgPtr->status = (byte)state;
   \   000047   A3           INC     DPTR
   \   000048   E5..         MOV     A,?V0 + 0
   \   00004A   F0           MOVX    @DPTR,A
    413          
    414                  osal_msg_send( *(epDesc->epDesc->task_id), (byte *)msgPtr );
   \   00004B                ; Setup parameters for call to function osal_msg_send
   \   00004B   8E82         MOV     DPL,R6
   \   00004D   8F83         MOV     DPH,R7
   \   00004F   12....       LCALL   ?Subroutine17 & 0xFFFF
   \                     ??CrossCallReturnLabel_59:
   \   000052   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    415                }
    416              }
    417              epDesc = epDesc->nextDesc;
   \                     ??ZDO_UpdateNwkStatus_1:
   \   000055   8E82         MOV     DPL,R6
   \   000057   8F83         MOV     DPH,R7
   \   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   A3           INC     DPTR
   \   000060   A3           INC     DPTR
   \   000061   12....       LCALL   ?Subroutine42 & 0xFFFF
    418            }
   \                     ??CrossCallReturnLabel_126:
   \   000064   EE           MOV     A,R6
   \   000065   7001         JNZ     ??ZDO_UpdateNwkStatus_3
   \   000067   EF           MOV     A,R7
   \                     ??ZDO_UpdateNwkStatus_3:
   \   000068   70BB         JNZ     ??ZDO_UpdateNwkStatus_0
    419          }
   \   00006A   02....       LJMP    ?Subroutine68 & 0xFFFF

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine42:
   \   000000   E0           MOVX    A,@DPTR
   \   000001   FE           MOV     R6,A
   \   000002   A3           INC     DPTR
   \   000003   E0           MOVX    A,@DPTR
   \   000004   FF           MOV     R7,A
   \   000005   22           RET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine68:
   \   000000   7F04         MOV     R7,#0x4
   \   000002   02....       LJMP    ?BANKED_LEAVE_XDATA

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine27:
   \   000000   12....       LCALL   ?Subroutine57 & 0xFFFF
   \                     ??CrossCallReturnLabel_168:
   \   000003   22           RET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine57:
   \   000000   12....       LCALL   ?Subroutine64 & 0xFFFF
   \                     ??CrossCallReturnLabel_192:
   \   000003   E0           MOVX    A,@DPTR
   \   000004   22           RET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine17:
   \   000000   12....       LCALL   ?Subroutine59 & 0xFFFF
   \                     ??CrossCallReturnLabel_170:
   \   000003   12....       LCALL   ?Subroutine57 & 0xFFFF
   \                     ??CrossCallReturnLabel_166:
   \   000006   F9           MOV     R1,A
   \   000007   90....       MOV     DPTR,#(osal_msg_send & 0xffff)
   \   00000A   74..         MOV     A,#((osal_msg_send >> 16) & 0xff)
   \   00000C   22           RET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine59:
   \   000000   E0           MOVX    A,@DPTR
   \   000001   F8           MOV     R0,A
   \                     ??Subroutine59_0:
   \   000002   12....       LCALL   ?Subroutine66 & 0xFFFF
   \                     ??CrossCallReturnLabel_198:
   \   000005   A3           INC     DPTR
   \   000006   22           RET

⌨️ 快捷键说明

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