大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是在MDK開發(fā)環(huán)境下自定義安裝與切換不同編譯器版本的方法。
Keil MDK 想必是嵌入式開發(fā)者最熟悉的工具之一了,自 2005 年 Arm 公司收購 Keil 公司之后,MDK 就走上了發(fā)展快車道,從 v2.50a 一路狂奔到現(xiàn)在最新的 v5.40, 累計(jì)有 75 個(gè)版本。
- MDK 歷史版本下載地址:https://www.keil.com/update/rvmdk.asp
伴隨著 IDE 版本迭代,Arm 公司為其搭配的 C/C++ 編譯器也在不斷更新,光類型就有三種:RealView Compilation Tools (簡稱 RVCT)、Arm Compiler 5(即經(jīng)典的 armcc)、Arm Compiler for Embedded(又稱 Arm Compiler 6 或 armclang),這三個(gè)編譯器均各自發(fā)展了很多版本。
- MDK 也支持使用標(biāo)準(zhǔn) Arm GCC 以及 LLVM for Arm(clang) 編譯器。
痞子衡之前使用了很長一段時(shí)間的 MDK v5.31,這個(gè)版本的 IDE 默認(rèn)同時(shí)帶了 Arm Compiler 5 和 Arm Compiler 6,用戶可以按需自由選擇編譯器版本。痞子衡在 MDK v5.31 下(選擇 Arm Compiler 5)設(shè)計(jì)了很多小工程,功能測(cè)試穩(wěn)定。但是最近新安裝了 MDK v5.38 之后,發(fā)現(xiàn)這個(gè)版本 IDE 默認(rèn)僅支持 Arm Compiler 6,而痞子衡之前的小工程在 Arm Compiler 6 下編譯出來功能出現(xiàn)了異常。
要解決這個(gè)因?yàn)椴煌幾g器引起的兼容問題,要么在 Arm Compiler 6 下調(diào)試代碼找到問題,要么干脆切回到 Arm Compiler 5。今天痞子衡就來聊聊如何在 MDK 下安裝自選編譯器版本:
一、切換編譯器方法
隨便打開一個(gè) MDK 工程,在工程選項(xiàng) Target / ARM Compiler 里能看到當(dāng)前已安裝的所有編譯器版本,痞子衡當(dāng)前的 MDK v5.38 里僅有一個(gè)默認(rèn)的 Arm Compiler 6 (具體版本是 6.19),這里也同時(shí)顯示了 Arm Compiler 5 選項(xiàng),但是狀態(tài)是 Missing,即不可用狀態(tài)。
如果安裝了多個(gè)編譯器版本,只需要在這里切換選項(xiàng)即可。
二、安裝自選編譯器版本
現(xiàn)在我們嘗試給 MDK v5.38 安裝一個(gè) Arm Compiler 5 版本的編譯器。首先需要在如下 Arm developer 網(wǎng)站下載一個(gè)合適的編譯器補(bǔ)丁包。
- 所有Arm自家編譯器版本下載地址:https://developer.arm.com/documentation/ka005198/latest
痞子衡選擇了最新的 Arm Compiler 5.06 update 7 (build 960) ?版本(Arm 早在 2017 年便宣布了將停止對(duì) Arm Compiler 5 的維護(hù),該版本應(yīng)該是最后一個(gè) AC5 版本),下載后得到 ARMCompiler_506_Windows_x86_b960.zip 包。
解壓 ARMCompiler_506_Windows_x86_b960.zip 包后,雙擊 Installersetup.exe 進(jìn)入安裝界面,將該編譯器版本自定義安裝到 MDK 路徑下(比如 Keil_v5ARMARM_Compiler_5.06u7),與原默認(rèn) Keil_v5ARMARMCLANG 并列。
編譯器補(bǔ)丁安裝完成后,打開 MDK,進(jìn)入菜單欄 Project / Manage / Project Items 配置,切換到 Folders/Extensions 選項(xiàng)卡,按如下操作將 Arm Compiler 5.06u7 加入到編譯器列表(單擊 Add another ARM Compiler Version to List 時(shí)選擇 Keil_v5ARMARM_Compiler_5.06u7 路徑識(shí)別)。
操作完成后,重新打開 MDK,這時(shí)候就能在工程選項(xiàng)編譯器選擇里看到新安裝的 Arm Compiler 5.06u7 啦。當(dāng)然你想安裝多個(gè) AC5 或者 AC6 版本也是可以的,方法一樣。
至此,在MDK開發(fā)環(huán)境下自定義安裝與切換不同編譯器版本的方法痞子衡便介紹完畢了,掌聲在哪里~~~