📄 os_cpu_a.s43
字号:
;//=================================================
;//:os_cpu_a.s43
;// ----
;//--MSP430移植
;//--2007/09 by zhaoert
;//==================================================
PUBLIC OSCtxSw
PUBLIC OSStartRdy
EXTERN OSPrioCur
EXTERN OSPrioHighRdy
EXTERN OSTaskStkPtr
;//----------------------------------------------------------------------
;//-----------------------OSCtxSw( ),OSStartRdy()------------------------
;
ORG 0E000h
OSCtxSw:
;PUSHRS ; Save current task's context
;//PUSH R3
PUSH R4
PUSH R5
PUSH R6
PUSH R7
PUSH R8
PUSH R9
PUSH R10
PUSH R11
PUSH R12
PUSH R13
PUSH R14
PUSH R15
PUSH SR
;save TaskStackPtr to OSTaskStkPtr[OSPrioCur]
MOV #OSTaskStkPtr, R7
MOV.B OSPrioCur, R8
ADD R8, R7
ADD R8, R7
;MOV SP, @R7
PUSH SP
POP 0(R7)
ADD #2, 0(R7)
OSStartRdy:
;OSPrioCur<=OSPrioHighRdy
MOV.B OSPrioHighRdy, R7
MOV.B R7, OSPrioCur
;get TaskStackPtr from OSTaskStkPtr[OSPrioCur]
MOV #OSTaskStkPtr, R7
MOV.B OSPrioCur, R8
ADD R8, R7
ADD R8, R7
MOV @R7, SP
;POPRS
POP SR
POP R15
POP R14
POP R13
POP R12
POP R11
POP R10
POP R9
POP R8
POP R7
POP R6
POP R5
POP R4
;//POP R3
EINT
RET
;------------------------------------------------------
END
;//:~
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -