📄 zdobject.lst
字号:
\ 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 ?Subroutine56 & 0xFFFF
391 byte bufLen = sizeof(osal_event_hdr_t);
392 osal_event_hdr_t *msgPtr;
393
394 ZDAppNwkAddr.addr.shortAddr = NLME_GetShortAddr();
\ ??CrossCallReturnLabel_176:
\ 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
395 (void)NLME_GetExtAddr(); // Load the saveExtAddr pointer.
\ ??CrossCallReturnLabel_24:
\ 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_177
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_115:
\ 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 ?Subroutine24 & 0xFFFF
\ ??CrossCallReturnLabel_87:
\ 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 ?Subroutine56 & 0xFFFF
411 }
\ ??CrossCallReturnLabel_177:
\ 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 }
\ 000068 02.... LJMP ??Subroutine96_0 & 0xFFFF
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine56:
\ 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
\ ?Subroutine6:
\ 000000 F0 MOVX @DPTR,A
\ 000001 ; Setup parameters for call to function osal_msg_send
\ 000001 8E82 MOV DPL,R6
\ 000003 8F83 MOV DPH,R7
\ 000005 E0 MOVX A,@DPTR
\ 000006 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine78:
\ 000000 E0 MOVX A,@DPTR
\ ??Subroutine78_0:
\ 000001 F8 MOV R0,A
\ ??Subroutine78_1:
\ 000002 12.... LCALL ??Subroutine91_0 & 0xFFFF
\ ??CrossCallReturnLabel_289:
\ 000005 A3 INC DPTR
\ 000006 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine38:
\ 000000 12.... LCALL ?Subroutine73 & 0xFFFF
\ ??CrossCallReturnLabel_233:
\ 000003 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine73:
\ 000000 12.... LCALL ?Subroutine91 & 0xFFFF
\ ??CrossCallReturnLabel_287:
\ 000003 E0 MOVX A,@DPTR
\ 000004 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine24:
\ 000000 12.... LCALL ??Subroutine78_0 & 0xFFFF
\ ??CrossCallReturnLabel_241:
\ 000003 12.... LCALL ?Subroutine73 & 0xFFFF
\ ??CrossCallReturnLabel_231:
\ 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
\ ?Subroutine10:
\ 000000 EA MOV A,R2
\ 000001 F0 MOVX @DPTR,A
\ 000002 A3 INC DPTR
\ 000003 EB MOV A,R3
\ 000004 F0 MOVX @DPTR,A
\ 000005 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine91:
\ 000000 E0 MOVX A,@DPTR
\ 000001 F8 MOV R0,A
\ ??Subroutine91_0:
\ 000002 A3 INC DPTR
\ 000003 E0 MOVX A,@DPTR
\ 000004 F583 MOV DPH,A
\ 000006 8882 MOV DPL,R0
\ 000008 22 RET
413
414 #if defined ( REFLECTOR )
415 /*********************************************************************
416 * @fn ZDO_RemoveEndDeviceBind
417 *
418 * @brief Remove the end device bind
419 *
420 * @param none
421 *
422 * @return none
423 */
424 static void ZDO_RemoveEndDeviceBind( void )
425 {
426 if ( ZDO_EDBind )
427 {
428 // Free the RAM
429 if ( ZDO_EDBind->inClusters )
430 osal_mem_free( ZDO_EDBind->inClusters );
431 if ( ZDO_EDBind->outClusters )
432 osal_mem_free( ZDO_EDBind->outClusters );
433 osal_mem_free( ZDO_EDBind );
434 ZDO_EDBind = NULL;
435 }
436 }
437 #endif // REFLECTOR
438
439 #if defined ( REFLECTOR )
440 /*********************************************************************
441 * @fn ZDO_RemoveEndDeviceBind
442 *
443 * @brief Remove the end device bind
444 *
445 * @param none
446 *
447 * @return none
448 */
449 static void ZDO_SendEDBindRsp( byte TransSeq, zAddrType_t *dstAddr, byte Status, byte secUse )
450 {
451 ZDP_EndDeviceBindRsp( TransSeq, dstAddr, Status, secUse );
452
453 #if defined( LCD_SUPPORTED )
454 HalLcdWriteString( "End Device Bind", HAL_LCD_LINE_1 );
455 if ( Status == ZDP_SUCCESS )
456 HalLcdWriteString( "Success Sent", HAL_LCD_LINE_2 );
457 else
458 HalLcdWriteString( "Timeout", HAL_LCD_LINE_2 );
459 #endif
460
461 }
462 #endif // REFLECTOR
463
464 #if defined ( REFLECTOR ) || defined ( ZDO_COORDINATOR )
465 /*********************************************************************
466 * @fn ZDO_CompareClusterLists
467 *
468 * @brief Compare one list to another list
469 *
470 * @param numList1 - number of items in list 1
471 * @param list1 - first list of cluster IDs
472 * @param numList2 - number of items in list 2
473 * @param list2 - second list of cluster IDs
474 * @param pMatches - buffer to put matches
475 *
476 * @return number of matches
477 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -