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

[复制链接]
 楼主| 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

本帖子中包含更多资源

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

×
地瓜patch 发表于 2021-10-10 22:50 来自手机 | 显示全部楼层
keil路过
 楼主| batiafu 发表于 2021-10-12 16:23 | 显示全部楼层
用IAR的不多啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

245

帖子

4

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

24

主题

245

帖子

4

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