关于 CORTEX M 在 ucos 上的问题

2019-03-23 20:30发布

  我尝试把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 的移植代码里面没有相关操作啊。   不解。。。请教各位大侠。谢谢。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。