該文章主要主要內容是講解如升級arm編譯器的兩種方法【(1) 直接升級keil爲新版本、(2) 或者下載高版本編譯器進行安裝】,基於主題 rt-thread 在 Arm Compiler 6 (armclang)進行編譯。
目錄
在 MDK5 上使用 Arm Compiler 6 進行編譯
在 MDK5 上使用 Arm Compiler 6 進行編譯
RT-Thread 一般 Arm Compiler5 進行編譯。當然也可以在 MDK5 上使用 Arm Compiler 6.10.1 及其以上版本的編譯器上進行編譯,實現方法有兩種:
- 直接升級 MDK 爲 5.26 及其以上版本;
- 下載安裝 32 位 Arm Compiler 6。
非rtt的話,注意就是需要自行根據編譯器版本號,定義arm clang相關的宏,便於兼容使用。
方法一:升級 MDK 版本至 5.26 以上
以升級 MDK 的方式增加對 Arm Compiler 6 的支持。卸載當前低版本 MDK,重新安裝 5.26 版本及其以上的 MDK(詳情查看 Keil MDK 安裝)。
安裝完成之後:在編譯工程之前,選擇使用 6.10.1 及其以上的編譯器即可。
方法二:下載安裝 32 位 Arm Compiler 6
下載
以下載安裝編譯器的方式增加對 Arm Compiler 6 的支持(請使用 MDK5.1.2 版本或以上)。對於 Arm Compiler 6,請下載 Windows 32-bit 進行安裝,以使用 MDK 許可證。
編譯器下載地址:https://developer.arm.com/tools-and-software/embedded/arm-compiler/downloads/version-6,選擇 6.10.1 版本或以上版本。
安裝
-
找到 MDK5 安裝路徑,如默認路徑 C:\ Keil_V5 \ ARM ,在 ARM 文件夾下新建文件夾並重命名,例如 C:\ Keil_V5 \ ARM \ ARMCCv506u6。
-
解壓下載的文件,雙擊 setup.exe 進行安裝,將新版本的編譯器安裝到上述新建目錄下。
設置
1、點擊 Project - Manage - Project Items - Folders/Extensions
. 勾選 Use ARM Compiler,點擊右側按鈕 ...
。(下圖是官方圖)
2、按照下圖,單擊 Add another ARM Compiler Version to List
添加新版本的編譯器路徑,添加新的路徑之後會顯示相應的新版本編譯器,最後點擊 Close。
使用
在編譯工程之前,選擇使用新的編譯器即可。
常見問題
Q1: 編譯時出現 “ArmClang: Error: No license checking back-end registered with id Keil.“
A: 這是由於安裝了 64-bit 的 Arm Compiler 造成的,MDK 許可證不支持 Arm Compiler 6.x 64-bit,僅支持 Arm Compiler 6.x 32-bit,請下載安裝 Compiler 6.x 32-bit。
Q2: 編譯出現很多問題。
A: 如果編譯出現很多問題,那麼很有可能就是AC6支持的不好,就先使用AC5吧
Q3: 還有就是不支持 c99 的問題。
A: AC6不識別c99的。此時可以將c99替換爲-std=c99。一個示例如下:
在rtt中,這個問題一般存在於某些組件裏,比如在分組device dirvers分組中的某些內容依賴c99,但是AC6不識別c99的。此時可以將c99替換爲-std=c99。 右鍵device drivers分組,裏面有個--c99設置,改爲 -std=c99。然後就可以編譯通過了。
吐槽
PS:很奇怪,發文不能自定義標籤了,之前都可以的;現在需要等級要滿 lv3 才行,這.......最近更新了嗎?。。。。
分類專欄也不行了。。。。。??