首先感谢大家对上一个视频的点评回复,非常有意义的讨论,这次AC6的表现更新惊呆,不开优化都可以乱跳。

【实验目的】

同样的程序代码,目的是测试C环境的调试现象。

【实验版本】

IAR版本  :9.3x
MDK版本:5.3x, 含AC5和AC6
Embedded Studio:使用GCC,版本V7.1X

【视频展示】

https://www.bilibili.com/video/BV18h4y1v7yR

 

【测试说明】

测试了IAR,所有优化等级均正常:

系统测试AC5. AC6. IAR和GCC调试效果,MDK AC6不开优化调试乱跳,甚至倒序执行_微信公众号

 

Embedded Studio开最高速度优化Level3 for speed,测试正常:

系统测试AC5. AC6. IAR和GCC调试效果,MDK AC6不开优化调试乱跳,甚至倒序执行_程序代码_02

 

MDK AC5测试了O1和O3,调试均不正常,进入return还继续执行。

系统测试AC5. AC6. IAR和GCC调试效果,MDK AC6不开优化调试乱跳,甚至倒序执行_ide_03

 

MDK AC6不开优化,设置优先级为O0,调试乱跳,这有点说不过去了。这不能怪优化问题了吧,用的AC6.18。

系统测试AC5. AC6. IAR和GCC调试效果,MDK AC6不开优化调试乱跳,甚至倒序执行_程序代码_04

 

开成O1优化,甚至还可以倒序执行,动图效果:


系统测试AC5. AC6. IAR和GCC调试效果,MDK AC6不开优化调试乱跳,甚至倒序执行_ide_05

 


微信公众号:armfly_com