打印

疑惑!!!关于 Cortex-M3 的二个SP

[复制链接]
1962|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wxzhouqing|  楼主 | 2010-10-30 23:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看<<Cortex-M3指南>> 后,知道Cortex-M3 有二个 堆栈。如何判断STN32 使用的堆栈是MSP 还是 PSP, 在 keil 仿真看 SP中不论是在中断程序还是主程序中都是同一段堆栈啊!!
沙发
john_lee| | 2010-10-31 17:23 | 只看该作者
cortex m3 有个CONTROL寄存器,其中的bit1(mask 0x2)表示了当前线程使用的SP,0=MSP,1=PSP。
CONTROL寄存器可以通过MRS和MSR指令访问。

使用特权

评论回复
板凳
airwill| | 2010-11-1 15:40 | 只看该作者
是的, 那是因为你没有进入用户模式, 要在主程序里设置 CONTROL寄存器的bit1,(因为中断强制用 MSP)
双 SP 还是有优势的, 只是 KEIL 没有简单的直接支持. 真要用的话, 还得手工分配堆栈空间.

使用特权

评论回复
地板
ld2082| | 2010-11-7 10:50 | 只看该作者
双堆栈的使用要看具体情况了,手册上很清楚哦!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

18

帖子

1

粉丝