|
任务切换函数如下,不明白的是为什么没有把PC指针压入堆栈呢,我看了直接调用和间接调用OSCtxSw的函数也没有做这样的一个事情。望大神解答:
OSCtxSw
push sr ; emulate interrupt by also saving the SR
PUSHALL ; push all registers
mov.w &OSTCBCur, R13 ; OSTCBCur->OSTCBStkPtr = SP
mov.w SP, 0(R13)
call #OSTaskSwHook
mov.b &OSPrioHighRdy, R13 ; OSPrioCur = OSPrioHighRdy
mov.b R13, &OSPrioCur ;
mov.w &OSTCBHighRdy, R13 ; OSTCBCur = OSTCBHighRdy
mov.w R13, &OSTCBCur ;
mov.w @R13, SP ; SP = OSTCBHighRdy->OSTCBStkPtr
POPALL ; pop all registers
reti ; return from interrup |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|