📄 wllocate.s51
字号:
MOV A,#-0x8
LCALL ?FUNC_ENTER_XDATA
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 8)
; Saved register size: 8
; Auto size: 0
MOV A,R1
MOV R6,A
// 74 ISRFOFF; //晶振关闭
MOV 0xe1,#-0x1b
// 75 PHYSetChannel(idx); //切换信道物理层函数
; Setup parameters for call to function macSetChannel
MOV A,R6
MOV R1,A
LCALL macSetChannel
// 76 ISRXON; //晶振打开
MOV 0xe1,#-0x1e
// 77 ChannelIdx=idx;
MOV A,R6
MOV DPTR,#ChannelIdx
MOVX @DPTR,A
// 78 }
MOV R7,#0x1
LJMP ?FUNC_LEAVE_XDATA
CFI EndBlock cfiBlock0
// 79
// 80
RSEG NEAR_CODE:CODE:NOROOT(0)
// 81 void ChangeToNormalChannel(void) //切换到公用信道函数
ChangeToNormalChannel:
CFI Block cfiBlock1 Using cfiCommon0
CFI Function ChangeToNormalChannel
// 82 {
FUNCALL ChangeToNormalChannel, conPrintROMString_func
LOCFRAME XSTACK, 8, STACK
ARGFRAME XSTACK, 8, STACK
FUNCALL ChangeToNormalChannel, ConsolePutInitData
LOCFRAME XSTACK, 8, STACK
ARGFRAME XSTACK, 8, STACK
FUNCALL ChangeToNormalChannel, _changetochannel
LOCFRAME XSTACK, 8, STACK
ARGFRAME XSTACK, 8, STACK
MOV A,#-0x8
LCALL ?FUNC_ENTER_XDATA
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 8)
; Saved register size: 8
; Auto size: 0
// 83 ConsolePutROMString("切换到公用信道:");
; Setup parameters for call to function conPrintROMString_func
MOV R2,#(??xxxxromstr & 0xff)
MOV R3,#((??xxxxromstr >> 8) & 0xff)
LCALL conPrintROMString_func
// 84 ConsolePutInitData(0,NormalChannelIdx); //输出调试信息
; Setup parameters for call to function ConsolePutInitData
MOV DPTR,#NormalChannelIdx
MOVX A,@DPTR
MOV ?V0 + 0,A
MOV R4,?V0 + 0
MOV R5,#0x0
MOV R2,#0x0
MOV R3,#0x0
LCALL ConsolePutInitData
// 85 _changetochannel(NormalChannelIdx); //切换信道
; Setup parameters for call to function _changetochannel
MOV DPTR,#NormalChannelIdx
MOVX A,@DPTR
MOV R1,A
LCALL _changetochannel
// 86 }
MOV R7,#0x1
LJMP ?FUNC_LEAVE_XDATA
CFI EndBlock cfiBlock1
RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr:
DB "\307\320\273\273\265\275\271\253\323\303\320\305\265\300:"
// 87
// 88
RSEG NEAR_CODE:CODE:NOROOT(0)
// 89 void ChangeToChannel(BYTE chlidx) //切换到指定信道函数
ChangeToChannel:
CFI Block cfiBlock2 Using cfiCommon0
CFI Function ChangeToChannel
// 90 {
FUNCALL ChangeToChannel, conPrintROMString_func
LOCFRAME XSTACK, 8, STACK
ARGFRAME XSTACK, 8, STACK
FUNCALL ChangeToChannel, ConsolePutInitData
LOCFRAME XSTACK, 8, STACK
ARGFRAME XSTACK, 8, STACK
FUNCALL ChangeToChannel, _changetochannel
LOCFRAME XSTACK, 8, STACK
ARGFRAME XSTACK, 8, STACK
MOV A,#-0x8
LCALL ?FUNC_ENTER_XDATA
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 8)
; Saved register size: 8
; Auto size: 0
MOV A,R1
MOV R6,A
// 91 ConsolePutROMString("切换到信道(11~26):");
; Setup parameters for call to function conPrintROMString_func
MOV R2,#(??xxxxromstr_1 & 0xff)
MOV R3,#((??xxxxromstr_1 >> 8) & 0xff)
LCALL conPrintROMString_func
// 92 ConsolePutInitData(0,chlidx);
; Setup parameters for call to function ConsolePutInitData
MOV A,R6
MOV ?V0 + 0,A
MOV R4,?V0 + 0
MOV R5,#0x0
MOV R2,#0x0
MOV R3,#0x0
LCALL ConsolePutInitData
// 93 _changetochannel(chlidx);
; Setup parameters for call to function _changetochannel
MOV A,R6
MOV R1,A
LCALL _changetochannel
// 94 }
MOV R7,#0x1
LJMP ?FUNC_LEAVE_XDATA
CFI EndBlock cfiBlock2
RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_1:
DB "\307\320\273\273\265\275\320\305\265\300(11~26):"
// 95
// 96
RSEG NEAR_CODE:CODE:NOROOT(0)
// 97 void SleepSomeTime(int time) //休眠函数
SleepSomeTime:
CFI Block cfiBlock3 Using cfiCommon0
CFI Function SleepSomeTime
// 98 {
FUNCALL SleepSomeTime, conPrintROMString_func
LOCFRAME XSTACK, 8, STACK
ARGFRAME XSTACK, 8, STACK
FUNCALL SleepSomeTime, ConsolePutInitData
LOCFRAME XSTACK, 8, STACK
ARGFRAME XSTACK, 8, STACK
FUNCALL SleepSomeTime, halSleep
LOCFRAME XSTACK, 8, STACK
ARGFRAME XSTACK, 8, STACK
FUNCALL SleepSomeTime, conPrintROMString_func
LOCFRAME XSTACK, 8, STACK
ARGFRAME XSTACK, 8, STACK
MOV A,#-0x8
LCALL ?FUNC_ENTER_XDATA
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 8)
; Saved register size: 8
; Auto size: 0
MOV A,R2
MOV R6,A
MOV A,R3
MOV R7,A
// 99 ConsolePutROMString("休眠:");
; Setup parameters for call to function conPrintROMString_func
MOV R2,#(??xxxxromstr_2 & 0xff)
MOV R3,#((??xxxxromstr_2 >> 8) & 0xff)
LCALL conPrintROMString_func
// 100 ConsolePutInitData(0,time);
; Setup parameters for call to function ConsolePutInitData
MOV A,R6
MOV R4,A
MOV A,R7
MOV R5,A
MOV R2,#0x0
MOV R3,#0x0
LCALL ConsolePutInitData
// 101 ISRFOFF; //晶振关闭
MOV 0xe1,#-0x1b
// 102 halSleep(time+100); //休眠
; Setup parameters for call to function halSleep
MOV A,#0x64
ADD A,R6
MOV R2,A
MOV A,#0x0
ADDC A,R7
MOV R3,A
MOV A,R3
RLC A
SUBB A,0xE0 /* A */
MOV R4,A
MOV R5,A
LCALL halSleep
// 103 ISRXON; //晶振打开
MOV 0xe1,#-0x1e
// 104 ConsolePutROMString("唤醒\r\n");
; Setup parameters for call to function conPrintROMString_func
MOV R2,#(??xxxxromstr_3 & 0xff)
MOV R3,#((??xxxxromstr_3 >> 8) & 0xff)
LCALL conPrintROMString_func
// 105 }
MOV R7,#0x1
LJMP ?FUNC_LEAVE_XDATA
CFI EndBlock cfiBlock3
RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_2:
DB "\320\335\303\337:"
RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_3:
DB "\273\275\320\321\015\012"
// 106
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 107 BYTE DebugParam[20];
DebugParam:
DS 20
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 108 BYTE DebugParamLen;
DebugParamLen:
DS 1
RSEG NEAR_CODE:CODE:NOROOT(0)
// 109 void WirelesDebugOut(BYTE code) //无线发送调试信息函数
WirelesDebugOut:
CFI Block cfiBlock4 Using cfiCommon0
CFI Function WirelesDebugOut
// 110 {
FUNCALL WirelesDebugOut, ChangeToChannel
LOCFRAME XSTACK, 8, STACK
ARGFRAME XSTACK, 8, STACK
FUNCALL WirelesDebugOut, WirelessSendData
LOCFRAME XSTACK, 8, STACK
ARGFRAME XSTACK, 8, STACK
FUNCALL WirelesDebugOut, ChangeToChannel
LOCFRAME XSTACK, 8, STACK
ARGFRAME XSTACK, 8, STACK
MOV A,#-0x8
LCALL ?FUNC_ENTER_XDATA
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 8)
; Saved register size: 8
; Auto size: 0
MOV A,R1
MOV R6,A
// 111 BYTE OldChlIdx;
// 112
// 113 OldChlIdx=ChannelIdx;
MOV DPTR,#ChannelIdx
MOVX A,@DPTR
MOV R7,A
// 114 DebugCode=code;
MOV A,R6
MOV DPTR,#DebugCode
MOVX @DPTR,A
// 115 ChangeToChannel(DEBUGCHANNEL);
; Setup parameters for call to function ChangeToChannel
MOV R1,#0x19
LCALL ChangeToChannel
// 116 WirelessSendData(MSG_DEBUG_OUT);
; Setup parameters for call to function WirelessSendData
MOV R1,#-0x60
LCALL WirelessSendData
// 117 DebugParamLen=0;
MOV A,#0x0
MOV DPTR,#DebugParamLen
MOVX @DPTR,A
// 118 ChangeToChannel(OldChlIdx);
; Setup parameters for call to function ChangeToChannel
MOV A,R7
MOV R1,A
LCALL ChangeToChannel
// 119
// 120 }
MOV R7,#0x1
LJMP ?FUNC_LEAVE_XDATA
CFI EndBlock cfiBlock4
RSEG NEAR_CODE:CODE:NOROOT(0)
// 121 int TickGetDiff(TICK now,TICK start) //返回值单位:50ms
TickGetDiff:
CFI Block cfiBlock5 Using cfiCommon0
CFI Function TickGetDiff
// 122 {
MOV A,#-0xf
LCALL ?FUNC_ENTER_XDATA
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI V7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 15)
; Saved register size: 15
; Auto size: 0
MOV ?V0 + 0,R2
MOV ?V0 + 1,R3
MOV ?V0 + 2,R4
MOV ?V0 + 3,R5
MOV A,#0xf
LCALL ?XSTACK_DISP0_8
MOV R0,#?V0 + 4
LCALL ?L_MOV_X
// 123 return halMACTimerDelta(now,start) *50/LRWPAN_SYMBOLS_PER_SECOND;
MOV R0,#?V0 + 0
MOV R1,#?V0 + 4
LCALL ?L_SUB
MOV DPTR,#__Constant_fffff
MOV R0,#?V0 + 0
LCALL ?L_AND_X
MOV DPTR,#__Constant_32
MOV R0,#?V0 + 4
LCALL ?L_MOV_X
MOV R0,#?V0 + 0
MOV R1,#?V0 + 4
LCALL ?L_MUL
MOV DPTR,#__Constant_f424
MOV R0,#?V0 + 4
LCALL ?L_MOV_X
MOV R0,#?V0 + 0
MOV R1,#?V0 + 4
LCALL ?UL_DIV_MOD
MOV R2,?V0 + 0
MOV R3,?V0 + 1
MOV R7,#0x8
LJMP ?FUNC_LEAVE_XDATA
CFI EndBlock cfiBlock5
// 124 }
// 125
// 126
RSEG NEAR_CODE:CODE:NOROOT(0)
// 127 void MainLoop(void) //主循环函数
MainLoop:
CFI Block cfiBlock6 Using cfiCommon0
CFI Function MainLoop
// 128 {
FUNCALL MainLoop, conPrintROMString_func
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL MainLoop, ChangeToNormalChannel
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL MainLoop, conPrintROMString_func
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL MainLoop, ConsolePutInitData
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL MainLoop, halSetTxPower
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL MainLoop, srand
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL MainLoop, conPrintROMString_func
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL MainLoop, ConsolePutInitData
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL MainLoop, conPrintROMString_func
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL MainLoop, halGetMACTimer
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL MainLoop, conPrintROMString_func
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL MainLoop, conPrintROMString_func
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL MainLoop, WirelesDebugOut
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL MainLoop, conPrintROMString_func
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL MainLoop, conPrintROMString_func
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL MainLoop, conPrintROMString_func
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL MainLoop, macFSM
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL MainLoop, WirelessSendData
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
MOV A,#-0xd
LCALL ?FUNC_ENTER_XDATA
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -