cortex-m3任务切换需要保护哪些寄存器?
cortex-m3任务切换需要保护哪些寄存器? 上官兄开始做CM3了啊CM3上,PSR, PC, LR, R12, R3, R2, R1, R0会有硬件自动压栈做保护
其余的则需要自己做保护了。 假设某个位置(可能在函数中,也可能在中断中),切换任务,xPSR需要保护码?
怎么保护xPSR和恢复xPSR?? 同问,在做uc OS的时候只参照人家移植好的,不知道具体原理,哪位大侠给说说。 PSR是硬件自动压栈的,要进行切换时,手动的触发一个pend sv,然后硬件就自动帮你做了。退出pend sv时,则相反,从栈里自动出来
所以PSR差不多变成最不需要关心的寄存器了 不想用pend sv,
需要就地切换,需要保护哪些寄存器? 为了保证最广泛的函数可重入,毫无疑问,全数保存。 中断是会自己压栈的,任务切换就不懂了,一看标题,还以为楼主在裸奔呢,呵呵。 楼主的这个问题应该结合编译器和datasheet具体问题具体分析,哈哈
页:
[1]