本帖最后由 zmw809154465 于 2013-11-30 13:38 编辑
在任务切换时,保存当前任务CPU中的状态值到任务的堆栈中,这里保存了SR状态寄存器,和R4~R15,也保存了SP到 0(R13)的指针地址中,但是为什么没有保存CP(R0)?在另一个高优先级的任务获得CPU使用权,通过reti 来恢复CP值,这个恢复CP指针可以理解,为什么上一个任务没有推入CP到堆栈?
这任务堆栈中保存了函数的指针,也就是函数的CP值吧,在初始化中是保存了,但是任务切换时怎么没有?难道在任务切换时,硬件自动保存R0~R3了?请问高手在哪里?
|