打印
[技术讨论]

IAR 8.4 调试STM32,仿真窗口临时变量分配的寄存器和反汇编....

[复制链接]
2837|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
batiafu|  楼主 | 2021-10-9 20:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 batiafu 于 2021-10-9 20:22 编辑

用IAR 8.4 调试STM32单片机程序。 仿真时,设置断点后,用watch窗口观察一个函数临时变量i,watch窗口显示使用的是R8工作寄存器。 窗口中的i值为0xCC,与hdma_usart2_rx.Instance->CNDTR值(应该为0x092D)不符。如图1.
而在反汇编窗口,该语句的变量i使用的是R6工作寄存器。打开Register窗口观察R6数值,为0x092D。与程序运行情况一致。
这是什么原因呢?反汇编和仿真窗口用的变量不一致? 前几天也发现一处类似情况。
(IAR没有开启优化)

使用特权

评论回复

相关帖子

沙发
batiafu|  楼主 | 2021-10-9 20:21 | 只看该作者
121212

1.jpg (297.02 KB )

1.jpg

2.png (428.71 KB )

2.png

使用特权

评论回复
板凳
地瓜patch| | 2021-10-10 22:50 | 只看该作者
keil路过

使用特权

评论回复
地板
batiafu|  楼主 | 2021-10-12 16:23 | 只看该作者
用IAR的不多啊。

使用特权

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

本版积分规则

24

主题

244

帖子

4

粉丝