📄 zdobject.lst
字号:
\ 000021 7402 MOV A,#0x2
\ 000023 12.... LCALL ?Subroutine1 & 0xFFFF
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 );
\ ??CrossCallReturnLabel_2:
\ 000026 12.... LCALL ?L_MOV_X
\ 000029 AA.. MOV R2,?V0 + 0
\ 00002B AB.. MOV R3,?V0 + 1
\ 00002D AC.. MOV R4,?V0 + 2
\ 00002F AD.. MOV R5,?V0 + 3
\ 000031 90.... MOV DPTR,#(NLME_NetworkDiscoveryRequest & 0xffff)
\ 000034 74.. MOV A,#((NLME_NetworkDiscoveryRequest >> 16) & 0xff)
\ 000036 8063 SJMP ??ZDO_StartDevice_4
334 #endif
335 }
336 else if ( startMode == MODE_RESUME )
\ ??ZDO_StartDevice_3:
\ 000038 7401 MOV A,#0x1
\ 00003A 6A XRL A,R2
\ 00003B 7063 JNZ ??ZDO_StartDevice_1
337 {
338 if ( logicalType == NODETYPE_ROUTER )
\ 00003D 7401 MOV A,#0x1
\ 00003F 69 XRL A,R1
\ 000040 7044 JNZ ??ZDO_StartDevice_5
339 {
340 ZMacScanCnf_t scanCnf;
341 devState = DEV_NWK_ORPHAN;
\ 000042 740A MOV A,#0xa
\ 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 ?Subroutine22 & 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
\ ?Subroutine22:
\ 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 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 E0 MOVX A,@DPTR
\ 00000B FE MOV R6,A
\ 00000C A3 INC DPTR
\ 00000D E0 MOVX A,@DPTR
\ 00000E FF MOV R7,A
391 byte bufLen = sizeof(osal_event_hdr_t);
392 osal_event_hdr_t *msgPtr;
393
394 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 EA MOV A,R2
\ 00001B F0 MOVX @DPTR,A
\ 00001C A3 INC DPTR
\ 00001D EB MOV A,R3
\ 00001E F0 MOVX @DPTR,A
395 (void)NLME_GetExtAddr(); // Load the saveExtAddr pointer.
\ 00001F ; Setup parameters for call to function NLME_GetExtAddr
\ 00001F 90.... MOV DPTR,#(NLME_GetExtAddr & 0xffff)
\ 000022 74.. MOV A,#((NLME_GetExtAddr >> 16) & 0xff)
\ 000024 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 000027 8041 SJMP ??ZDO_UpdateNwkStatus_0
396
397 while ( epDesc )
398 {
399 if ( epDesc->epDesc->endPoint != ZDO_EP )
\ ??ZDO_UpdateNwkStatus_1:
\ 000029 8E82 MOV DPL,R6
\ 00002B 8F83 MOV DPH,R7
\ 00002D 12.... LCALL ?Subroutine10 & 0xFFFF
\ ??CrossCallReturnLabel_25:
\ 000030 6027 JZ ??ZDO_UpdateNwkStatus_2
400 {
401 msgPtr = (osal_event_hdr_t *)osal_msg_allocate( bufLen );
\ 000032 ; Setup parameters for call to function osal_msg_allocate
\ 000032 7A02 MOV R2,#0x2
\ 000034 7B00 MOV R3,#0x0
\ 000036 90.... MOV DPTR,#(osal_msg_allocate & 0xffff)
\ 000039 74.. MOV A,#((osal_msg_allocate >> 16) & 0xff)
\ 00003B 12.... LCALL ?BCALL ; Banked call to: DPTR()
402 if ( msgPtr )
\ 00003E EA MOV A,R2
\ 00003F 7001 JNZ ??ZDO_UpdateNwkStatus_3
\ 000041 EB MOV A,R3
\ ??ZDO_UpdateNwkStatus_3:
\ 000042 6015 JZ ??ZDO_UpdateNwkStatus_2
403 {
404 msgPtr->event = ZDO_STATE_CHANGE; // Command ID
\ 000044 74D1 MOV A,#-0x2f
\ 000046 8A82 MOV DPL,R2
\ 000048 8B83 MOV DPH,R3
\ 00004A F0 MOVX @DPTR,A
405 msgPtr->status = (byte)state;
\ 00004B A3 INC DPTR
\ 00004C E5.. MOV A,?V0 + 0
\ 00004E F0 MOVX @DPTR,A
406
407 osal_msg_send( *(epDesc->epDesc->task_id), (byte *)msgPtr );
\ 00004F ; Setup parameters for call to function osal_msg_send
\ 00004F 8E82 MOV DPL,R6
\ 000051 8F83 MOV DPH,R7
\ 000053 12.... LCALL ?Subroutine5 & 0xFFFF
\ ??CrossCallReturnLabel_14:
\ 000056 12.... LCALL ?BCALL ; Banked call to: DPTR()
408 }
409 }
410 epDesc = epDesc->nextDesc;
\ ??ZDO_UpdateNwkStatus_2:
\ 000059 8E82 MOV DPL,R6
\ 00005B 8F83 MOV DPH,R7
\ 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 A3 INC DPTR
\ 000064 A3 INC DPTR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -