📄 wllocate.s51
字号:
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 V5 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 13)
; Saved register size: 13
; Auto size: 0
// 129
// 130 BYTE TxPower;
// 131 BYTE rst;
// 132 unsigned int xyz=0;
MOV R6,#0x0
MOV R7,#0x0
// 133
// 134 ConsolePutROMString("Set Channel...\r\n"); //串口输出调试信息
; Setup parameters for call to function conPrintROMString_func
MOV R2,#(??xxxxromstr_4 & 0xff)
MOV R3,#((??xxxxromstr_4 >> 8) & 0xff)
LCALL conPrintROMString_func
// 135 NormalChannelIdx=COMMCHANNEL;
MOV A,#0x1a
MOV DPTR,#NormalChannelIdx
MOVX @DPTR,A
// 136 ChangeToNormalChannel(); //切换信道到公用信道
; Setup parameters for call to function ChangeToNormalChannel
LCALL ChangeToNormalChannel
// 137
// 138
// 139 #if defined(IAMTAG) //设置发射功率,标签与节点的功率设置不同
// 140 TxPower =TAG_TXPOWER;
MOV ?V0 + 4,#0x7
// 141 #else
// 142 TxPower =SENSOR_TXPOWER;
// 143 #endif
// 144
// 145 ConsolePutROMString("设置发射功率(min:0~max:7):");
; Setup parameters for call to function conPrintROMString_func
MOV R2,#(??xxxxromstr_5 & 0xff)
MOV R3,#((??xxxxromstr_5 >> 8) & 0xff)
LCALL conPrintROMString_func
// 146 ConsolePutInitData(0,TxPower);
; Setup parameters for call to function ConsolePutInitData
MOV A,?V0 + 4
MOV ?V0 + 0,A
MOV R4,?V0 + 0
MOV R5,#0x0
MOV R2,#0x0
MOV R3,#0x0
LCALL ConsolePutInitData
// 147
// 148 PHYSetTxPower(TxPower);//设置发射功率//0~7;0-min ; 7-max
; Setup parameters for call to function halSetTxPower
MOV R1,?V0 + 4
LCALL halSetTxPower
// 149
// 150 ThisNode.NODEID[0] = macInfo.longAddr.v[0]; //节点ID号
MOV DPTR,#(macInfo + 1)
MOVX A,@DPTR
MOV DPTR,#ThisNode
MOVX @DPTR,A
// 151 ThisNode.NODEID[1] = macInfo.longAddr.v[1];
MOV DPTR,#(macInfo + 2)
MOVX A,@DPTR
MOV DPTR,#(ThisNode + 1)
MOVX @DPTR,A
// 152
// 153 srand(ThisNode.NODEID[0]*256+ThisNode.NODEID[1]);//
; Setup parameters for call to function srand
MOV DPTR,#ThisNode
MOVX A,@DPTR
MOV R0,A
MOV R1,#0x0
MOV A,R0
MOV B,#0x0
MUL AB
XCH A,R0
MOV R2,B
MOV B,#0x1
MUL AB
ADD A,R2
MOV R2,A
MOV B,#0x0
MOV A,R1
MUL AB
ADD A,R2
MOV R1,A
MOV DPTR,#(ThisNode + 1)
MOVX A,@DPTR
MOV R3,#0x0
ADD A,R0
MOV R2,A
MOV A,R3
ADDC A,R1
MOV R3,A
LCALL srand
// 154
// 155 ConsolePutROMString("本节点ID号:");
; Setup parameters for call to function conPrintROMString_func
MOV R2,#(??xxxxromstr_6 & 0xff)
MOV R3,#((??xxxxromstr_6 >> 8) & 0xff)
LCALL conPrintROMString_func
// 156 ConsolePutInitData(ThisNode.NODEID[0], ThisNode.NODEID[1]);
; Setup parameters for call to function ConsolePutInitData
MOV DPTR,#(ThisNode + 1)
MOVX A,@DPTR
MOV ?V0 + 0,A
MOV R4,?V0 + 0
MOV R5,#0x0
MOV DPTR,#ThisNode
MOVX A,@DPTR
MOV ?V0 + 0,A
MOV R2,?V0 + 0
MOV R3,#0x0
LCALL ConsolePutInitData
// 157 ConsolePutROMString("标签启动...\r\n");
; Setup parameters for call to function conPrintROMString_func
MOV R2,#(??xxxxromstr_7 & 0xff)
MOV R3,#((??xxxxromstr_7 >> 8) & 0xff)
LCALL conPrintROMString_func
// 158 CAPTAINLastSleepTime=TickGet();
; Setup parameters for call to function halGetMACTimer
LCALL halGetMACTimer
MOV ?V0 + 0,R2
MOV ?V0 + 1,R3
MOV ?V0 + 2,R4
MOV ?V0 + 3,R5
MOV DPTR,#CAPTAINLastSleepTime
MOV A,?V0 + 0
MOVX @DPTR,A
INC DPTR
MOV A,?V0 + 1
MOVX @DPTR,A
INC DPTR
MOV A,?V0 + 2
MOVX @DPTR,A
INC DPTR
MOV A,?V0 + 3
MOVX @DPTR,A
// 159 SENSORLastReportTime=0;
MOV DPTR,#__Constant_0
MOV R0,#?V0 + 0
LCALL ?L_MOV_X
MOV DPTR,#SENSORLastReportTime
MOV A,?V0 + 0
MOVX @DPTR,A
INC DPTR
MOV A,?V0 + 1
MOVX @DPTR,A
INC DPTR
MOV A,?V0 + 2
MOVX @DPTR,A
INC DPTR
MOV A,?V0 + 3
MOVX @DPTR,A
// 160
// 161
// 162 ConsolePutROMString("开始启动\r\n");
; Setup parameters for call to function conPrintROMString_func
MOV R2,#(??xxxxromstr_8 & 0xff)
MOV R3,#((??xxxxromstr_8 >> 8) & 0xff)
LCALL conPrintROMString_func
// 163
// 164 rst=(SLEEP>>0x03)&0x03;
MOV A,0xbe
RRC A
RRC A
RRC A
ANL A,#0x1f
ANL A,#0x3
MOV ?V0 + 5,A
// 165
// 166 #if defined(IAMTAG)
// 167
// 168 if(rst==0x02)//看门狗复位
MOV A,#0x2
XRL A,?V0 + 5
JNZ ??MainLoop_0
// 169 { ConsolePutROMString("watch dog reset\r\n");
; Setup parameters for call to function conPrintROMString_func
MOV R2,#(??xxxxromstr_9 & 0xff)
MOV R3,#((??xxxxromstr_9 >> 8) & 0xff)
LCALL conPrintROMString_func
// 170 WirelesDebugOut(DEBUG_WATCHDOG_RESET);
; Setup parameters for call to function WirelesDebugOut
MOV R1,#0x1
LCALL WirelesDebugOut
// 171 WatchDogReset=0;
MOV A,#0x0
MOV DPTR,#WatchDogReset
MOVX @DPTR,A
// 172 }
// 173 if(rst==0x00)//看门狗复位
??MainLoop_0:
MOV A,?V0 + 5
JNZ ??MainLoop_1
// 174 { ConsolePutROMString("Power-on reset\r\n");
; Setup parameters for call to function conPrintROMString_func
MOV R2,#(??xxxxromstr_10 & 0xff)
MOV R3,#((??xxxxromstr_10 >> 8) & 0xff)
LCALL conPrintROMString_func
// 175
// 176 WatchDogReset=0;
MOV A,#0x0
MOV DPTR,#WatchDogReset
MOVX @DPTR,A
// 177 }
// 178 if(rst==0x01)//看门狗复位
??MainLoop_1:
MOV A,#0x1
XRL A,?V0 + 5
JNZ ??MainLoop_2
// 179 { ConsolePutROMString("External reset\r\n");
; Setup parameters for call to function conPrintROMString_func
MOV R2,#(??xxxxromstr_11 & 0xff)
MOV R3,#((??xxxxromstr_11 >> 8) & 0xff)
LCALL conPrintROMString_func
// 180
// 181 WatchDogReset=0;
MOV A,#0x0
MOV DPTR,#WatchDogReset
MOVX @DPTR,A
// 182 }
// 183
// 184 #endif
// 185
// 186 //WDT_SET_TIMEOUT_PERIOD(M_SEC_250); //设置看门狗时间值
// 187 //WDT_ENABLE(); //使能看门狗
// 188
// 189
// 190 ConsolePutROMString("进入主程序...\r\n");
??MainLoop_2:
; Setup parameters for call to function conPrintROMString_func
MOV R2,#(??xxxxromstr_12 & 0xff)
MOV R3,#((??xxxxromstr_12 >> 8) & 0xff)
LCALL conPrintROMString_func
// 191 mainLoop=1;
MOV A,#0x1
MOV DPTR,#mainLoop
MOVX @DPTR,A
// 192 while (1)
// 193 {
// 194
// 195
// 196 //WDT_RESET(); //看门狗喂狗
// 197 //SleepSomeTime(100); //休眠
// 198 macFSM(); //mac层通讯处理
??MainLoop_3:
; Setup parameters for call to function macFSM
LCALL macFSM
// 199
// 200
// 201 if(submacCurrentFrame.sub_type.Val!=0xff) //若收到数据
MOV DPTR,#submacCurrentFrame
MOVX A,@DPTR
XRL A,#0xff
JZ ??MainLoop_4
// 202 {
// 203 P0_1=~P0_1; //改变绿灯状态
MOV C,0x80.1
CPL C
MOV 0x80.1,C
// 204 }
// 205
// 206
// 207 if(xyz==0) //定时时间间隔到
??MainLoop_4:
MOV A,#0x0
XRL A,R6
JNZ ??MainLoop_5
MOV A,#0x0
XRL A,R7
??MainLoop_5:
JNZ ??MainLoop_6
// 208 {
// 209 P0_0=~P0_0; //改变红灯状态
MOV C,0x80.0
CPL C
MOV 0x80.0,C
// 210 WirelessSendData(MSG_TAG_ISANYCAPTAINHERE); //无线广播发送数据
; Setup parameters for call to function WirelessSendData
MOV R1,#0x20
LCALL WirelessSendData
// 211
// 212 }
// 213 xyz++;
??MainLoop_6:
MOV A,R6
ADD A,#0x1
MOV R6,A
MOV A,R7
ADDC A,#0x0
MOV R7,A
// 214 if(xyz>8000)xyz=0; //记时
CLR C
MOV A,R6
SUBB A,#0x41
MOV A,R7
SUBB A,#0x1f
JC ??MainLoop_3
MOV R6,#0x0
MOV R7,#0x0
SJMP ??MainLoop_3
CFI EndBlock cfiBlock6
// 215 continue;
// 216 }
// 217 }
RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_4:
DB "Set Channel...\015\012"
RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_5:
DB "\311\350\326\303\267\242\311\344\271\246\302\312(min:0~max:7):"
RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_6:
DB "\261\276\275\332\265\343ID\272\305:"
RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_7:
DB "\261\352\307\251\306\364\266\257...\015\012"
RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_8:
DB "\277\252\312\274\306\364\266\257\015\012"
RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_9:
DB "watch dog reset\015\012"
RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_10:
DB "Power-on reset\015\012"
RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_11:
DB "External reset\015\012"
RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_12:
DB "\275\370\310\353\326\367\263\314\320\362...\015\012"
// 218
// 219
RSEG NEAR_CODE:CODE:NOROOT(0)
// 220 void ResetsubmacCurrentFrame(void)
ResetsubmacCurrentFrame:
CFI Block cfiBlock7 Using cfiCommon0
CFI Function ResetsubmacCurrentFrame
// 221 {
PUSH DPL
CFI DPL0 Frame(CFA_SP, 3)
CFI CFA_SP SP+-3
PUSH DPH
CFI DPH0 Frame(CFA_SP, 4)
CFI CFA_SP SP+-4
; Saved register size: 2
; Auto size: 0
// 222 submacCurrentFrame.sub_type.Val=0xff;
MOV A,#-0x1
MOV DPTR,#submacCurrentFrame
MOVX @DPTR,A
// 223 }
POP DPH
CFI DPH0 SameValue
CFI CFA_SP SP+-3
POP DPL
CFI DPL0 SameValue
CFI CFA_SP SP+-2
RET
CFI EndBlock cfiBlock7
RSEG XDATA_I:XDATA:NOROOT(0)
__Constant_fffff:
DS 4
REQUIRE `?<Initializer for __Constant_fffff>`
REQUIRE __INIT_XDATA_I
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for __Constant_fffff>`:
DD 1048575
RSEG XDATA_I:XDATA:NOROOT(0)
__Constant_32:
DS 4
REQUIRE `?<Initializer for __Constant_32>`
REQUIRE __INIT_XDATA_I
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for __Constant_32>`:
DD 50
RSEG XDATA_I:XDATA:NOROOT(0)
__Constant_f424:
DS 4
REQUIRE `?<Initializer for __Constant_f424>`
REQUIRE __INIT_XDATA_I
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for __Constant_f424>`:
DD 62500
RSEG XDATA_I:XDATA:NOROOT(0)
__Constant_0:
DS 4
REQUIRE `?<Initializer for __Constant_0>`
REQUIRE __INIT_XDATA_I
RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for __Constant_0>`:
DD 0
ASEGN SFR_AN:DATA:NOROOT,080H
// union <unnamed> volatile __sfr _A_P0
_A_P0:
DS 1
END
// 224
//
// 197 bytes in segment CODE_C
// 660 bytes in segment NEAR_CODE
// 3 bytes in segment SFR_AN
// 16 bytes in segment XDATA_I
// 16 bytes in segment XDATA_ID
// 238 bytes in segment XDATA_Z
//
// 857 bytes of CODE memory (+ 16 bytes shared)
// 0 bytes of DATA memory (+ 3 bytes shared)
// 238 bytes of XDATA memory (+ 16 bytes shared)
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -