关于 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 的移植代码里面没有相关操作啊。   不解。。。请教各位大侠。谢谢。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
sringosling
1楼-- · 2019-03-24 02:41
 精彩回答 2  元偷偷看……
fxw451
2楼-- · 2019-03-24 06:03
我帮你顶!!防止沉底!
sringosling
3楼-- · 2019-03-24 10:45
原来 M3 是通过这样确保中断返回后使用 PSP 的:

ORR LR,LR,#0x04

不知道 M0 是不是只能写CONTROL了?
daicheng
4楼-- · 2019-03-24 13:34
 精彩回答 2  元偷偷看……

一周热门 更多>