void_c 发表于 2009-6-8 09:02:57

cortex-m3任务切换需要保护哪些寄存器?

cortex-m3任务切换需要保护哪些寄存器?

ffxz 发表于 2009-6-8 11:08:19

上官兄开始做CM3了啊

CM3上,PSR, PC, LR, R12, R3, R2, R1, R0会有硬件自动压栈做保护

其余的则需要自己做保护了。

void_c 发表于 2009-6-8 13:56:16

假设某个位置(可能在函数中,也可能在中断中),切换任务,xPSR需要保护码?

怎么保护xPSR和恢复xPSR??

bbandpp 发表于 2009-6-8 14:00:31

同问,在做uc OS的时候只参照人家移植好的,不知道具体原理,哪位大侠给说说。

ffxz 发表于 2009-6-8 17:16:04

PSR是硬件自动压栈的,要进行切换时,手动的触发一个pend sv,然后硬件就自动帮你做了。退出pend sv时,则相反,从栈里自动出来

所以PSR差不多变成最不需要关心的寄存器了

void_c 发表于 2009-6-11 18:26:12

不想用pend sv,
需要就地切换,需要保护哪些寄存器?

laoshuhunya 发表于 2009-10-10 10:04:04

为了保证最广泛的函数可重入,毫无疑问,全数保存。

ddcour 发表于 2009-10-21 19:41:20

中断是会自己压栈的,任务切换就不懂了,一看标题,还以为楼主在裸奔呢,呵呵。

ralfak 发表于 2009-10-22 23:25:08

楼主的这个问题应该结合编译器和datasheet具体问题具体分析,哈哈
页: [1]
查看完整版本: cortex-m3任务切换需要保护哪些寄存器?