[应用相关] stm32 debug常见问题: <cannot evaluate>

[复制链接]
 楼主| tpgf 发表于 2024-3-25 17:10 | 显示全部楼层 |阅读模式
STM, ST, CAN, BUG, AN
我们才使用keil ide仿真功能时,想参看某个参数的实时变化,经常会遇到这样的一个问题:

9679566013f772d645.png

具体怎么解决呢?主要有以下三种方法:

1.将局部变量修改为全局变量
将局部变量修改为全局变量,再加入监视窗口,不要忘了把 periodic window update勾选上,这样监视器会实时更新参数变化。如果还不行,请继续下面的方法。

8951566013f6fdffd1.png

2.使用 volatile修饰全局变量
出现这个问题的原因可能是编译器把变量优化掉了,使用volatile关键字修饰变量,可以避免编译器把变量优化掉。

3.降低keil优化等级

8131666013f698a733.png

等级越低,优化越低,在debug的时候可以选择Level 0进行调试。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/CJY1052925538/article/details/136284703

chenqianqian 发表于 2024-3-25 21:22 来自手机 | 显示全部楼层
很少看这个变量监控窗口
朝生 发表于 2024-3-26 22:03 | 显示全部楼层
是的,这是打开实时监控数据的方法。
鹿鼎计 发表于 2024-3-26 22:26 | 显示全部楼层
局部变量也想看的话,需要设置static属性。
理想阳 发表于 2024-3-26 22:51 | 显示全部楼层
为啥优化会决定参数是否可以实时查看?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2350

主题

17506

帖子

21

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