📄 debugtrace.s51
字号:
CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V7 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, 18)
CFI Block cfiCond5 Using cfiCommon0
CFI (cfiCond5) NoFunction
CFI (cfiCond5) Conditional ??CrossCallReturnLabel_4, ??CrossCallReturnLabel_3
CFI (cfiCond5) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond5) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond5) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond5) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond5) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond5) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond5) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond5) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond5) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond5) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond5) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond5) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond5) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond5) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond5) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond5) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond5) CFA_SP SP+0
CFI (cfiCond5) CFA_XSP16 add(XSP16, 18)
CFI Block cfiCond6 Using cfiCommon0
CFI (cfiCond6) NoFunction
CFI (cfiCond6) Conditional ??CrossCallReturnLabel_5, ??CrossCallReturnLabel_0
CFI (cfiCond6) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond6) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond6) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond6) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond6) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond6) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond6) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond6) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond6) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond6) V7 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, 18)
CFI Block cfiCond7 Using cfiCommon0
CFI (cfiCond7) NoFunction
CFI (cfiCond7) Conditional ??CrossCallReturnLabel_4, ??CrossCallReturnLabel_2
CFI (cfiCond7) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond7) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond7) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond7) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond7) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond7) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond7) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond7) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond7) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond7) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond7) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond7) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond7) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond7) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond7) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond7) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond7) CFA_SP SP+0
CFI (cfiCond7) CFA_XSP16 add(XSP16, 18)
CFI Block cfiPicker8 Using cfiCommon1
CFI (cfiPicker8) NoFunction
CFI (cfiPicker8) Picker
MOVX @DPTR,A
MOV DPL,R2
MOV DPH,R3
INC DPTR
INC DPTR
INC DPTR
RET
CFI EndBlock cfiCond4
CFI EndBlock cfiCond5
CFI EndBlock cfiCond6
CFI EndBlock cfiCond7
CFI EndBlock cfiPicker8
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine0:
CFI Block cfiCond9 Using cfiCommon0
CFI NoFunction
CFI Conditional ??CrossCallReturnLabel_0
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V7 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, 18)
CFI Block cfiCond10 Using cfiCommon0
CFI (cfiCond10) NoFunction
CFI (cfiCond10) Conditional ??CrossCallReturnLabel_1
CFI (cfiCond10) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond10) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond10) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond10) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond10) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond10) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond10) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond10) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond10) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond10) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond10) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond10) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond10) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond10) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond10) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond10) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond10) CFA_SP SP+0
CFI (cfiCond10) CFA_XSP16 add(XSP16, 18)
CFI Block cfiPicker11 Using cfiCommon1
CFI (cfiPicker11) NoFunction
CFI (cfiPicker11) Picker
LCALL ?Subroutine2 & 0xFFFF
??CrossCallReturnLabel_5:
INC DPTR
INC DPTR
INC DPTR
INC DPTR
RET
CFI EndBlock cfiCond9
CFI EndBlock cfiCond10
CFI EndBlock cfiPicker11
// 129
// 130 /*********************************************************************
// 131 * @fn debug_str
// 132 *
// 133 * @brief
// 134 *
// 135 * This feature allows modules to display a debug text string as
// 136 * applications execute in real-time. This feature will output to
// 137 * the serial port for display in the Z-Test tool.
// 138 *
// 139 * This feature will most likely be compiled out in the production
// 140 * code in order to save code space.
// 141 *
// 142 * @param byte *str_ptr - pointer to null-terminated string
// 143 *
// 144 * @return void
// 145 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 146 void debug_str( byte *str_ptr )
debug_str:
CFI Block cfiBlock12 Using cfiCommon0
CFI Function debug_str
// 147 {
FUNCALL debug_str, osal_strlen
LOCFRAME XSTACK, 14, STACK
ARGFRAME XSTACK, 14, STACK
FUNCALL debug_str, osal_msg_allocate
LOCFRAME XSTACK, 14, STACK
ARGFRAME XSTACK, 14, STACK
FUNCALL debug_str, osal_memcpy
LOCFRAME XSTACK, 17, STACK
ARGFRAME XSTACK, 17, STACK
FUNCALL debug_str, osal_msg_send
LOCFRAME XSTACK, 14, STACK
ARGFRAME XSTACK, 14, STACK
MOV A,#-0xe
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 V5 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 14)
; Saved register size: 14
; Auto size: 0
MOV ?V0 + 0,R2
MOV ?V0 + 1,R3
// 148 mtDebugStr_t *msg;
// 149 byte mln;
// 150 byte sln;
// 151
// 152 // Text string length
// 153 sln = (byte)osal_strlen( (void*)str_ptr );
; Setup parameters for call to function osal_strlen
MOV DPTR,#(osal_strlen & 0xffff)
MOV A,#((osal_strlen >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,R2
MOV ?V0 + 3,A
// 154
// 155 // Debug string message length
// 156 mln = sizeof ( mtDebugStr_t ) + sln;
// 157
// 158 // Get a message buffer to build the debug message
// 159 msg = (mtDebugStr_t *)osal_msg_allocate( mln );
; Setup parameters for call to function osal_msg_allocate
MOV A,#0x5
ADD A,?V0 + 3
MOV R2,A
MOV R3,#0x0
MOV DPTR,#(osal_msg_allocate & 0xffff)
MOV A,#((osal_msg_allocate >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV ?V0 + 4,R2
MOV ?V0 + 5,R3
MOV R6,?V0 + 4
MOV R7,?V0 + 5
// 160 if ( msg )
MOV A,R6
JNZ ??debug_str_0
MOV A,R7
??debug_str_0:
JZ ??debug_str_1
// 161 {
// 162 // Message type, length
// 163 msg->hdr.event = CMD_DEBUG_STR;
MOV A,#0x6
MOV DPL,R6
MOV DPH,R7
MOVX @DPTR,A
// 164 msg->sln = sln;
INC DPTR
INC DPTR
MOV A,?V0 + 3
MOVX @DPTR,A
// 165
// 166 // Append message, no terminator
// 167 msg->pString = (uint8 *)(msg+1);
MOV A,R6
ADD A,#0x3
INC R2
INC R2
INC R2
MOV A,R7
ADDC A,#0x0
MOV R3,A
MOV A,R6
ADD A,#0x5
MOV R0,A
MOV A,R7
ADDC A,#0x0
MOV R1,A
MOV DPL,R2
MOV DPH,R3
MOV A,R0
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
// 168 osal_memcpy ( msg->pString, str_ptr, sln );
; Setup parameters for call to function osal_memcpy
MOV ?V0 + 2,#0x0
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_THREE
CFI CFA_XSP16 add(XSP16, 17)
MOV R4,?V0 + 3
MOV R5,#0x0
MOV DPL,R2
MOV DPH,R3
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R3,A
MOV DPTR,#(osal_memcpy & 0xffff)
MOV A,#((osal_memcpy >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,#0x3
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 14)
// 169
// 170 osal_msg_send( MT_TaskID, (uint8 *)msg );
; Setup parameters for call to function osal_msg_send
MOV A,R6
MOV R2,A
MOV A,R7
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)
LCALL ?BCALL ; Banked call to: DPTR()
// 171 }
// 172 } // debug_str()
??debug_str_1:
MOV R7,#0x6
LJMP ?BANKED_LEAVE_XDATA
CFI EndBlock cfiBlock12
END
// 173
// 174 /*********************************************************************
// 175 *********************************************************************/
// 176 #endif // MT_TASK
//
// 349 bytes in segment BANKED_CODE
//
// 349 bytes of CODE memory
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -