你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
查看全部评分
andeyqi 发表于 2018-7-9 17:22 不会切换到ARM模式,只支持Thumb模式,你可以改下reset函数的地址强制切到ARM模式,应该会出现hardfault ...
everkimage 发表于 2018-7-10 08:45 仿真器调试的时候,PC值LSB位值是0,应该是ARM模式吧?
andeyqi 发表于 2018-7-10 09:10 不是,PC的值LSB位是0是正常的PC是两字节对齐的,你可以看下跳转函数的地址,这个地址的LSB应该是1,PC跳 ...
everkimage 发表于 2018-7-10 09:32 刚看了下,LR里的LSB是1。 但是HardFault里判断MSP和PSP的代码是(LR&4)。不知道该怎么理解。 ...
andeyqi 发表于 2018-7-10 15:41 可能不知道你的应用场景,这个判断PSP还是MSP的方法我也没有理解,我理解的一般在逻辑程序下,一般使用的 ...
STM32隐藏
5.18活动板子会不会是STM32L4呢
STM32 CUBE软件中找不到STM32L4系列单片机
Your UAT Feedback is needed within today.
应用
AAA
测试测试12345
群
tiwen
BBBB
评分
查看全部评分
所以应该是Flash里的值LSB为1,取来后到PC时LSB被清零了。
不知道是不是?
评分
查看全部评分
仿真器调试的时候,PC值LSB位值是0,应该是ARM模式吧?
不是,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模式吧。
大神有没有什么资料我可以去看下?
刚看了下,LR里的LSB是1。
但是HardFault里判断MSP和PSP的代码是(LR&4)。不知道该怎么理解。
可能不知道你的应用场景,这个判断PSP还是MSP的方法我也没有理解,我理解的一般在逻辑程序下,一般使用的都是MSP,并没有使用PSP,PSP的使用一般是在有系统的情况下使用的,在任务调度的情况下将任务栈的地址赋给PSP,中断中使用的是MSP。以上只是个人的理解,理解的也不够深,呵呵~~
评分
查看全部评分
嗯,谢谢你。我准备看下ARM Cortex-M0相关资料作进一步了解。