同样的单片机代码,编译后的hex为啥会变?
- 2025-07-28 12:14:56
关注+星标公众号,不错过精彩内容
作者 | strongerHuang
微信公众号 | strongerHuang

不同版本Keil,编译器可能不同
为了验证这个问题,我安装了以前老版本的Keil V5.28和V5.36,默认自带的编译器AC(Arm Compiler),不管是AC5,还是AC6版本都不一样。
Keil V5.28默认自带编译器为AC5.06-6和AC6.12:

Keil V5.36默认自带编译器为AC5.06-7和AC6.16:


如何解决这种问题?
1.使用相同开发环境
这里的开发环境主要指Keil版本,比如:以前用Keil V5.14,现在也继续使用V5.14版本。
当然,如果条件允许,操作系统(Windows)也最好一样,有可能会因为操作系统导致编译结果一样。
上个月才给大家分享过一篇文章:软件工具没事别瞎升级

2.使用相同编译器
当然,如果不能做到上面说的软件版本以及系统一样(有的人就喜欢新版本的软件),可以使用相同版本编译器来尽量保持一致。
不管是这里说的Keil Arm Compiler 编译器,还是GCC等工具,道理都是一样。
Keil的编译器可以修改,可能很多小伙伴还不知道,这里就给大家说一下。
更换Keil编译器的方法比较简单,到Keil(Arm)官方下载你需要版本的编译器,自己安装一下即可。
方法比较简单,这里就不讲述了,具体可以参看我之前分享的文章:手把手教你升级Keil MDK的ARM编译器

声明:本文内容及配图由入驻作者撰写或合作网站授权转载。文章观点仅代表作者本人,不代表科技区角网立场。仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
点击这里
扫码添加微信

- 点赞 (0)
-
分享
微信扫一扫
-
加入群聊
扫码加入群聊