打印
[STM32F1]

stm32 MDK环境不同编译方式造成的总线故障

[复制链接]
563|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
下图不优化的编译语句
执行语句*pbase++ = BKP->DR1 | (BKP->DR2<<16)时,进入硬件故障中断,
但是如果将语句写为*pbase = BKP->DR1 | (BKP->DR2<<16);pbase++;时,不进入硬件故障中断!
同样是上一个语句*pbase++ = BKP->DR1 | (BKP->DR2<<16)在选择了任意优化编译后
都不进入硬件故障中断,难道MDK演绎存在问题?

下图是无优化的两种语句的编译比较,到底是那条命令使程序进入了硬件中断?

沙发
fqingy2008|  楼主 | 2017-1-11 16:00 | 只看该作者
STM r0!,{r1}
这条指令到底怎么了,一执行就进入HardFault_Handler中断,请高手指教!

使用特权

评论回复
板凳
fqingy2008|  楼主 | 2017-1-12 20:31 | 只看该作者
大家都只看不答呀,到底是什么问题,编译器的专家都去那了

使用特权

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

本版积分规则

4

主题

13

帖子

0

粉丝