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

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

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

Keil MDK使用編譯器AC5與AC6生成瀏覽信息的差異有哪些

strongerHuang ? 來源:strongerHuang ? 作者:strongerHuang ? 2021-01-18 11:17 ? 次閱讀

很多使用過Keil MDK的工程師都發(fā)現(xiàn)了一個問題,Keil MDK編譯代碼的時候,速度很慢。 編譯速度慢有幾個原因:

編譯器

代碼量大小

工程配置(生成信息

其中工程配置中生成信息包含多種,打開工程選項卡就能看見。Project -> Options for Target -> Output / Listing:

ebacc578-58f7-11eb-8b86-12bb97331649.png

ebcb7810-58f7-11eb-8b86-12bb97331649.png

這里面有很多信息都會影響編譯速度,其中生成瀏覽信息(Browse Information),下面就來講講關(guān)于瀏覽信息的內(nèi)容。

嵌入式專欄

1

關(guān)于Keil瀏覽信息

Keil中瀏覽信息,就是我們平時編輯調(diào)試時,右鍵(或者F12快捷鍵)使用Go To Definition xxx時所需要瀏覽的代碼信息:

ebf893cc-58f7-11eb-8b86-12bb97331649.png

需要在工程配置中勾選生成瀏覽信息才能正常使用該功能:

ec2734de-58f7-11eb-8b86-12bb97331649.png

生成瀏覽信息會比較影響編譯速度,同時在Objects(OutPut配置輸出路徑)文件夾下面會多出*.crf文件(瀏覽信息文件)。 關(guān)于Keil MDK中各種文件的描述,可以參看我的文章:Keil系列教程10_文件類型及相關(guān)描述。

嵌入式專欄

2

AC5與AC6生成瀏覽信息的差異

Keil MDK編譯器默認(rèn)是使用Arm Compiler(簡稱AC),目前主流的就是AC5和AC6.

之前也給大家分享過關(guān)于AC5和AC6的文章:

全面認(rèn)識ARM編譯器AC6.12Keil MDK 編譯器 AC5 和 AC6 優(yōu)化選項重要內(nèi)容和區(qū)別

其實AC5和AC6還真有很多地方不同,之前使用AC5的代碼工程,很多地方都存在兼容性問題。

1.AC5和AC6生成瀏覽信息速度不同

如果不生成瀏覽信息(不勾選),AC5的編譯速度其實也不算慢。

但是,一般情況下,軟件開發(fā)工程師為了方便編輯和調(diào)試代碼,一般都會生成瀏覽信息。

AC5和AC6明顯的區(qū)別就是編譯速度上差異很大,AC6即使生成瀏覽信息,在編譯的時候,速度相比AC5快很多。

而且代碼量也有差異:

ecc545de-58f7-11eb-8b86-12bb97331649.png

2.AC5和AC6生成瀏覽信息方式不同

如果你使用過AC6,你會發(fā)現(xiàn):在不用編譯的情況下,可以直接Go To Definitionxxx瀏覽代碼。

比如:你直接使用STM32CubeMX配置生成Keil MDK的代碼,修改配置,使用AC6編譯器,你會發(fā)現(xiàn)不用編譯就可以直接Go To Definition。

當(dāng)然,前提你要配置使用AC6編譯器:

ecf4a1a8-58f7-11eb-8b86-12bb97331649.png

還有,AC6生成瀏覽信息是在后臺自動完成的,可能需要等待幾秒鐘或者更長時間(與你電腦配置有關(guān))。

責(zé)任編輯:xj

原文標(biāo)題:Keil MDK使用編譯器AC5與AC6生成瀏覽信息的差異

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

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

    關(guān)注

    68

    文章

    1210

    瀏覽量

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

    關(guān)注

    1

    文章

    1617

    瀏覽量

    49015
  • MDK
    MDK
    +關(guān)注

    關(guān)注

    4

    文章

    208

    瀏覽量

    32009

原文標(biāo)題:Keil MDK使用編譯器AC5與AC6生成瀏覽信息的差異

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

收藏 人收藏

    評論

    相關(guān)推薦

    Keil編譯器優(yōu)化方法

    我們都知道,代碼是可以通過編譯器優(yōu)化的,有的時候,為了提高運行速度或者減少代碼尺寸,會開啟優(yōu)化選項。
    的頭像 發(fā)表于 10-23 16:35 ?256次閱讀
    <b class='flag-5'>Keil</b><b class='flag-5'>編譯器</b>優(yōu)化方法

    人工智能編譯器與傳統(tǒng)編譯器的區(qū)別

    人工智能編譯器(AI編譯器)與傳統(tǒng)編譯器在多個方面存在顯著的差異。這些差異主要體現(xiàn)在設(shè)計目標(biāo)、功能特性、優(yōu)化策略、適用范圍以及技術(shù)復(fù)雜性等方
    的頭像 發(fā)表于 07-17 18:19 ?1610次閱讀

    stm32wb55cgu6用BLE_HeartRate例程,連接一會就自動斷開的原因?

    沁恒的藍(lán)牙調(diào)試助手和st的st ble toolbox都是這樣 斷開時間不固定,但都沒幾分鐘肯定會斷開。。 并且斷開后功耗也會增加兩個ma,過30秒會恢復(fù)待機(jī)狀態(tài),這邊做的最小系統(tǒng)板, 還有另外一個問題,藍(lán)牙棧兼容ac6嗎,我使用keil,默認(rèn)是
    發(fā)表于 05-24 08:29

    使用SDK5生成工程模板程序時老是出現(xiàn)錯誤是為啥?

    使用st SDK5生成工程模板程序時老是出現(xiàn)這樣的錯誤是為啥?我的SDK:5.0.1STM32CubeMX:4.26.0Keil5:5.25 求助萬能的網(wǎng)友。
    發(fā)表于 04-28 08:36

    Keil使用AC6編譯提示CUDA版本過高怎么解決?

    今晚搞 ToughGFX 最后快成功了 ,Keil 編譯又提示: *** Using Compiler \'V6.14\', folder: \'D:Keil_v5
    發(fā)表于 04-11 07:56

    請問TouchGFX如何用AC6編譯器呢?

    最近幾天 研究了下AC6編譯器 ,想使用AC6 編譯TouchGFX, 用ArmV5 編譯 工程
    發(fā)表于 04-11 07:36

    使用mdkac6編譯器一直報錯是怎么回事?

    使用mdkac6編譯器一直報錯
    發(fā)表于 04-10 06:01

    printf在keil5AC6編譯器下運行進(jìn)入死循環(huán)的原因?

    Initialization ...n\");把信息顯示在屏幕上,用AC5編譯時運行正常,但是編譯速度太慢;而用AC6
    發(fā)表于 04-07 06:46

    用cubemx6.3.0生成以前的keil程序后運行不正常的原因?

    用cubemx6.3.0生成以前的keil程序后運行不正常。
    發(fā)表于 04-02 08:05

    STM32CubeMX生成FreeRTOS的MDK工程不支持AC6編譯器嗎?

    使用STM32CubeMX生成FreeRTOS的MDK工程,選擇AC5編譯器可以編譯成功,選擇AC6
    發(fā)表于 03-06 08:24

    M481系列KEIL選擇ARM5編譯器 ,編譯速度非常慢怎么解決?

    M481系列,如果KEIL選擇ARM5編譯器 ,編譯速度非常慢
    發(fā)表于 01-16 06:51

    AC和DC電源什么區(qū)別?

    AC和DC電源什么區(qū)別? 交流(AC)電源和直流(DC)電源是兩種不同的電源類型,它們在電流方向、電壓特性以及應(yīng)用領(lǐng)域等方面存在很大的區(qū)別。本文將從工作原理、優(yōu)缺點、應(yīng)用范圍等幾個方面詳細(xì)介紹
    的頭像 發(fā)表于 12-09 15:06 ?5555次閱讀

    TVM編譯器的整體架構(gòu)和基本方法

    將近兩個月沒有學(xué)習(xí)一些新東西,更新一下博客了。一直在忙公司的一個項目,是做一款支持LSTM和RNN的通用架構(gòu)加速IP。自己恰好負(fù)責(zé)指令編譯工作,雖然開始的指令比較粗糙,沒有一套完整的編譯器架構(gòu)
    的頭像 發(fā)表于 11-30 09:36 ?2233次閱讀
    TVM<b class='flag-5'>編譯器</b>的整體架構(gòu)和基本方法

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

    這一點,需要了解編譯器的能力和限制;第三,要了解硬件的運行方式,針對硬件特性進(jìn)行優(yōu)化。本文著重展開第二點和第三點。 簡單認(rèn)識編譯器 要寫出高性能的代碼,首先需要對編譯器基礎(chǔ)的了解,原
    的頭像 發(fā)表于 11-24 15:37 ?837次閱讀
    <b class='flag-5'>編譯器</b>的優(yōu)化選項

    基于ARM編譯器版本5的工程遷移與適配到ARM編譯器版本6.12

    AC5AC6的主要差異AC6使用armclang代替了armcc,因此在AC6中就沒有armcc這個
    的頭像 發(fā)表于 11-12 11:17 ?8408次閱讀
    基于ARM<b class='flag-5'>編譯器</b>版本<b class='flag-5'>5</b>的工程遷移與適配到ARM<b class='flag-5'>編譯器</b>版本6.12