关于 CORTEX M 在 ucos 上的问题
[复制链接]
我尝试把ucos2移植到 cortex m0上,参考了 ucos over cortex m3 的代码。
有这样一个不明白的地方:从main函数开始,系统默认是使用 MSP 做堆栈使用的,也就是说 process模式和 中断模式都是用 MSP。
现在需要改成 process下 使用 PSP,那么就要往 control 寄存器 相应的 bit 1 位 写 1,启用 PSP 作为线程堆栈。
那么该在什么时候做这个动作呢?
是不是只需要操作一次往control的 bit 1 写 1,就OK了?以后每次中断,系统自动保存control的值,然后切换成使用 MSP,退出中断的时候,恢复control的值?
应该是在汇编里面 mrs control, r0 来修改吧?而不会是在C里?如果是在汇编里,那么该在什么地方做这个操作呢?
是 在 OSStartHighRdy 里面么?但是我看 m3 的移植代码里面没有相关操作啊。
不解。。。请教各位大侠。谢谢。
|