你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F0运行在什么模式下?

[复制链接]
everkimage 提问时间:2018-7-6 09:06 /
查看编译出来的二进制文件,第一个双字是栈地址,第二个双字最低位值为1,说明程序运行后CPU处在Thumb模式。
我的问题是后面会不会切换到ARM模式?切换的话堆栈是怎么切换的(MSP/PSP)?
收藏 评论9 发布时间:2018-7-6 09:06

举报

9个回答
斜阳__ 回答时间:2018-7-6 12:29:10
stm32没有arm模式

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

everkimage 回答时间:2018-7-6 17:31:54
调试的时候,还没有运行时(不是停在main函数)PC值LSB是0。
所以应该是Flash里的值LSB为1,取来后到PC时LSB被清零了。
不知道是不是?
andeyqi 回答时间:2018-7-9 17:22:40
不会切换到ARM模式,只支持Thumb模式,你可以改下reset函数的地址强制切到ARM模式,应该会出现hardfault

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

everkimage 回答时间:2018-7-10 08:45:38
andeyqi 发表于 2018-7-9 17:22
不会切换到ARM模式,只支持Thumb模式,你可以改下reset函数的地址强制切到ARM模式,应该会出现hardfault ...

仿真器调试的时候,PC值LSB位值是0,应该是ARM模式吧?
andeyqi 回答时间:2018-7-10 09:10:21
本帖最后由 andeyqi 于 2018-7-10 09:16 编辑
everkimage 发表于 2018-7-10 08:45
仿真器调试的时候,PC值LSB位值是0,应该是ARM模式吧?

不是,PC的值LSB位是0是正常的PC是两字节对齐的,你可以看下跳转函数的地址,这个地址的LSB应该是1,PC跳转的时候回把这个1屏蔽掉。也就是说函数的地址LSB是还是0,只是跳转的时候THUMB模式会吧对应地址的LSB置1来区分是thumb还是arm模式。
everkimage 回答时间:2018-7-10 09:23:44
andeyqi 发表于 2018-7-10 09:10
不是,PC的值LSB位是0是正常的PC是两字节对齐的,你可以看下跳转函数的地址,这个地址的LSB应该是1,PC跳 ...

我记得区分ARM还是Thumb就是依靠PC的LSB,0是ARM模式,1是Thumb。而且设置堆栈设置的就是MSP,而不是PSP,应该是ARM模式吧。
大神有没有什么资料我可以去看下?
everkimage 回答时间:2018-7-10 09:32:48
andeyqi 发表于 2018-7-10 09:10
不是,PC的值LSB位是0是正常的PC是两字节对齐的,你可以看下跳转函数的地址,这个地址的LSB应该是1,PC跳 ...

刚看了下,LR里的LSB是1。
但是HardFault里判断MSP和PSP的代码是(LR&4)。不知道该怎么理解。
andeyqi 回答时间:2018-7-10 15:41:05
everkimage 发表于 2018-7-10 09:32
刚看了下,LR里的LSB是1。
但是HardFault里判断MSP和PSP的代码是(LR&4)。不知道该怎么理解。 ...

可能不知道你的应用场景,这个判断PSP还是MSP的方法我也没有理解,我理解的一般在逻辑程序下,一般使用的都是MSP,并没有使用PSP,PSP的使用一般是在有系统的情况下使用的,在任务调度的情况下将任务栈的地址赋给PSP,中断中使用的是MSP。以上只是个人的理解,理解的也不够深,呵呵~~

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

everkimage 回答时间:2018-7-11 09:06:34
andeyqi 发表于 2018-7-10 15:41
可能不知道你的应用场景,这个判断PSP还是MSP的方法我也没有理解,我理解的一般在逻辑程序下,一般使用的 ...

嗯,谢谢你。我准备看下ARM Cortex-M0相关资料作进一步了解。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版