📄 spimgr.s51
字号:
MOVX A,@DPTR
JNZ ??SPIMgr_ProcessZToolData_13
INC DPTR
MOVX A,@DPTR
??SPIMgr_ProcessZToolData_13:
JZ ??SPIMgr_ProcessZToolData_14
// 237 {
// 238 /* Fill up what we can */
// 239 SPI_Msg->hdr.event = CMD_SERIAL_MSG;
LCALL ?Subroutine4 & 0xFFFF
??CrossCallReturnLabel_8:
MOV A,#0x1
MOVX @DPTR,A
// 240 SPI_Msg->msg = (uint8*)(SPI_Msg+1);
MOV DPTR,#SPI_Msg
MOVX A,@DPTR
ADD A,#0x4
MOV R0,A
INC DPTR
MOVX A,@DPTR
ADDC A,#0x0
MOV R1,A
LCALL ?Subroutine2 & 0xFFFF
??CrossCallReturnLabel_4:
MOV A,R0
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
// 241 SPI_Msg->msg[0] = CMD_Token[0];
MOV DPTR,#CMD_Token
MOVX A,@DPTR
PUSH A
CFI CFA_SP SP+-1
LCALL ?Subroutine1 & 0xFFFF
??CrossCallReturnLabel_2:
LCALL ??Subroutine4_0 & 0xFFFF
??CrossCallReturnLabel_9:
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 242 SPI_Msg->msg[1] = CMD_Token[1];
MOV DPTR,#(CMD_Token + 1)
MOVX A,@DPTR
PUSH A
CFI CFA_SP SP+-1
LCALL ?Subroutine0 & 0xFFFF
??CrossCallReturnLabel_0:
POP A
CFI CFA_SP SP+0
MOVX @DPTR,A
// 243 SPI_Msg->msg[2] = LEN_Token;
MOV DPTR,#LEN_Token
MOVX A,@DPTR
PUSH A
CFI CFA_SP SP+-1
LCALL ?Subroutine0 & 0xFFFF
??CrossCallReturnLabel_1:
INC DPTR
POP A
CFI CFA_SP SP+0
LJMP ??SPIMgr_ProcessZToolData_4 & 0xFFFF
// 244 }
// 245 else
// 246 {
// 247 state = SOP_STATE;
??SPIMgr_ProcessZToolData_14:
CLR A
MOV DPTR,#state
MOVX @DPTR,A
// 248 return;
LJMP ??SPIMgr_ProcessZToolData_0 & 0xFFFF
// 249 }
// 250
// 251 break;
// 252
// 253 case DATA_STATE:
// 254 SPI_Msg->msg[3 + tempDataLen++] = ch;
??SPIMgr_ProcessZToolData_9:
MOV DPTR,#tempDataLen
MOVX A,@DPTR
MOV R0,A
LCALL ?Subroutine2 & 0xFFFF
??CrossCallReturnLabel_5:
MOVX A,@DPTR
ADD A,R0
MOV R2,A
INC DPTR
MOVX A,@DPTR
ADDC A,#0x0
MOV DPL,R2
MOV DPH,A
INC DPTR
INC DPTR
INC DPTR
MOV A,R6
MOVX @DPTR,A
MOV DPTR,#tempDataLen
MOVX A,@DPTR
INC A
MOVX @DPTR,A
// 255 if ( tempDataLen == LEN_Token )
MOV R2,A
MOV DPTR,#LEN_Token
MOVX A,@DPTR
XRL A,R2
JZ $+5
LJMP ??SPIMgr_ProcessZToolData_1 & 0xFFFF
// 256 state = FCS_STATE;
MOV A,#0x5
LJMP ??SPIMgr_ProcessZToolData_3 & 0xFFFF
// 257 break;
// 258
// 259 case FCS_STATE:
// 260
// 261 FSC_Token = ch;
??SPIMgr_ProcessZToolData_10:
MOV A,R6
MOV DPTR,#FSC_Token
MOVX @DPTR,A
// 262
// 263 /* Make sure it's correct */
// 264 if ((SPIMgr_CalcFCS ((uint8*)&SPI_Msg->msg[0], 2 + 1 + LEN_Token) == FSC_Token))
; Setup parameters for call to function SPIMgr_CalcFCS
MOV DPTR,#LEN_Token
MOVX A,@DPTR
ADD A,#0x3
MOV R1,A
LCALL ?Subroutine1 & 0xFFFF
??CrossCallReturnLabel_3:
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R3,A
MOV DPTR,#(SPIMgr_CalcFCS & 0xffff)
MOV A,#((SPIMgr_CalcFCS >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,R1
MOV R2,A
MOV DPTR,#FSC_Token
MOVX A,@DPTR
XRL A,R2
MOV DPTR,#SPI_Msg
JNZ ??SPIMgr_ProcessZToolData_15
// 265 {
// 266 osal_msg_send( MT_TaskID, (byte *)SPI_Msg );
; Setup parameters for call to function osal_msg_send
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R3,A
MOV DPTR,#MT_TaskID
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#(osal_msg_send & 0xffff)
MOV A,#((osal_msg_send >> 16) & 0xff)
SJMP ??SPIMgr_ProcessZToolData_16
// 267 }
// 268 else
// 269 {
// 270 /* deallocate the msg */
// 271 osal_msg_deallocate ( (uint8 *)SPI_Msg);
??SPIMgr_ProcessZToolData_15:
; Setup parameters for call to function osal_msg_deallocate
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R3,A
MOV DPTR,#(osal_msg_deallocate & 0xffff)
MOV A,#((osal_msg_deallocate >> 16) & 0xff)
??SPIMgr_ProcessZToolData_16:
LCALL ?BCALL ; Banked call to: DPTR()
// 272 }
// 273
// 274 /* Reset the state, send or discard the buffers at this point */
// 275 state = SOP_STATE;
CLR A
LJMP ??SPIMgr_ProcessZToolData_3 & 0xFFFF
CFI EndBlock cfiBlock4
// 276
// 277 break;
// 278
// 279 default:
// 280 break;
// 281 }
// 282
// 283
// 284 }
// 285 }
// 286 }
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine2:
CFI Block cfiCond5 Using cfiCommon0
CFI NoFunction
CFI Conditional ??CrossCallReturnLabel_5
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 15)
CFI Block cfiCond6 Using cfiCommon0
CFI (cfiCond6) NoFunction
CFI (cfiCond6) Conditional ??CrossCallReturnLabel_4
CFI (cfiCond6) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond6) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond6) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond6) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond6) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond6) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond6) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond6) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond6) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond6) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond6) CFA_SP SP+0
CFI (cfiCond6) CFA_XSP16 add(XSP16, 15)
CFI Block cfiPicker7 Using cfiCommon1
CFI (cfiPicker7) NoFunction
CFI (cfiPicker7) Picker
MOV DPTR,#SPI_Msg
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV DPH,A
MOV DPL,R2
INC DPTR
INC DPTR
RET
CFI EndBlock cfiCond5
CFI EndBlock cfiCond6
CFI EndBlock cfiPicker7
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine1:
CFI Block cfiCond8 Using cfiCommon0
CFI NoFunction
CFI Conditional ??CrossCallReturnLabel_2
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI CFA_SP SP+-1
CFI CFA_XSP16 add(XSP16, 15)
CFI Block cfiCond9 Using cfiCommon0
CFI (cfiCond9) NoFunction
CFI (cfiCond9) Conditional ??CrossCallReturnLabel_3
CFI (cfiCond9) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond9) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond9) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond9) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond9) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond9) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond9) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond9) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond9) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond9) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond9) CFA_SP SP+0
CFI (cfiCond9) CFA_XSP16 add(XSP16, 15)
CFI Block cfiPicker10 Using cfiCommon1
CFI (cfiPicker10) NoFunction
CFI (cfiPicker10) Picker
LCALL ?Subroutine3 & 0xFFFF
??CrossCallReturnLabel_7:
RET
CFI EndBlock cfiCond8
CFI EndBlock cfiCond9
CFI EndBlock cfiPicker10
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine3:
CFI Block cfiCond11 Using cfiCommon0
CFI NoFunction
CFI Conditional ??CrossCallReturnLabel_6, ??CrossCallReturnLabel_0
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI CFA_SP SP+-1
CFI CFA_XSP16 add(XSP16, 15)
CFI Block cfiCond12 Using cfiCommon0
CFI (cfiCond12) NoFunction
CFI (cfiCond12) Conditional ??CrossCallReturnLabel_7, ??CrossCallReturnLabel_3
CFI (cfiCond12) R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond12) VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond12) V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond12) V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond12) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond12) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond12) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond12) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond12) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond12) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -