0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心
发布

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

不同版本Keil,编译器可能不同

strongerHuang 来源:strongerHuang 2023-09-08 09:39 次阅读

今天在技术交流群看到这么一个问题,大概意思就是:同一个代码工程(源码不变),因Keil版本不同,程序(hex)却变了。

对于很多新手来说,肯定会纳闷,明明代码没变,为啥结果不一样了呢? 这其中的“变量”就Keil版本从V5.14变为了V5.28。

而优化选项又没变,那什么变了? 是的,有经验的老司机肯定看出来了,就是编译器的版本变了。

不同版本Keil,编译器可能不同

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

Keil V5.28默认自带编译器为AC5.06-6和AC6.12:

6541b078-4dde-11ee-a25d-92fbcf53809c.png

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

65791fe0-4dde-11ee-a25d-92fbcf53809c.png

而这个工程源代码没变、优化选项(配置)没变,编译出来的Hex文件却不一样:

65bd2474-4dde-11ee-a25d-92fbcf53809c.png

如何解决这种问题?

1.使用相同开发环境

这里的开发环境主要指Keil版本,比如:以前用Keil V5.14,现在也继续使用V5.14版本。

当然,如果条件允许,操作系统(Windows)也最好一样,有可能会因为操作系统导致编译结果一样。

上个月才给大家分享过一篇文章:软件工具没事别瞎升级

2.使用相同编译器

当然,如果不能做到上面说的软件版本以及系统一样(有的人就喜欢新版本的软件),可以使用相同版本编译器来尽量保持一致。

不管是这里说的Keil Arm Compiler 编译器,还是GCC等工具,道理都是一样。

Keil的编译器可以修改,可能很多小伙伴还不知道,这里就给大家说一下。

更换Keil编译器的方法比较简单,到Keil(Arm)官方下载你需要版本的编译器,自己安装一下即可。

方法比较简单,这里就不讲述了,具体可以参看我之前分享的文章:手把手教你升级Keil MDK的ARM编译器

本文就分享到这里,大家如果还有遇到类似的奇奇怪怪的问题,欢迎留言讨论。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6017

    文章

    44269

    浏览量

    626905
  • WINDOWS
    +关注

    关注

    3

    文章

    3498

    浏览量

    87711
  • keil
    +关注

    关注

    68

    文章

    1199

    浏览量

    166006
  • 编译器
    +关注

    关注

    1

    文章

    1594

    浏览量

    48864

原文标题:单片机代码不变,hex却变了?

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Keil修改ARM编译器及配置方法

    KeilMDK自 V5.36 版本之后,默认就不带 Arm Compiler V5 版本 编译器。如果需要使用 V5 版本
    发表于09-19 10:41 3341次阅读
    <b class='flag-5'>Keil</b>修改ARM<b class='flag-5'>编译器</b>及配置方法

    Keil编译器优化问题

    大家好,我在使用单片机程序 编译过程中,碰到了一些问题,恳请高手回答。具体描述如下: 当使用 keil 编译器 编译过程中,设置为8级优化,产生的烧写文件,就可以在硬件平台上正常运行。但是如果
    发表于12-18 16:39

    C51编译器软件 V6.02

    C51 编译器软件 KEILV6.02
    发表于12-27 15:51 71次下载

    KeilC51编译器用户手册 中文版

    KeilC51 编译器用户手册 中文版:本手册讲述对8051 的目标环境,如何使用Cx51 优化C 编译器 编译C 程序Cx51 编译器包,可
    发表于08-06 08:51 0次下载

    KeilC编译器编程规则和代码优化

    本内容介绍了 KeilC 编译器编程规则和代码优化,要实用好单片机就必须清楚它的内部结构组织结构,无论是在芯片的选择还是代码的编写
    发表于04-20 17:37 315次下载
    <b class='flag-5'>Keil</b> C<b class='flag-5'>编译器</b>编程规则和代码优化

    编译器_keil的优化选项问题

    keil 编译器的优化选项针对ARM,对STM32 编译的一些优化的问题
    发表于02-25 14:18 3次下载

    GCC编译器最新版本下载地址(windows)

    GCC 编译器最新 版本下载地址(windows)。
    发表于10-29 09:44 0次下载
    GCC<b class='flag-5'>编译器</b>最新<b class='flag-5'>版本</b>下载地址(windows)

    基于Atmel Studio 6软件的KEILARM编译器使用

    基于Atmel Studio 6软件的 KEILARM 编译器使用
    的头像 发表于07-04 09:49 5610次阅读
    基于Atmel Studio 6软件的<b class='flag-5'>KEIL</b> ARM <b class='flag-5'>编译器</b>使用

    关于KEILARM编译器的使用介绍

    KEILARM 编译器的使用
    的头像 发表于07-10 10:50 6145次阅读

    控制IRQ和FIQ中断的编译器内部函数 基于KeilMDK

    控制IRQ和FIQ中断的 编译器内部函数 - 基于 KeilMDK
    的头像 发表于02-29 16:45 2245次阅读

    如何在KeilMDK中使用GCC编译器工具链

    KeilMDK 是否支持 编译器?有没有办法选择其他 编译器可能你使用其他GUN工具链进行 编译时,会出现类似如下错误: --- Error
    的头像 发表于11-20 15:53 4361次阅读

    使用keil开发华大MCU时的版本问题

    问题:使用 keil配置华大MCU的开发环境时,按照官网的流程,从华大官网下载了相应得芯片PACK包后,在 编译时依旧提示各种配置错误。解决方案:推荐使用 keil5.28及以上 版本进行开发
    发表于11-16 10:21 0次下载
    使用<b class='flag-5'>keil</b>开发华大MCU时的<b class='flag-5'>版本</b>问题

    如何在e² studio中添加IAR和Keil的ARM编译器

    过程,帮助客户有效的提升开发效率。 在较早 版本的e 2 studio中,针对瑞萨的RA系列RAM内核的产品,默认安装的是GCC的 编译器,但在实际的应用过程中,很多的客户都习惯于使用IAR或 Keil
    的头像 发表于03-14 10:45 1478次阅读

    KeilMDK使用GCC编译器的方法

    有网友问: Keil 编译速度有点慢,它支持GCC 编译吗?
    的头像 发表于03-24 09:57 2563次阅读
    <b class='flag-5'>Keil</b> MDK使用GCC<b class='flag-5'>编译器</b>的方法

    使用ARMClang V6版本编译器出现错误的解决方法

    很多STM32开发者使用ARM mdk IDE进行开发,我们知道ARM MDK IDE早已推出ARMClang V6 版本编译器了。不过,当我们把在V5 版本经ARMCC 编译通过的工程文
    的头像 发表于06-07 12:32 4562次阅读
    使用ARMClang V6<b class='flag-5'>版本</b><b class='flag-5'>编译器</b>出现错误的解决方法