amfy 发表于 2023-11-25 22:38:52

几句简单赋值代码,不同IAR版本编译结果不一样,求助一下

很简单的几句赋值语句,使用IAR 8.50.6和9.20.1编译结果不同. 两个版本都是禁止编译优化的.

9.20.1的编译结果最离谱, 我输出了每个文件对应的汇编文件, 里面的内容感觉是对的, 但是下载到单片机之后的内容却是不一样的. 实际运行的内容直接就死机了.
技术有限,就是简单的赋值, 完全看不懂9.20.1的编译结果到底要干什么. 可能是哪里的问题呢?





emwin 发表于 2023-11-26 00:51:19

看汇编,两个编译器输出基本一样,请问你指的哪里有问题

amfy 发表于 2023-11-26 09:58:00

emwin 发表于 2023-11-26 00:51
看汇编,两个编译器输出基本一样,请问你指的哪里有问题

阴影部分的汇编代码, 上面一行是对应的C语言代码,下面是汇编的结果.

amfy 发表于 2023-11-26 15:14:20

下载选项中,没有勾选use flash loader选项. 导致下载的程序是错的,但是IDE不会明显的提示, 只有再次勾选了verify download之后, 才会弹窗提示错误.
出错的地方恰好是汇编代码看上去很离谱的地方. 看样子, IAR调试显示的汇编,应该是从MCU中回读的.
这就有点奇怪了, 如果不勾选这个flash loader选项, IAR是用的哪里的下载算法.

h_007 发表于 2023-11-26 15:46:17

都不能运行的话,就是代码写的有问题;P

qq1646544 发表于 2023-11-26 19:23:59

amfy 发表于 2023-11-26 15:14
下载选项中,没有勾选use flash loader选项. 导致下载的程序是错的,但是IDE不会明显的提示, 只有再次勾选了v ...

你的问题我也遇到了,有时候不勾下载的不对,有时候勾了下载的不对,莫名奇妙的!!!
页: [1]
查看完整版本: 几句简单赋值代码,不同IAR版本编译结果不一样,求助一下