搜索
bottom↓
回复: 5

IAR汇编的离谱错误, 会是和谐版的坑吗?

[复制链接]

出500入203汤圆

发表于 2023-11-25 23:29:46 | 显示全部楼层 |阅读模式
使用IAR8.50.6  9.20.1  9.40.1三个版本编译同一段代码, 就是简单的赋值语句,结果8.50.6结果是正确的, 两个高版本直接把第一个赋值语句编译成了矩阵运算汇编,后面几个赋值语句正确.
几个版本的优化选项全部都是none, 后来为了验证代码编写问题,就使用的更简单的方法验证汇编结果
IAR9.40.1 在代码中插入了几个NOP,  好家伙,每个插入的nop都被编译成了不同的语句, 看上去很高级的汇编指令, 上网都不好搜的那种
奇怪的是,每个代码文件独立生成的汇编文件中,编译的结果是对的, 下载到单片机中最终的汇编代码却是错的. 低版本好像就没这个问题. 新版本BUG?感觉不可能呀, 和谐不完整的坑?但是编译却没有授权的报错?
大佬给看看吧


本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出500入203汤圆

 楼主| 发表于 2023-11-25 23:30:55 | 显示全部楼层
调试运行窗口的汇编代码, NOP的数量都不对, 比源代码文件少了一个

出715入1076汤圆

发表于 2023-11-26 08:10:47 来自手机 | 显示全部楼层
差不多十年前用 iar 搞 cc2540 的时候就查出来一个 if 判断的对应的汇编有错误,当时同样怀疑是盗版导致

出500入203汤圆

 楼主| 发表于 2023-11-26 10:03:05 | 显示全部楼层
dukelec 发表于 2023-11-26 08:10
差不多十年前用 iar 搞 cc2540 的时候就查出来一个 if 判断的对应的汇编有错误,当时同样怀疑是盗版导致 ...
(引用自3楼)

目前还是重点怀疑自己哪里没搞好导致的. 盗版埋坑这种事, 给人的直觉就是编译器有问题, 对于IDE厂家好像也算不上什么好事.
奇怪的是每个文件对应的汇编代码看上去是对的, 下载到单片机内, 在线调试的代码就发生了变化.
好像是将每个文件的汇编代码,组合最终成品的时候出了问题. 这就是所谓的编译器链接过程嘛.

出0入31汤圆

发表于 2023-11-26 14:01:15 | 显示全部楼层
偷偷优化了?

出500入203汤圆

 楼主| 发表于 2023-11-26 15:11:41 | 显示全部楼层
消耗了两天, 我想大概是破案了, 是因为在下载选项中,没有勾选use flash loader选项.
我理解这个东西是程序的下载算法, 告诉下载器该如何将bin写入mcu.
不勾选的时候, 实际上下载是出错的, 但是IDE没有强烈的提示发生了错误, 仅在debug log中提示了几个警告. 只有再次勾选了verify download之后, 才会弹窗提示错误.
偏偏这个工程就会在上述那个汇编代码出错的地方下载错误. IAR的调试窗口, 显示的汇编文件应该是从flash中回读的, 所以就变成了莫名其妙的代码.
勾选之后下载就正常了.
也就是说,并不是编译出了问题, 而是下载出了问题.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-2 19:46

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表