📄 os_cpu_c.src
字号:
?C0016:
DEC A
MOV DPL,A
MOV DPH,R6
CLR A
MOVX @DPTR,A
; *stk++ = 0x00; /* R0 */
; SOURCE LINE # 87
MOV R0,?C_IBP
INC R0
INC @R0
MOV A,@R0
DEC R0
MOV AR6,@R0
JNZ ?C0017
INC @R0
?C0017:
DEC A
MOV DPL,A
MOV DPH,R6
CLR A
MOVX @DPTR,A
; *stk++ = 0x01; /* R1 */
; SOURCE LINE # 88
MOV R0,?C_IBP
INC R0
INC @R0
MOV A,@R0
DEC R0
MOV AR6,@R0
JNZ ?C0018
INC @R0
?C0018:
DEC A
MOV DPL,A
MOV DPH,R6
MOV A,#01H
MOVX @DPTR,A
; *stk++ = 0x02; /* R2 */
; SOURCE LINE # 89
MOV R0,?C_IBP
INC R0
INC @R0
MOV A,@R0
DEC R0
MOV AR6,@R0
JNZ ?C0019
INC @R0
?C0019:
DEC A
MOV DPL,A
MOV DPH,R6
MOV A,#02H
MOVX @DPTR,A
; *stk++ = 0x03; /* R3 */
; SOURCE LINE # 90
MOV R0,?C_IBP
INC R0
INC @R0
MOV A,@R0
DEC R0
MOV AR6,@R0
JNZ ?C0020
INC @R0
?C0020:
DEC A
MOV DPL,A
MOV DPH,R6
MOV A,#03H
MOVX @DPTR,A
; *stk++ = 0x04; /* R4 */
; SOURCE LINE # 91
MOV R0,?C_IBP
INC R0
INC @R0
MOV A,@R0
DEC R0
MOV AR6,@R0
JNZ ?C0021
INC @R0
?C0021:
DEC A
MOV DPL,A
MOV DPH,R6
MOV A,#04H
MOVX @DPTR,A
; *stk++ = 0x05; /* R5 */
; SOURCE LINE # 92
MOV R0,?C_IBP
INC R0
INC @R0
MOV A,@R0
DEC R0
MOV AR6,@R0
JNZ ?C0022
INC @R0
?C0022:
DEC A
MOV DPL,A
MOV DPH,R6
MOV A,#05H
MOVX @DPTR,A
; *stk++ = 0x06; /* R6 */
; SOURCE LINE # 93
MOV R0,?C_IBP
INC R0
INC @R0
MOV A,@R0
DEC R0
MOV AR6,@R0
JNZ ?C0023
INC @R0
?C0023:
DEC A
MOV DPL,A
MOV DPH,R6
MOV A,#06H
MOVX @DPTR,A
; *stk++ = 0x07; /* R7 */
; SOURCE LINE # 94
MOV R0,?C_IBP
INC R0
INC @R0
MOV A,@R0
DEC R0
MOV AR6,@R0
JNZ ?C0024
INC @R0
?C0024:
DEC A
MOV DPL,A
MOV DPH,R6
MOV A,#07H
MOVX @DPTR,A
;
; return ((void DT_XDATA *)ptos); /* note return ptos, not stk */
; SOURCE LINE # 96
MOV R7,AR5
MOV R6,AR4
; }
; SOURCE LINE # 97
?C0001:
MOV A,?C_IBP
ADD A,#0AH
MOV ?C_IBP,A
RET
; END OF _?OSTaskStkInit
CSEG AT 0000BH
LJMP OSTickISR
;
; /*
; *********************************************************************************************************
; * OS Time ISR
; *
; * Description: use T0.
; *
; * Arguments :
; *
; * Note(s) : in default, OSTickISR using register bank 0. Register pushing code will added by keilC.
; *********************************************************************************************************
; */
; void OSTickISR() interrupt 1
RSEG ?PR?OSTickISR?OS_CPU_C
USING 0
OSTickISR:
PUSH ACC
PUSH B
PUSH DPH
PUSH DPL
PUSH PSW
MOV PSW,#00H
PUSH AR0
PUSH AR1
PUSH AR2
PUSH AR3
PUSH AR4
PUSH AR5
PUSH AR6
PUSH AR7
USING 0
; SOURCE LINE # 110
; {
; TL0 = TIMER_24M_25MS_L;
; SOURCE LINE # 112
MOV TL0,#0AAH
; TH0 = TIMER_24M_25MS_H;
; SOURCE LINE # 113
MOV TH0,#03CH
;
; OSIntEnter();
; SOURCE LINE # 115
LCALL _?OSIntEnter
; OSTimeTick();
; SOURCE LINE # 116
LCALL _?OSTimeTick
; OSIntExit();
; SOURCE LINE # 117
LCALL _?OSIntExit
; }
; SOURCE LINE # 118
POP AR7
POP AR6
POP AR5
POP AR4
POP AR3
POP AR2
POP AR1
POP AR0
POP PSW
POP DPL
POP DPH
POP B
POP ACC
RETI
; END OF OSTickISR
;
;
; /*$PAGE*/
; #if OS_CPU_HOOKS_EN
; /*
; *********************************************************************************************************
; * TASK CREATION HOOK
; *
; * Description: This function is called when a task is created.
; *
; * Arguments : ptcb is a pointer to the task control block of the task being created.
; *
; * Note(s) : 1) Interrupts are disabled during this call.
; *********************************************************************************************************
; */
; void OSTaskCreateHook (OS_TCB DT_XDATA *ptcb) REENTRANT
RSEG ?PR?_?OSTaskCreateHook?OS_CPU_C
_?OSTaskCreateHook:
USING 0
; SOURCE LINE # 134
DEC ?C_IBP
DEC ?C_IBP
MOV R0,?C_IBP
MOV @R0,AR6
INC R0
MOV @R0,AR7
; {
; ptcb = ptcb; /* Prevent compiler warning */
; SOURCE LINE # 136
MOV R0,?C_IBP
MOV A,@R0
MOV R6,A
INC R0
MOV A,@R0
MOV R7,A
MOV R0,?C_IBP
MOV @R0,AR6
INC R0
MOV @R0,AR7
; }
; SOURCE LINE # 137
INC ?C_IBP
INC ?C_IBP
RET
; END OF _?OSTaskCreateHook
;
;
; /*
; *********************************************************************************************************
; * TASK DELETION HOOK
; *
; * Description: This function is called when a task is deleted.
; *
; * Arguments : ptcb is a pointer to the task control block of the task being deleted.
; *
; * Note(s) : 1) Interrupts are disabled during this call.
; *********************************************************************************************************
; */
; void OSTaskDelHook (OS_TCB DT_XDATA *ptcb) REENTRANT
RSEG ?PR?_?OSTaskDelHook?OS_CPU_C
_?OSTaskDelHook:
USING 0
; SOURCE LINE # 151
DEC ?C_IBP
DEC ?C_IBP
MOV R0,?C_IBP
MOV @R0,AR6
INC R0
MOV @R0,AR7
; {
; ptcb = ptcb; /* Prevent compiler warning */
; SOURCE LINE # 153
MOV R0,?C_IBP
MOV A,@R0
MOV R6,A
INC R0
MOV A,@R0
MOV R7,A
MOV R0,?C_IBP
MOV @R0,AR6
INC R0
MOV @R0,AR7
; }
; SOURCE LINE # 154
INC ?C_IBP
INC ?C_IBP
RET
; END OF _?OSTaskDelHook
;
; /*
; *********************************************************************************************************
; * TASK SWITCH HOOK
; *
; * Description: This function is called when a task switch is performed. This allows you to perform other
; * operations during a context switch.
; *
; * Arguments : none
; *
; * Note(s) : 1) Interrupts are disabled during this call.
; * 2) It is assumed that the global pointer 'OSTCBHighRdy' points to the TCB of the task that
; * will be 'switched in' (i.e. the highest priority task) and, 'OSTCBCur' points to the
; * task being switched out (i.e. the preempted task).
; *********************************************************************************************************
; */
; void OSTaskSwHook (void) REENTRANT
RSEG ?PR?_?OSTaskSwHook?OS_CPU_C
_?OSTaskSwHook:
; SOURCE LINE # 171
; {
; }
; SOURCE LINE # 173
RET
; END OF _?OSTaskSwHook
;
; /*
; *********************************************************************************************************
; * STATISTIC TASK HOOK
; *
; * Description: This function is called every second by uC/OS-II's statistics task. This allows your
; * application to add functionality to the statistics task.
; *
; * Arguments : none
; *********************************************************************************************************
; */
; void OSTaskStatHook (void) REENTRANT
RSEG ?PR?_?OSTaskStatHook?OS_CPU_C
_?OSTaskStatHook:
; SOURCE LINE # 185
; {
; }
; SOURCE LINE # 187
RET
; END OF _?OSTaskStatHook
;
; /*
; *********************************************************************************************************
; * TICK HOOK
; *
; * Description: This function is called every tick.
; *
; * Arguments : none
; *
; * Note(s) : 1) Interrupts may or may not be ENABLED during this call.
; *********************************************************************************************************
; */
; void OSTimeTickHook (void) REENTRANT
RSEG ?PR?_?OSTimeTickHook?OS_CPU_C
_?OSTimeTickHook:
; SOURCE LINE # 200
; {
; }
; SOURCE LINE # 202
RET
; END OF _?OSTimeTickHook
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -