打印
[应用相关]

ST没法对某些变量进行计算和监控或无法设置断点原因

[复制链接]
57|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AdaMaYun|  楼主 | 2023-12-31 20:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个原因较多,具体到调试环境,很可能跟你编译环境的优化等级配置有关。
我们在MCU调试过程中,往往会用到编译器的优化功能来提升芯片的性能和精简代码空间。不过,经过代码优化,往往可能给我们调试带来些影响,主要体现在下面几个方面:
a、设置断点方面出现障碍,有些代码行没法做断点的设置;
b、无法对某些变量进行观察:
c、单步调试时出现代码运行“不连续”的情形,即执行到的地方和我看到的地方不一致;
因此,为了实现有效调试,我们在通过编译器做优化时要选择合适的优化等级。基本原则是不影响调试体验的前提下保障编译效率。一般来讲,在调试时建议将优化等级设置在较低水平。比方KEIL MDK 推荐调试时将优化等级设置在-01,IAR 推荐调试时将优化等级设置在-None,GCC推荐调试是将优化等级设置在-0g.其实,编译器的优化等级设置越高,对代码的规范性要求以及我们对编译器的了解程度也越高。经常有人代码优化前程序运行得好好的,代码优化等级调高好程序功能变得面目全非了。

使用特权

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

本版积分规则

177

主题

1274

帖子

3

粉丝