📄 zdobject.lst
字号:
\ 00007B ED MOV A,R5
\ 00007C F9 MOV R1,A
\ 00007D 02.... LJMP ??Subroutine96_1 & 0xFFFF
497 }
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine71:
\ 000000 39 ADDC A,R1
\ ??Subroutine71_0:
\ 000001 F583 MOV DPH,A
\ ??Subroutine71_1:
\ 000003 E0 MOVX A,@DPTR
\ 000004 F5.. MOV ?V0 + 0,A
\ 000006 A3 INC DPTR
\ 000007 E0 MOVX A,@DPTR
\ 000008 F5.. MOV ?V0 + 1,A
\ 00000A 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine96:
\ 000000 7415 MOV A,#0x15
\ ??Subroutine96_0:
\ 000002 12.... LCALL ?DEALLOC_XSTACK8
\ ??Subroutine96_1:
\ 000005 7F08 MOV R7,#0x8
\ 000007 02.... LJMP ?BANKED_LEAVE_XDATA
498 #endif // REFLECTOR || ZDO_COORDINATOR
499
500 #if defined ( REFLECTOR )
501 /*********************************************************************
502 * @fn ZDO_DoEndDeviceBind
503 *
504 * @brief Process the End Device Bind Req from ZDApp
505 *
506 * @param bindReq - Bind Request Information
507 * @param SecurityUse - Security enable/disable
508 *
509 * @return none
510 */
\ In segment BANKED_CODE, align 1, keep-with-next
511 void ZDO_DoEndDeviceBind( ZDEndDeviceBind_t *bindReq )
\ ZDO_DoEndDeviceBind:
512 {
\ 000000 74F4 MOV A,#-0xc
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 12
\ 000005 ; Auto size: 24
\ 000005 74E8 MOV A,#-0x18
\ 000007 12.... LCALL ?ALLOC_XSTACK8
\ 00000A EA MOV A,R2
\ 00000B FE MOV R6,A
\ 00000C EB MOV A,R3
\ 00000D FF MOV R7,A
513 uint8 numMatches;
514 uint8 Status;
515 BindingEntry_t *pBind;
516 AddrMgrEntry_t addrEntry;
517 zAddrType_t SrcAddr;
518
519 SrcAddr.addrMode = Addr16Bit;
\ 00000E 740A MOV A,#0xa
\ 000010 12.... LCALL ?XSTACK_DISP0_8
\ 000013 7402 MOV A,#0x2
\ 000015 F0 MOVX @DPTR,A
520 SrcAddr.addr.shortAddr = bindReq->srcAddr;
\ 000016 EE MOV A,R6
\ 000017 2402 ADD A,#0x2
\ 000019 12.... LCALL ?Subroutine93 & 0xFFFF
\ ??CrossCallReturnLabel_294:
\ 00001C 12.... LCALL ??Subroutine53_0 & 0xFFFF
\ ??CrossCallReturnLabel_162:
\ 00001F 7402 MOV A,#0x2
\ 000021 12.... LCALL ?XSTACK_DISP0_8
\ 000024 12.... LCALL ??Subroutine0_0 & 0xFFFF
521
522 // Ask for IEEE address
523 if ( (bindReq->srcAddr != ZDAppNwkAddr.addr.shortAddr) )
\ ??CrossCallReturnLabel_4:
\ 000027 F8 MOV R0,A
\ 000028 A3 INC DPTR
\ 000029 E0 MOVX A,@DPTR
\ 00002A F9 MOV R1,A
\ 00002B 90.... MOV DPTR,#ZDAppNwkAddr
\ 00002E E0 MOVX A,@DPTR
\ 00002F 68 XRL A,R0
\ 000030 7003 JNZ ??ZDO_DoEndDeviceBind_0
\ 000032 A3 INC DPTR
\ 000033 E0 MOVX A,@DPTR
\ 000034 69 XRL A,R1
\ ??ZDO_DoEndDeviceBind_0:
\ 000035 7003 JNZ $+5
\ 000037 02.... LJMP ??ZDO_DoEndDeviceBind_1 & 0xFFFF
524 {
525 addrEntry.user = ADDRMGR_USER_BINDING;
\ 00003A 740B MOV A,#0xb
\ 00003C 12.... LCALL ?XSTACK_DISP0_8
\ 00003F 7404 MOV A,#0x4
\ 000041 12.... LCALL ?Subroutine69 & 0xFFFF
526 addrEntry.nwkAddr = bindReq->srcAddr;
\ ??CrossCallReturnLabel_221:
\ 000044 A3 INC DPTR
\ 000045 12.... LCALL ?Subroutine57 & 0xFFFF
\ ??CrossCallReturnLabel_179:
\ 000048 740C MOV A,#0xc
\ 00004A 12.... LCALL ?XSTACK_DISP0_8
\ 00004D 12.... LCALL ??Subroutine11_0 & 0xFFFF
527 Status = AddrMgrEntryLookupNwk( &addrEntry );
528 if ( Status == TRUE)
\ ??CrossCallReturnLabel_33:
\ 000050 ; Setup parameters for call to function AddrMgrEntryLookupNwk
\ 000050 740B MOV A,#0xb
\ 000052 12.... LCALL ?XSTACK_DISP0_8
\ 000055 AA82 MOV R2,DPL
\ 000057 AB83 MOV R3,DPH
\ 000059 90.... MOV DPTR,#(AddrMgrEntryLookupNwk & 0xffff)
\ 00005C 74.. MOV A,#((AddrMgrEntryLookupNwk >> 16) & 0xff)
\ 00005E 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 000061 E9 MOV A,R1
\ 000062 6401 XRL A,#0x1
\ 000064 7010 JNZ ??ZDO_DoEndDeviceBind_2
529 {
530 // Add a reference to entry
531 AddrMgrEntryAddRef( &addrEntry );
\ 000066 ; Setup parameters for call to function AddrMgrEntryAddRef
\ 000066 740B MOV A,#0xb
\ 000068 12.... LCALL ?XSTACK_DISP0_8
\ 00006B AA82 MOV R2,DPL
\ 00006D AB83 MOV R3,DPH
\ 00006F 90.... MOV DPTR,#(AddrMgrEntryAddRef & 0xffff)
\ 000072 74.. MOV A,#((AddrMgrEntryAddRef >> 16) & 0xff)
\ 000074 8034 SJMP ??ZDO_DoEndDeviceBind_3
532 }
533 else
534 {
535 // If we have the extended address
536 if ( NLME_GetProtocolVersion() != ZB_PROT_V1_0 )
\ ??ZDO_DoEndDeviceBind_2:
\ 000076 ; Setup parameters for call to function NLME_GetProtocolVersion
\ 000076 90.... MOV DPTR,#(NLME_GetProtocolVersion & 0xffff)
\ 000079 74.. MOV A,#((NLME_GetProtocolVersion >> 16) & 0xff)
\ 00007B 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 00007E E9 MOV A,R1
\ 00007F 6401 XRL A,#0x1
\ 000081 6019 JZ ??ZDO_DoEndDeviceBind_4
537 {
538 osal_cpyExtAddr( addrEntry.extAddr, bindReq->ieeeAddr );
\ 000083 ; Setup parameters for call to function osal_cpyExtAddr
\ 000083 EE MOV A,R6
\ 000084 2406 ADD A,#0x6
\ 000086 FC MOV R4,A
\ 000087 EF MOV A,R7
\ 000088 3400 ADDC A,#0x0
\ 00008A FD MOV R5,A
\ 00008B 740E MOV A,#0xe
\ 00008D 12.... LCALL ?XSTACK_DISP0_8
\ 000090 AA82 MOV R2,DPL
\ 000092 AB83 MOV R3,DPH
\ 000094 90.... MOV DPTR,#(osal_cpyExtAddr & 0xffff)
\ 000097 74.. MOV A,#((osal_cpyExtAddr >> 16) & 0xff)
\ 000099 12.... LCALL ?BCALL ; Banked call to: DPTR()
539 }
540
541 // Not in address manager?
542 AddrMgrEntryUpdate( &addrEntry ); // Add it
\ ??ZDO_DoEndDeviceBind_4:
\ 00009C ; Setup parameters for call to function AddrMgrEntryUpdate
\ 00009C 740B MOV A,#0xb
\ 00009E 12.... LCALL ?XSTACK_DISP0_8
\ 0000A1 AA82 MOV R2,DPL
\ 0000A3 AB83 MOV R3,DPH
\ 0000A5 90.... MOV DPTR,#(AddrMgrEntryUpdate & 0xffff)
\ 0000A8 74.. MOV A,#((AddrMgrEntryUpdate >> 16) & 0xff)
\ ??ZDO_DoEndDeviceBind_3:
\ 0000AA 12.... LCALL ?BCALL ; Banked call to: DPTR()
543 }
544
545 if ( AddrMgrExtAddrValid( addrEntry.extAddr ) == FALSE )
\ 0000AD ; Setup parameters for call to function AddrMgrExtAddrValid
\ 0000AD 740E MOV A,#0xe
\ 0000AF 12.... LCALL ?XSTACK_DISP0_8
\ 0000B2 AA82 MOV R2,DPL
\ 0000B4 AB83 MOV R3,DPH
\ 0000B6 90.... MOV DPTR,#(AddrMgrExtAddrValid & 0xffff)
\ 0000B9 74.. MOV A,#((AddrMgrExtAddrValid >> 16) & 0xff)
\ 0000BB 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 0000BE E9 MOV A,R1
\ 0000BF 7017 JNZ ??ZDO_DoEndDeviceBind_1
546 {
547 ZDP_IEEEAddrReq( bindReq->srcAddr, ZDP_ADDR_REQTYPE_SINGLE, 0, false );
\ 0000C1 ; Setup parameters for call to function ZDP_IEEEAddrReq
\ 0000C1 7D00 MOV R5,#0x0
\ 0000C3 7C00 MOV R4,#0x0
\ 0000C5 7900 MOV R1,#0x0
\ 0000C7 8E82 MOV DPL,R6
\ 0000C9 8F83 MOV DPH,R7
\ 0000CB A3 INC DPTR
\ 0000CC A3 INC DPTR
\ 0000CD 12.... LCALL ??Subroutine53_0 & 0xFFFF
\ ??CrossCallReturnLabel_163:
\ 0000D0 90.... MOV DPTR,#(ZDP_IEEEAddrReq & 0xffff)
\ 0000D3 74.. MOV A,#((ZDP_IEEEAddrReq >> 16) & 0xff)
\ 0000D5 12.... LCALL ?BCALL ; Banked call to: DPTR()
548 }
549 }
550
551 if ( ZDO_EDBind ) // End Device Bind in progress
\ ??ZDO_DoEndDeviceBind_1:
\ 0000D8 90.... MOV DPTR,#??ZDO_EDBind
\ 0000DB E0 MOVX A,@DPTR
\ 0000DC 7002 JNZ ??ZDO_DoEndDeviceBind_5
\ 0000DE A3 INC DPTR
\ 0000DF E0 MOVX A,@DPTR
\ ??ZDO_DoEndDeviceBind_5:
\ 0000E0 7003 JNZ $+5
\ 0000E2 02.... LJMP ??ZDO_DoEndDeviceBind_6 & 0xFFFF
552 {
553 Status = ZDP_NO_MATCH;
\ 0000E5 75..86 MOV ?V0 + 3,#-0x7a
554
555 if ( bindReq->profileID == ZDO_EDBind->ProfileID )
\ 0000E8 EE MOV A,R6
\ 0000E9 240F ADD A,#0xf
\ 0000EB 12.... LCALL ??Subroutine87_0 & 0xFFFF
\ ??CrossCallReturnLabel_268:
\ 0000EE 12.... LCALL ?Subroutine56 & 0xFFFF
\ ??CrossCallReturnLabel_326:
\ 0000F1 240D ADD A,#0xd
\ 0000F3 12.... LCALL ?Subroutine42 & 0xFFFF
\ ??CrossCallReturnLabel_138:
\ 0000F6 E0 MOVX A,@DPTR
\ 0000F7 68 XRL A,R0
\ 0000F8 7003 JNZ ??ZDO_DoEndDeviceBind_7
\ 0000FA A3 INC DPTR
\ 0000FB E0 MOVX A,@DPTR
\ 0000FC 69 XRL A,R1
\ ??ZDO_DoEndDeviceBind_7:
\ 0000FD 6003 JZ $+5
\ 0000FF 02.... LJMP ??ZDO_DoEndDeviceBind_8 & 0xFFFF
556 {
557 // Check the first in against the seconds out
558 numMatches = ZDO_CompareClusterLists(
559 ZDO_EDBind->numOutClusters, ZDO_EDBind->outClusters,
560 bindReq->numInClusters, bindReq->inClusters, ZDOBuildBuf );
\ 000102 ; Setup parameters for call to function ZDO_CompareClusterLists
\ 000102 75.... MOV ?V0 + 0,#(??ZDOBuildBuf & 0xff)
\ 000105 75.... MOV ?V0 + 1,#((??ZDOBuildBuf >> 8) & 0xff)
\ 000108 78.. MOV R0,#?V0 + 0
\ 00010A 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 00010D EE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -