在uc / os-III中进行上下文切换时核心寄存器布局错误

时间:2019-02-12 07:08:13

标签: arm embedded context-switch cortex-a8

uC / OS-III说:

  

调用OSTaskCreate()时,uC / OS-III会初始化   任务的堆栈,在同一堆栈中具有CPU寄存器的副本   好像它们都是在   一个ISR。

这是arm完整的ARM寄存器集。

仅供参考:我使用的是基于v7架构的cortex-a8,但我相信v7内核的寄存器布局与下图相同 Complete ARM register set 这是执行OSTaskCreate语句之前的调试信息: enter image description here 这是执行OSTaskCreate语句后的调试信息: enter image description here 显然,堆栈保存的这些值与内核寄存器完全不同。

怎么可能?

1 个答案:

答案 0 :(得分:1)

这可能是您需要的参考,context switching,指示先保存SR / PC,然后再保存其他寄存器r0-r13。有关确定的答案,请参阅os_cpu_a.asm中的来源。