打印

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

[复制链接]
1277|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yesiqiu|  楼主 | 2020-12-19 09:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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


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


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


使用特权

评论回复

相关帖子

沙发
yesiqiu|  楼主 | 2020-12-19 09:15 | 只看该作者
这是代码

New Static Current Moudle.rar

5.32 MB

使用特权

评论回复
板凳
一叶倾城wwq| | 2020-12-19 10:41 | 只看该作者
用串口打印看看呗,我很少去debug,可能是我比较low吧

使用特权

评论回复
地板
yesiqiu|  楼主 | 2020-12-21 09:52 | 只看该作者
一叶倾城wwq 发表于 2020-12-19 10:41
用串口打印看看呗,我很少去debug,可能是我比较low吧

谢谢,串口打印也是一种办法

使用特权

评论回复
5
ayb_ice| | 2020-12-21 10:27 | 只看该作者
优化级别0不等于没有优化,只表示最低级优化,用静态变量,或全局变量

使用特权

评论回复
6
yesiqiu|  楼主 | 2021-1-7 09:53 | 只看该作者
ayb_ice 发表于 2020-12-21 10:27
优化级别0不等于没有优化,只表示最低级优化,用静态变量,或全局变量

好的,谢谢,学习了

使用特权

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

本版积分规则

11

主题

56

帖子

3

粉丝