📄 mac_power_management.s51
字号:
MOV DPTR,#mbcnInfo
MOVX @DPTR,A
// 440 mbcnInfo.pTxPacket = NULL;
MOV DPTR,#(mbcnInfo + 2)
CLR A
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
// 441 mscInfo.scanStatus = MSC_STATUS_FINISHED;
MOV A,#0x1
MOV DPTR,#(mscInfo + 10)
MOVX @DPTR,A
// 442 break;
// 443 }
// 444
// 445 // Reset flags
// 446 RESET_MF();
??mpmResumeMacAfterPowerDown_0:
CLR A
MOV DPTR,#(macInfo + 6)
MOVX @DPTR,A
// 447
// 448 // MAC command state
// 449 macInfo.state = MAC_STATE_DEFAULT;
MOV DPTR,#macInfo
MOVX @DPTR,A
// 450
// 451 // Flush the RX FIFO twice (chip bug)
// 452 ISFLUSHRX;
MOV 0xe1,#-0x1a
// 453 ISFLUSHRX;
MOV 0xe1,#-0x1a
// 454 ISFLUSHTX;
MOV 0xe1,#-0x19
// 455 ISFLUSHTX;
MOV 0xe1,#-0x19
// 456
// 457 // Resume coordinator
// 458 #pragma diag_suppress=PA082
// 459 mdmctrl0 = READ_RFR16(MDMCTRL0);
MOV DPTR,#-0x20fe
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#-0x20fd
MOVX A,@DPTR
ADD A,#0x0
CLR A
ADDC A,R1
MOV R1,A
// 460 #pragma diag_default=PA082
// 461 if (mdmctrl0 & PAN_COORDINATOR_BM)
MOV A,#0x10
ANL A,R1
MOV R1,A
CLR A
JNZ ??mpmResumeMacAfterPowerDown_7
MOV A,R1
??mpmResumeMacAfterPowerDown_7:
MOV DPTR,#(mpib + 8)
JZ ??mpmResumeMacAfterPowerDown_8
// 462 ResumeCoordinatorAfterPowerDown (resumeMode, synchronousStart);
MOVX A,@DPTR
XRL A,#0xf
JNZ ??mpmResumeMacAfterPowerDown_9
; Setup parameters for call to function mtimSetCallback
MOV DPTR,#__Constant_30
LCALL ?PUSH_XSTACK8_X_FOUR
CFI CFA_XSP16 add(XSP16, 14)
MOV R1,#(mbcnExpirePacketsNonBeacon & 0xff)
MOV R2,#((mbcnExpirePacketsNonBeacon >> 8) & 0xff)
MOV R3,#((mbcnExpirePacketsNonBeacon >> 16) & 0xff)
LCALL mtimSetCallback
MOV A,#0x4
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 10)
SJMP ??mpmResumeMacAfterPowerDown_9
// 463 else
// 464 ResumeDeviceAfterPowerDown (resumeMode, synchronousStart);
??mpmResumeMacAfterPowerDown_8:
MOVX A,@DPTR
MOV R2,A
MOV A,#0xf
XRL A,R2
JZ ??mpmResumeMacAfterPowerDown_9
MOV A,?V0 + 0
JNZ ??mpmResumeMacAfterPowerDown_9
MOV A,R7
LCALL ?UC_SWITCH_DENSE
`?<Jumptable for mpmResumeMacAfterPowerDown>_1`:
DB 0
DB 1
DW ??mpmResumeMacAfterPowerDown_9
DW ??mpmResumeMacAfterPowerDown_10
DW ??mpmResumeMacAfterPowerDown_10
??mpmResumeMacAfterPowerDown_10:
MOV A,#0x1
LCALL ?XSTACK_DISP0_8
MOV A,R2
MOVX @DPTR,A
CLR A
MOV DPTR,#(mpib + 8)
MOVX @DPTR,A
; Setup parameters for call to function mlmeSetRequest
MOV A,#0x1
LCALL ?XSTACK_DISP0_8
MOV R2,DPL
MOV R3,DPH
MOV R1,#0x47
LCALL mlmeSetRequest
; Setup parameters for call to function mlmeSyncRequest
MOV R2,#0x1
MOV DPTR,#ppib
MOVX A,@DPTR
MOV R1,A
LCALL mlmeSyncRequest
// 465
// 466 // Turn the interrupts back on
// 467 EnableRfInterrupts ();
??mpmResumeMacAfterPowerDown_9:
; Setup parameters for call to function EnableRfInterrupts
LCALL EnableRfInterrupts
// 468 ENABLE_TIMER2_INT();
SETB 0xb8.2
// 469 ENABLE_GLOBAL_INT();
SETB 0xa8.7
// 470
// 471 // Turn on receiver
// 472 if (rxOnWhenIdle == TRUE)
MOV A,#0x1
XRL A,R6
JNZ ??mpmResumeMacAfterPowerDown_11
// 473 {
// 474 setAttributeValue = TRUE;
MOV A,#0x1
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX @DPTR,A
// 475 mlmeSetRequest(MAC_RX_ON_WHEN_IDLE, &setAttributeValue);
; Setup parameters for call to function mlmeSetRequest
MOV R2,DPL
MOV R3,DPH
MOV R1,#0x52
LCALL mlmeSetRequest
// 476 }
// 477
// 478 }
??mpmResumeMacAfterPowerDown_11:
MOV A,#0x2
LJMP ?Subroutine1
CFI EndBlock cfiBlock12
RSEG NEAR_CODE:CODE:NOROOT(0)
mpmSetTask:
CFI Block cfiBlock13 Using cfiCommon1
CFI Function mpmSetTask
FUNCALL mpmSetTask, mschRemoveTask
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL mpmSetTask, mpmSetConfirm
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL mpmSetTask, mschRescheduleTask
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL mpmSetTask, mpmTurnOnVregAndReset
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL mpmSetTask, mpmTurnOnXosc
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL mpmSetTask, mpmTurnOffXosc
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL mpmSetTask, mpmTurnOffVreg
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL mpmSetTask, mschRemoveTask
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL mpmSetTask, mpmSetConfirm
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
MOV A,#-0x9
LCALL ?BANKED_ENTER_XDATA
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 9)
; Saved register size: 9
; Auto size: 0
MOV A,R2
ADD A,#0x8
MOV R6,A
MOV A,R3
ADDC A,#0x0
MOV R7,A
MOV DPTR,#(mpib + 8)
MOVX A,@DPTR
XRL A,#0xf
JNZ ??mpmSetTask_0
MOV DPTR,#(mpib + 31)
MOVX A,@DPTR
JZ ??mpmSetTask_0
; Setup parameters for call to function mschRemoveTask
MOV R2,#0x0
MOV DPL,R6
MOV DPH,R7
MOVX A,@DPTR
MOV R1,A
LCALL mschRemoveTask & 0xFFFF
; Setup parameters for call to function mpmSetConfirm
MOV R1,#0x2
SJMP ??mpmSetTask_1
??mpmSetTask_0:
MOV DPTR,#macInfo
MOVX A,@DPTR
JZ ??mpmSetTask_2
; Setup parameters for call to function mschRescheduleTask
MOV R1,#0x0
LCALL mschRescheduleTask & 0xFFFF
SJMP ??mpmSetTask_3
??mpmSetTask_2:
MOV DPL,R2
MOV DPH,R3
INC DPTR
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV DPTR,#(mpmInfo + 1)
MOVX @DPTR,A
LCALL ?UC_SWITCH_DENSE
`?<Jumptable for mpmSetTask>_0`:
DB 0
DB 2
DW ??mpmSetTask_4
DW ??mpmSetTask_5
DW ??mpmSetTask_6
DW ??mpmSetTask_7
??mpmSetTask_5:
MOV DPTR,#mpmInfo
MOVX A,@DPTR
XRL A,#0x2
JNZ ??mpmSetTask_8
; Setup parameters for call to function mpmTurnOnVregAndReset
LCALL mpmTurnOnVregAndReset & 0xFFFF
??mpmSetTask_8:
MOVX A,@DPTR
JZ ??mpmSetTask_9
; Setup parameters for call to function mpmTurnOnXosc
LCALL mpmTurnOnXosc & 0xFFFF
??mpmSetTask_9:
CLR A
MOV DPTR,#(mrxInfo + 15)
MOVX @DPTR,A
SJMP ??mpmSetTask_4
??mpmSetTask_6:
ANL 0xc3,#0xfe
MOV A,#0x1
MOV DPTR,#(mrxInfo + 15)
MOVX @DPTR,A
; Setup parameters for call to function mpmTurnOffXosc
LCALL mpmTurnOffXosc & 0xFFFF
SJMP ??mpmSetTask_4
??mpmSetTask_7:
ANL 0xc3,#0xfe
MOV A,#0x1
MOV DPTR,#(mrxInfo + 15)
MOVX @DPTR,A
; Setup parameters for call to function mpmTurnOffVreg
LCALL mpmTurnOffVreg & 0xFFFF
??mpmSetTask_4:
MOV DPTR,#(mpmInfo + 1)
MOVX A,@DPTR
MOV DPTR,#mpmInfo
MOVX @DPTR,A
; Setup parameters for call to function mschRemoveTask
MOV R2,#0x0
MOV DPL,R6
MOV DPH,R7
MOVX A,@DPTR
MOV R1,A
LCALL mschRemoveTask & 0xFFFF
; Setup parameters for call to function mpmSetConfirm
MOV R1,#0x0
??mpmSetTask_1:
LCALL mpmSetConfirm & 0xFFFF
??mpmSetTask_3:
MOV R7,#0x1
LJMP ?BANKED_LEAVE_XDATA
CFI EndBlock cfiBlock13
RSEG XDATA_I:XDATA:NOROOT(0)
__Constant_30:
DS 4
REQUIRE `?<Initializer for __Constant_30>`
REQUIRE __INIT_XDATA_I
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for __Constant_30>`:
DD 48
ASEGN SFR_AN:DATA:NOROOT,0a8H
// union <unnamed> volatile __sfr _A_IEN0
_A_IEN0:
DS 1
ASEGN SFR_AN:DATA:NOROOT,0b8H
// union <unnamed> volatile __sfr _A_IEN1
_A_IEN1:
DS 1
END
// 479
// 480
// 481 //-------------------------------------------------------------------------------------------------------
// 482 // static void ResumeCoordinatorAfterPowerDown (RESUME_MODE resumeMode)
// 483 // BOOL synchronousStart)
// 484 //
// 485 // DESCRIPTION:
// 486 // Resumes the coordinator after a power down
// 487 //
// 488 //-------------------------------------------------------------------------------------------------------
// 489 static void ResumeCoordinatorAfterPowerDown (RESUME_MODE resumeMode, BOOL synchronousStart)
// 490 {
// 491 if (mpib.macBeaconOrder == 15)
// 492 mtimSetCallback(mbcnExpirePacketsNonBeacon, (UINT32)(aBaseSuperframeDuration / aUnitBackoffPeriod));
// 493 }
// 494
// 495 //-------------------------------------------------------------------------------------------------------
// 496 // static void ResumeDeviceAfterPowerDown (RESUME_MODE resumeMode,
// 497 // BOOL synchronousStart)
// 498 //
// 499 // DESCRIPTION:
// 500 // Resumes a device after a power down
// 501 //
// 502 //----------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -