keil5 仿真调试STM32单片机程序遇到64位局部变量的值无法查...

[复制链接]
2227|5
 楼主| yesiqiu 发表于 2020-12-19 09:08 | 显示全部楼层 |阅读模式

keil5 仿真调试STM32单片机程序遇到64位局部变量的值无法查看的问题


最近调试一个STM32单片机的程序的时候,用到了32位的变量相乘,所以将要相乘的变量和保存结果的变量都定义成了64位的局部变量。
但是在仿真的时候想看运算的时候这些局部变量的值,结果发现这些局部变量在watch 窗口和  stack窗口看到的都是是错误的值,程序的优化等级已经调成了0。
当把这些变量从局部变量改为全局变量的时候,这些值就正常了。请教一下这是什么问题?


然后我把不能查看的局部变量赋值给一个全局变量,去看全局变量的值,全局变量的值就是正确的。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| yesiqiu 发表于 2020-12-19 09:15 | 显示全部楼层
这是代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
一叶倾城wwq 发表于 2020-12-19 10:41 | 显示全部楼层
用串口打印看看呗,我很少去debug,可能是我比较low吧
 楼主| yesiqiu 发表于 2020-12-21 09:52 | 显示全部楼层
一叶倾城wwq 发表于 2020-12-19 10:41
用串口打印看看呗,我很少去debug,可能是我比较low吧

谢谢,串口打印也是一种办法
ayb_ice 发表于 2020-12-21 10:27 | 显示全部楼层
优化级别0不等于没有优化,只表示最低级优化,用静态变量,或全局变量
 楼主| yesiqiu 发表于 2021-1-7 09:53 | 显示全部楼层
ayb_ice 发表于 2020-12-21 10:27
优化级别0不等于没有优化,只表示最低级优化,用静态变量,或全局变量

好的,谢谢,学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

56

帖子

3

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