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

[复制链接]
653|2
 楼主| fqingy2008 发表于 2017-1-11 15:54 | 显示全部楼层 |阅读模式
下图不优化的编译语句 未优化.png
执行语句*pbase++ = BKP->DR1 | (BKP->DR2<<16)时,进入硬件故障中断,
但是如果将语句写为*pbase = BKP->DR1 | (BKP->DR2<<16);pbase++;时,不进入硬件故障中断!
同样是上一个语句*pbase++ = BKP->DR1 | (BKP->DR2<<16)在选择了任意优化编译后
都不进入硬件故障中断,难道MDK演绎存在问题?
已优化.png
下图是无优化的两种语句的编译比较,到底是那条命令使程序进入了硬件中断?
无优化.png
 楼主| fqingy2008 发表于 2017-1-11 16:00 | 显示全部楼层
STM r0!,{r1}
这条指令到底怎么了,一执行就进入HardFault_Handler中断,请高手指教!
 楼主| fqingy2008 发表于 2017-1-12 20:31 | 显示全部楼层
大家都只看不答呀,到底是什么问题,编译器的专家都去那了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

13

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部