【寫(xiě)在前面的話】
如果說(shuō)“喜新厭舊”是人類(lèi)的天性,那么嵌入式程序員一定是特例——他們尤其不喜歡更換自己用慣了的工具——拿IDE來(lái)說(shuō)吧,相當(dāng)一部分人仍然抱著老版本的MDK遲遲不愿意更新,這里的原因很多:
“忙的要死,哪有時(shí)間去嘗試新版本”
“新版本有啥特別的么?能用樹(shù)狀結(jié)構(gòu)管理工程文件了么?”
“新編譯器穩(wěn)定么?”
“有破解么?”
“啥?更新了?我怎么不知道?”
“Arm官網(wǎng)太慢了……”
“目前的代碼是一坨屎山……MDK的版本沒(méi)人敢動(dòng)……出了事你負(fù)責(zé)?”
……
即便如此,仍然有一部分“逆行者”特別喜歡嘗試全新版本的MDK——如果問(wèn)起原因:“uVision萬(wàn)年不更新為啥要對(duì)新版本的MDK如此執(zhí)著”——其回答一定是:“我想嘗試最新版本的編譯器”。
除此以外,還有另外一批人,他們因?yàn)槟承┰颍ū热鏛icense),被“束縛在了”某個(gè)版本的MDK上,即便如此,他們也有一些相當(dāng)合理的需求:
他們可能對(duì)當(dāng)前MDK所使用的編譯器版本并不滿(mǎn)意,并迫切希望使用過(guò)去某個(gè)“久經(jīng)考驗(yàn)”的編譯器版本;
他們可能希望嘗試Arm官方最新發(fā)布的編譯器(例如修復(fù)了某個(gè)困擾已久的bug),但通常只有新版本的MDK才會(huì)搭載最新的編譯器版本;最要命的是,一般來(lái)說(shuō)新版本的MDK總是要比新版本的編譯器遲到好幾個(gè)月!
怎么辦呢?別急,今天就為大家曝光MDK一個(gè)鮮為人知的隱藏功能。
【正文】
最近,Arm發(fā)布了Arm Compiler 6的最新版本 6.15。而最新版本的MDK也不過(guò)支持到 6.14:

那么我們?nèi)绾卧诋?dāng)前MDK版本下使用最新的 Arm Compiler 6.15 呢?
第一步:
從Arm官方網(wǎng)站下載最新的 Arm Compiler 6。需要特別注意的是,一定要下載 32bit 的版本(默認(rèn)情況下會(huì)下載64bit的版本)

第二步:
將新的編譯器安裝到MDK所在的安裝目錄下:假設(shè)MDK被安裝在“C:\Keil_v5”,則將新的編譯器安裝到“C:\Keil_v5\Arm\”目錄下,如果有所疑問(wèn),請(qǐng)看截圖:

第三步:
打開(kāi)MDK,并通過(guò)菜單 project-》manage-》project items 打開(kāi)“manage project items” 窗口:

在窗口中,切換到“Folders/Extensions”選項(xiàng)卡,并單擊下圖中紅色矩形框所標(biāo)記的按鈕“。。.”

在彈出的對(duì)話框中,單擊“Add another ARM Compiler Verison to List.。?!?/p>

選中剛剛編譯器所安裝的目錄:

單擊OK。如果編譯器被正確的識(shí)別,我們將會(huì)看到它被加入到 ARM Compiler Versions 列表中:

此時(shí),單擊 Close、并關(guān)閉MDK。重新啟動(dòng)MDK后,我們就可以在工程的配置選項(xiàng)中看到新加入的Arm編譯器了:

在Code Generation-》Arm Compiler 下來(lái)列表中選擇新加入的編譯器版本(比如這里的 6.15),立即試一下:

怎一個(gè)爽字了得!打完收工。
【結(jié)語(yǔ)】
其實(shí),在這一過(guò)程中,有以下幾點(diǎn)值得特別強(qiáng)調(diào)一下:
“下載 32bit 版本” 連同 “安裝新編譯器到 MDK 原有的安裝目錄下” 會(huì)“建議” 新的編譯器使用 MDK 已有的License;
你的MDK最少本身也要支持Arm Compiler 6;
這些步驟僅對(duì) Arm Compiler 有效;
除了安裝最新版本的編譯器,你當(dāng)然也可以用來(lái)安裝老版本的Arm編譯器,這里同時(shí)包括 Arm Compiler 5(也就是armcc)和 Arm Compiler 6(也就是armclang);
仔細(xì)觀察窗口“Manage Project Items” 窗口,你會(huì)發(fā)現(xiàn),MDK實(shí)際上也支持 GCC 編譯器——通過(guò)勾選 “Use GCC Compiler (GNU) for ARM projects”,并正確配置GCC編譯器所在的目錄來(lái)啟用GCC作為MDK的當(dāng)前編譯器。

一旦設(shè)置成功,你會(huì)發(fā)現(xiàn),平時(shí)熟悉的工程選項(xiàng)也變了樣:

責(zé)任編輯:haq
-
ARM
+關(guān)注
關(guān)注
135文章
9562瀏覽量
392415 -
編譯器
+關(guān)注
關(guān)注
1文章
1672瀏覽量
51723 -
MDK
+關(guān)注
關(guān)注
4文章
211瀏覽量
33663
發(fā)布評(píng)論請(qǐng)先 登錄
性能突破 | SpacemiT-X60 在 LLVM 編譯器上實(shí)現(xiàn) 16% 顯著提升
開(kāi)源鴻蒙技術(shù)大會(huì)2025丨編譯器與編程語(yǔ)言分論壇:語(yǔ)言驅(qū)動(dòng)系統(tǒng)創(chuàng)新,編譯賦能生態(tài)繁榮
飛凌嵌入式ElfBoard-Vim編輯器之GCC編譯器的安裝
GCC編譯器,怎么才能實(shí)現(xiàn)c文件中未被調(diào)用的函數(shù),不會(huì)被編譯呢?
修改Kconfig的配置后,編譯基本等于重新編譯一遍,怎么解決?
rt_list_for_each_entry編譯失敗怎么解決?
邊緣設(shè)備AI部署:編譯器如何實(shí)現(xiàn)輕量化與高性能?
編譯器功能安全驗(yàn)證的關(guān)鍵要素
stellar studio按照說(shuō)明文檔進(jìn)行編譯器環(huán)境配置,為什么會(huì)報(bào)錯(cuò)?
兆松科技ZCC編譯器全面支持芯來(lái)科技NA系列處理器
RISC-V架構(gòu)下的編譯器自動(dòng)向量化
驚爆內(nèi)幕:老MDK也可以使用新編譯器!
評(píng)論