osal_timers.s51
来自「TI的基于ZIGBEE2006的协议栈」· S51 代码 · 共 1,600 行 · 第 1/5 页
S51
1,600 行
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
// 219 osalTimerRec_t *srchTimer;
// 220
// 221 // Does the timer list really exist
// 222 if ( (timerHead != NULL) && rmTimer )
MOV DPTR,#timerHead
MOVX A,@DPTR
JNZ ??osalDeleteTimer_0
INC DPTR
MOVX A,@DPTR
??osalDeleteTimer_0:
JZ ??osalDeleteTimer_1
MOV A,R2
JNZ ??osalDeleteTimer_2
MOV A,R3
??osalDeleteTimer_2:
JZ ??osalDeleteTimer_1
// 223 {
// 224 // Add it to the end of the timer list
// 225 srchTimer = timerHead;
MOV DPTR,#timerHead
LCALL ?Subroutine2 & 0xFFFF
// 226
// 227 // First element?
// 228 if ( srchTimer == rmTimer )
??CrossCallReturnLabel_7:
MOV A,R2
XRL A,R0
JNZ ??osalDeleteTimer_3
MOV A,R3
XRL A,R1
??osalDeleteTimer_3:
JNZ ??CrossCallReturnLabel_8
// 229 {
// 230 timerHead = rmTimer->next;
MOV DPL,R2
MOV DPH,R3
LCALL ?Subroutine1 & 0xFFFF
??CrossCallReturnLabel_4:
MOV A,R0
MOVX @DPTR,A
INC DPTR
MOV A,R1
SJMP ??osalDeleteTimer_4
// 231 osal_mem_free( rmTimer );
// 232 }
// 233 else
// 234 {
// 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_9
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, 17)
CFI Block cfiCond7 Using cfiCommon0
CFI (cfiCond7) NoFunction
CFI (cfiCond7) Conditional ??CrossCallReturnLabel_6
CFI (cfiCond7) R6 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI (cfiCond7) VB load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI (cfiCond7) V0 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI (cfiCond7) V1 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI (cfiCond7) V2 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI (cfiCond7) V3 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond7) V4 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond7) V5 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, 14)
CFI Block cfiCond8 Using cfiCommon0
CFI (cfiCond8) NoFunction
CFI (cfiCond8) Conditional ??CrossCallReturnLabel_8
CFI (cfiCond8) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond8) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond8) V0 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, 9)
CFI Block cfiCond9 Using cfiCommon0
CFI (cfiCond9) NoFunction
CFI (cfiCond9) Conditional ??CrossCallReturnLabel_7
CFI (cfiCond9) R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI (cfiCond9) VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI (cfiCond9) V0 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, 9)
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_1
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_2
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
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?