📄 osal_timers.s51
字号:
// 235 // Stop when found or at the end
// 236 while ( srchTimer->next && srchTimer->next != rmTimer )
// 237 srchTimer = srchTimer->next;
??osalDeleteTimer_5:
MOV DPL,R0
MOV DPH,R1
LCALL ?Subroutine2 & 0xFFFF
??CrossCallReturnLabel_8:
MOV DPL,R0
MOV DPH,R1
MOVX A,@DPTR
JNZ ??osalDeleteTimer_6
INC DPTR
MOVX A,@DPTR
??osalDeleteTimer_6:
JZ ??osalDeleteTimer_7
LCALL ?Subroutine0 & 0xFFFF
??CrossCallReturnLabel_1:
MOV A,R2
XRL A,R4
JNZ ??osalDeleteTimer_8
MOV A,R3
XRL A,R5
??osalDeleteTimer_8:
JNZ ??osalDeleteTimer_5
// 238
// 239 // Found?
// 240 if ( srchTimer->next == rmTimer )
??osalDeleteTimer_7:
LCALL ?Subroutine0 & 0xFFFF
??CrossCallReturnLabel_2:
MOV A,R2
XRL A,R4
JNZ ??osalDeleteTimer_9
MOV A,R3
XRL A,R5
??osalDeleteTimer_9:
JNZ ??osalDeleteTimer_1
// 241 {
// 242 // Fix pointers
// 243 srchTimer->next = rmTimer->next;
MOV DPL,R2
MOV DPH,R3
LCALL ??Subroutine0_0 & 0xFFFF
??CrossCallReturnLabel_3:
MOV DPL,R0
MOV DPH,R1
MOV A,R4
MOVX @DPTR,A
INC DPTR
MOV A,R5
??osalDeleteTimer_4:
MOVX @DPTR,A
// 244
// 245 // Deallocate the timer struct memory
// 246 osal_mem_free( rmTimer );
; Setup parameters for call to function osal_mem_free
MOV DPTR,#(osal_mem_free & 0xffff)
MOV A,#((osal_mem_free >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 247 }
// 248 }
// 249 }
// 250 }
??osalDeleteTimer_1:
SJMP ??Subroutine4_0
CFI EndBlock cfiBlock4
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine2:
CFI Block cfiCond5 Using cfiCommon0
CFI NoFunction
CFI Conditional ??CrossCallReturnLabel_10
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, 17)
CFI Block cfiCond6 Using cfiCommon0
CFI (cfiCond6) NoFunction
CFI (cfiCond6) Conditional ??CrossCallReturnLabel_7
CFI (cfiCond6) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond6) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond6) V0 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, 9)
CFI Block cfiCond7 Using cfiCommon0
CFI (cfiCond7) NoFunction
CFI (cfiCond7) Conditional ??CrossCallReturnLabel_8
CFI (cfiCond7) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond7) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond7) V0 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, 9)
CFI Block cfiCond8 Using cfiCommon0
CFI (cfiCond8) NoFunction
CFI (cfiCond8) Conditional ??CrossCallReturnLabel_9
CFI (cfiCond8) R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI (cfiCond8) VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI (cfiCond8) V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond8) V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond8) V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond8) V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond8) V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond8) V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond8) V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond8) V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond8) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond8) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond8) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond8) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond8) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond8) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond8) CFA_SP SP+0
CFI (cfiCond8) CFA_XSP16 add(XSP16, 17)
CFI Block cfiCond9 Using cfiCommon0
CFI (cfiCond9) NoFunction
CFI (cfiCond9) Conditional ??CrossCallReturnLabel_6
CFI (cfiCond9) R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond9) VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond9) V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond9) V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond9) V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond9) V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond9) V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond9) V5 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, 14)
CFI Block cfiPicker10 Using cfiCommon1
CFI (cfiPicker10) NoFunction
CFI (cfiPicker10) Picker
MOVX A,@DPTR
MOV R0,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
RET
CFI EndBlock cfiCond5
CFI EndBlock cfiCond6
CFI EndBlock cfiCond7
CFI EndBlock cfiCond8
CFI EndBlock cfiCond9
CFI EndBlock cfiPicker10
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine0:
CFI Block cfiCond11 Using cfiCommon0
CFI NoFunction
CFI Conditional ??CrossCallReturnLabel_2
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V0 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, 9)
CFI Block cfiCond12 Using cfiCommon0
CFI (cfiCond12) NoFunction
CFI (cfiCond12) Conditional ??CrossCallReturnLabel_1
CFI (cfiCond12) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond12) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond12) V0 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)))
CFI (cfiCond12) CFA_SP SP+0
CFI (cfiCond12) CFA_XSP16 add(XSP16, 9)
CFI Block cfiPicker13 Using cfiCommon1
CFI (cfiPicker13) NoFunction
CFI (cfiPicker13) Picker
MOV DPL,R0
MOV DPH,R1
CFI Block cfiCond14 Using cfiCommon0
CFI (cfiCond14) NoFunction
CFI (cfiCond14) Conditional ??CrossCallReturnLabel_0
CFI (cfiCond14) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond14) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond14) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond14) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond14) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond14) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond14) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond14) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond14) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond14) CFA_SP SP+0
CFI (cfiCond14) CFA_XSP16 add(XSP16, 9)
CFI Block cfiCond15 Using cfiCommon0
CFI (cfiCond15) NoFunction
CFI (cfiCond15) Conditional ??CrossCallReturnLabel_3
CFI (cfiCond15) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond15) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond15) V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI (cfiCond15) R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI (cfiCond15) ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI (cfiCond15) ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI (cfiCond15) ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI (cfiCond15) DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI (cfiCond15) DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI (cfiCond15) CFA_SP SP+0
CFI (cfiCond15) CFA_XSP16 add(XSP16, 9)
??Subroutine0_0:
MOVX A,@DPTR
MOV R4,A
INC DPTR
MOVX A,@DPTR
MOV R5,A
RET
CFI EndBlock cfiCond11
CFI EndBlock cfiCond12
CFI EndBlock cfiPicker13
CFI EndBlock cfiCond14
CFI EndBlock cfiCond15
// 251
// 252 /*********************************************************************
// 253 * @fn osal_start_timer
// 254 *
// 255 * @brief
// 256 *
// 257 * This function is called to start a timer to expire in n mSecs.
// 258 * When the timer expires, the calling task will get the specified event.
// 259 *
// 260 * @param UINT16 event_id - event to be notified with
// 261 * @param UNINT16 timeout_value - in milliseconds.
// 262 *
// 263 * @return ZSUCCESS, NO_TIMER_AVAIL, INVALID_EVENT_ID or INVALID_TIMEOUT_VALUE
// 264 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 265 byte osal_start_timer( UINT16 event_id, UINT16 timeout_value )
osal_start_timer:
CFI Block cfiBlock16 Using cfiCommon0
CFI Function osal_start_timer
// 266 {
FUNCALL osal_start_timer, osal_self
LOCFRAME ISTACK, 2, STACK
LOCFRAME XSTACK, 9, STACK
ARGFRAME ISTACK, 2, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL osal_start_timer, osal_start_timerEx
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
// 267 return osal_start_timerEx( osal_self(), event_id, timeout_value );
; Setup parameters for call to function osal_start_timerEx
MOV A,R2
PUSH A
CFI CFA_SP SP+-1
MOV A,R3
PUSH A
CFI CFA_SP SP+-2
MOV A,R4
MOV R6,A
MOV A,R5
MOV R7,A
; Setup parameters for call to function osal_self
MOV DPTR,#(osal_self & 0xffff)
MOV A,#((osal_self >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,R6
MOV R4,A
MOV A,R7
MOV R5,A
POP A
CFI CFA_SP SP+-1
MOV R3,A
POP A
CFI CFA_SP SP+0
MOV R2,A
MOV DPTR,#(osal_start_timerEx & 0xffff)
MOV A,#((osal_start_timerEx >> 16) & 0xff)
LJMP ?Subroutine4 & 0xFFFF
CFI EndBlock cfiBlock16
// 268 }
// 269
// 270 /*********************************************************************
// 271 * @fn osal_start_timerEx
// 272 *
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -