0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

不同版本Keil,編譯器可能不同

strongerHuang ? 來源:strongerHuang ? 2023-09-08 09:39 ? 次閱讀

今天在技術(shù)交流群看到這么一個問題,大概意思就是:同一個代碼工程(源碼不變),因Keil版本不同,程序(hex)卻變了。

對于很多新手來說,肯定會納悶,明明代碼沒變,為啥結(jié)果不一樣了呢? 這其中的“變量”就Keil版本從V5.14變?yōu)榱薞5.28。

而優(yōu)化選項又沒變,那什么變了? 是的,有經(jīng)驗的老司機肯定看出來了,就是編譯器的版本變了。

不同版本Keil,編譯器可能不同

為了驗證這個問題,我安裝了以前老版本的Keil V5.28和V5.36,默認自帶的編譯器AC(Arm Compiler),不管是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

而這個工程源代碼沒變、優(yōu)化選項(配置)沒變,編譯出來的Hex文件卻不一樣:

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

如何解決這種問題?

1.使用相同開發(fā)環(huán)境

這里的開發(fā)環(huán)境主要指Keil版本,比如:以前用Keil V5.14,現(xiàn)在也繼續(xù)使用V5.14版本。

當然,如果條件允許,操作系統(tǒng)(Windows)也最好一樣,有可能會因為操作系統(tǒng)導致編譯結(jié)果一樣。

上個月才給大家分享過一篇文章:軟件工具沒事別瞎升級

2.使用相同編譯器

當然,如果不能做到上面說的軟件版本以及系統(tǒng)一樣(有的人就喜歡新版本的軟件),可以使用相同版本編譯器來盡量保持一致。

不管是這里說的Keil Arm Compiler 編譯器,還是GCC等工具,道理都是一樣。

Keil的編譯器可以修改,可能很多小伙伴還不知道,這里就給大家說一下。

更換Keil編譯器的方法比較簡單,到Keil(Arm)官方下載你需要版本的編譯器,自己安裝一下即可。

方法比較簡單,這里就不講述了,具體可以參看我之前分享的文章:手把手教你升級Keil MDK的ARM編譯器

本文就分享到這里,大家如果還有遇到類似的奇奇怪怪的問題,歡迎留言討論。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6030

    文章

    44489

    瀏覽量

    631989
  • WINDOWS
    +關(guān)注

    關(guān)注

    3

    文章

    3521

    瀏覽量

    88317
  • keil
    +關(guān)注

    關(guān)注

    68

    文章

    1210

    瀏覽量

    166580
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1617

    瀏覽量

    49015

原文標題:單片機代碼不變,hex卻變了?

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Keil修改ARM編譯器及配置方法

    Keil MDK自 V5.36 版本之后,默認就不帶 Arm Compiler V5版本編譯器。如果需要使用 V5 版本
    發(fā)表于 09-19 10:41 ?4089次閱讀
    <b class='flag-5'>Keil</b>修改ARM<b class='flag-5'>編譯器</b>及配置方法

    Keil編譯器優(yōu)化問題

    大家好,我在使用單片機程序編譯過程中,碰到了一些問題,懇請高手回答。具體描述如下: 當使用keil編譯器編譯過程中,設(shè)置為8級優(yōu)化,產(chǎn)生的燒寫文件,就可以在硬件平臺上正常運行。但是如果
    發(fā)表于 12-18 16:39

    C51編譯器軟件 V6.02

    C51編譯器軟件 KEIL?V6.02
    發(fā)表于 12-27 15:51 ?71次下載

    Keil C51編譯器用戶手冊 中文版

    Keil C51編譯器用戶手冊 中文版:本手冊講述對8051 的目標環(huán)境,如何使用Cx51 優(yōu)化C 編譯器編譯C 程序Cx51 編譯器包,可
    發(fā)表于 08-06 08:51 ?0次下載

    Keil C編譯器編程規(guī)則和代碼優(yōu)化

    本內(nèi)容介紹了Keil C編譯器編程規(guī)則和代碼優(yōu)化,要實用好單片機就必須清楚它的內(nèi)部結(jié)構(gòu)組織結(jié)構(gòu),無論是在芯片的選擇還是代碼的編寫
    發(fā)表于 04-20 17:37 ?315次下載
    <b class='flag-5'>Keil</b> C<b class='flag-5'>編譯器</b>編程規(guī)則和代碼優(yōu)化

    編譯器_keil的優(yōu)化選項問題

    keil編譯器的優(yōu)化選項針對ARM,對STM32編譯的一些優(yōu)化的問題
    發(fā)表于 02-25 14:18 ?3次下載

    GCC編譯器最新版本下載地址(windows)

    GCC編譯器最新版本下載地址(windows)。
    發(fā)表于 10-29 09:44 ?0次下載
    GCC<b class='flag-5'>編譯器</b>最新<b class='flag-5'>版本</b>下載地址(windows)

    基于Atmel Studio 6軟件的KEIL ARM 編譯器使用

    基于Atmel Studio 6軟件的KEIL ARM 編譯器使用
    的頭像 發(fā)表于 07-04 09:49 ?5717次閱讀
    基于Atmel Studio 6軟件的<b class='flag-5'>KEIL</b> ARM <b class='flag-5'>編譯器</b>使用

    關(guān)于KEIL ARM編譯器的使用介紹

    KEIL ARM編譯器的使用
    的頭像 發(fā)表于 07-10 10:50 ?6279次閱讀

    控制IRQ和FIQ中斷的編譯器內(nèi)部函數(shù) 基于Keil MDK

    控制IRQ和FIQ中斷的編譯器內(nèi)部函數(shù) - 基于Keil MDK
    的頭像 發(fā)表于 02-29 16:45 ?2443次閱讀

    如何在Keil MDK中使用GCC編譯器工具鏈

    Keil MDK 是否支持編譯器?有沒有辦法選擇其他編譯器? 可能你使用其他GUN工具鏈進行編譯時,會出現(xiàn)類似如下錯誤: --- Error
    的頭像 發(fā)表于 11-20 15:53 ?4600次閱讀

    使用keil開發(fā)華大MCU時的版本問題

    問題:使用keil配置華大MCU的開發(fā)環(huán)境時,按照官網(wǎng)的流程,從華大官網(wǎng)下載了相應(yīng)得芯片PACK包后,在編譯時依舊提示各種配置錯誤。解決方案:推薦使用keil5.28及以上版本進行開發(fā)
    發(fā)表于 11-16 10:21 ?0次下載
    使用<b class='flag-5'>keil</b>開發(fā)華大MCU時的<b class='flag-5'>版本</b>問題

    如何在e2 studio中添加IAR和Keil的ARM編譯器

    過程,幫助客戶有效的提升開發(fā)效率。 在較早版本的e 2 ?studio中,針對瑞薩的RA系列RAM內(nèi)核的產(chǎn)品,默認安裝的是GCC的編譯器,但在實際的應(yīng)用過程中,很多的客戶都習慣于使用IAR或Keil
    的頭像 發(fā)表于 03-14 10:45 ?1772次閱讀

    Keil MDK使用GCC編譯器的方法

    有網(wǎng)友問:Keil 編譯速度有點慢,它支持GCC編譯嗎?
    的頭像 發(fā)表于 03-24 09:57 ?2933次閱讀
    <b class='flag-5'>Keil</b> MDK使用GCC<b class='flag-5'>編譯器</b>的方法

    使用ARMClang V6版本編譯器出現(xiàn)錯誤的解決方法

    很多STM32開發(fā)者使用ARM mdk IDE進行開發(fā),我們知道ARM MDK IDE早已推出ARMClang V6版本編譯器了。不過,當我們把在V5版本經(jīng)ARMCC編譯通過的工程文
    的頭像 發(fā)表于 06-07 12:32 ?6000次閱讀
    使用ARMClang V6<b class='flag-5'>版本</b><b class='flag-5'>編譯器</b>出現(xiàn)錯誤的解決方法