请问STM32F0运行在什么模式下?后面会不会切换到ARM模式?

2019-07-18 17:20发布

查看编译出来的二进制文件,第一个双字是栈地址,第二个双字最低位值为1,说明程序运行后CPU处在Thumb模式。
我的问题是后面会不会切换到ARM模式?切换的话堆栈是怎么切换的(MSP/PSP)?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
dang28
2019-07-19 08:36
毛毛lallala 发表于 2019-6-17 11:10
本帖最后由 andeyqi 于 2018-7-10 09:16 编辑

不是,PC的值LSB位是0是正常的PC是两字节对齐的,你可以看下跳转函数的地址,这个地址的LSB应该是1,PC跳转的时候回把这个1屏蔽掉。也就是说函数的地址LSB是还是0,只是跳转的时候THUMB模式会吧对应地址的LSB置1来区分是thumb还是arm模式。 ...

我记得区分ARM还是Thumb就是依靠PC的LSB,0是ARM模式,1是Thumb。而且设置堆栈设置的就是MSP,而不是PSP,应该是ARM模式吧。
大神有没有什么资料我可以去看下?

一周热门 更多>