摘要: 本文主要對Arm Compiler 6的armclang的命令參數(shù)選項(xiàng)進(jìn)行介紹。
關(guān)鍵字:Arm Compiler 6、編譯器、armclang、mcu架構(gòu)、處理器、優(yōu)化級別
1. armclang編譯參數(shù)
armclang是Arm Compiler 6中編譯 C/C++和GNU語言的集成編譯器。在armclang進(jìn)行編譯時(shí)以下參數(shù)是必須要指定的。
--target(目標(biāo))
-march(架構(gòu))
-mcpu(處理器)
-O(優(yōu)化等級)
2. 編譯參數(shù)詳細(xì)介紹
2.1 指定目標(biāo)
要指定目標(biāo),需使用--target,這個目標(biāo)主要指是為AArch64 狀態(tài)生成 A64 指令還是為 AArch32 狀態(tài)生成 A32 和 T32 指令。
例如:
為 AArch64 狀態(tài)生成 A64 指令:--target=aarch64-arm-none-eabi
為 AArch32 狀態(tài)生成 A32或T32指令:--target=arm-arm-none-eabi
備注1:為 AArch32 狀態(tài)生成A32或T32指令時(shí),還要分別使用-marm或-mthumb。
2.2 指定架構(gòu)
使用-march選項(xiàng),為指定架構(gòu)生成代碼。支持的架構(gòu)因所選目標(biāo)不同而有差別。
要查看所選目標(biāo)的所有支持架構(gòu)列表,請使用-march=list;
2.3 指定處理器
使用-mcpu選項(xiàng),為指定處理器生成代碼。支持的處理器因所選目標(biāo)不同而有差別。
要查看所選目標(biāo)的所有支持處理器列表,請使用-mcpu=list;
備注:指定架構(gòu)和指定處理器兩個參數(shù)選項(xiàng)不能同時(shí)使用。如果是為特定的處理器進(jìn)行編譯,請使用-mcpu選項(xiàng),可以得到適用于此處理器的最佳性能。但如果希望編譯后的代碼在特定架構(gòu)上的一系列處理器上運(yùn)行,請使用-march,代碼可以在這個架構(gòu)上的任何處理器上運(yùn)行,但性能與指定單個處理器相比會收到不同程度的影響。
2.4 指定優(yōu)化等級
使用-O選項(xiàng),是指定編譯的優(yōu)化等級。不同優(yōu)化等級對執(zhí)行效率和代碼有不同的影響。如果不明顯指定,則默認(rèn)為-O0,即不進(jìn)行任何優(yōu)化。此時(shí)的編譯速度是最快的。
3. 舉例
以編譯hello.c文件為例,
在AArch64 狀態(tài) Armv8-A 架構(gòu)下的編譯:
armclang --target=aarch64-arm-none-eabi -march=armv8-a?hello.c
在 AArch32 狀態(tài)Armv8-R 架構(gòu)下的編譯:
armclang --target=arm-arm-none-eabi -march=armv8-r?hello.c
在AArch64 狀態(tài)Cortex?-A53處理器的編譯:
armclang --target=aarch64-arm-none-eabi -mcpu=cortex-a53?hello.c
在AArch32 狀態(tài)Cortex?-A53處理器的編譯:
armclang --target=arm-arm-none-eabi -mcpu=cortex-a53?hello.c
Cortex-M4處理器編譯:
armclang --target=arm-arm-none-eabi -mcpu=cortex-m4?hello.c
Cortex-M33處理器不使用DSP編譯:
armclang --target=arm-arm-none-eabi -mcpu=cortex--m33+nodsp?hello.c
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
關(guān)于億道電子
億道電子技術(shù)有限公司(英文名稱:Emdoor Electronics Technology Co.,Ltd)是國內(nèi)資深的研發(fā)工具軟件提供商,公司成立于 2002 年,面向中國廣大的制造業(yè)客戶提供研發(fā)、設(shè)計(jì)、管理過程中使用的各種軟件開發(fā)工具,致力于幫助客戶提高研發(fā)管理效率、縮短產(chǎn)品設(shè)計(jì)周期,提升產(chǎn)品可靠性。
20 年來,先后與 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Testplant、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、MicroFocus等多家全球知名公司建立戰(zhàn)略合作伙伴關(guān)系,并作為他們在中國區(qū)的主要分銷合作伙伴服務(wù)了數(shù)千家中國本土客戶,為客戶提供從芯片級開發(fā)工具、EDA 設(shè)計(jì)工具、軟件編譯以及測試工具、結(jié)構(gòu)設(shè)計(jì)工具、仿真工具、電氣設(shè)計(jì)工具、以及嵌入式 GUI 工具等等。億道電子憑借多年的經(jīng)驗(yàn)積累,真正的幫助客戶實(shí)現(xiàn)了讓研發(fā)更簡單、更可靠、更高效的目標(biāo)。
![](/Uploads/2022-08-04/62eb2f220577c.png)
歡迎關(guān)注“億道電子”公眾號
了解更多研發(fā)工具軟件知識