日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式大雜燴
[導讀]基于ARM內核的芯片在我們的世界中無處不在,從簡單的MCU到高端的應用處理器,各行各業(yè)中都有它們的身影。 如今ARM生態(tài)系統(tǒng)非常繁榮,在這繁榮的背后編譯器的作用功不可沒。 ARM編譯器按照內核類型可分為兩大類,其一是適用于Cortex-M/R內核的編譯器,其二是適


基于ARM內核的芯片在我們的世界中無處不在,從簡單的MCU到高端的應用處理器,各行各業(yè)中都有它們的身影。 如今ARM生態(tài)系統(tǒng)非常繁榮,在這繁榮的背后編譯器的作用功不可沒。
ARM編譯器按照內核類型可分為兩大類,其一是適用于Cortex-M/R內核的編譯器,其二是適用于Cortex-A內核的編譯器。 編譯器(套件)通常也稱作(編譯)工具鏈,下文可能會混用,但是是一個意思,請知悉。

適用于Cortex-M/R

內核的編譯器 ARM芯片編譯器的供應商主要是ARM公司,IAR公司和GNU開源組織,其中ARM公司和IAR公司的ARM編譯器是收費軟件,GNU提供的ARM編譯器是開源免費軟件。

ARM發(fā)布的編譯器

ARM發(fā)布的編譯器通過兩種形式提供: 單獨發(fā)布編譯器和隨ARM的IDE發(fā)布(ARM Develop Studio和Keil)。

單獨發(fā)布的編譯器:適用于幾乎所有的ARM芯片,收費軟件,可在ARM開發(fā)者官網免費下載。

ARM Develop Studio: 適用于幾乎所有的ARM芯片,收費軟件,并且具有動態(tài)圖形性能分析功能、圖形分析功能(用于開發(fā)GPU)和連接ARM虛擬模型的功能(無需硬件即可在PC端進行性能分析和軟件開發(fā))。

Keil MDK:適用于為微控制器開發(fā),收費軟件,國內開發(fā)MCU最常用的IDE之一。


IAR 公司發(fā)布的編譯器

IAR編譯器僅隨IAR的IDE發(fā)布,主要用于微控制器開發(fā)收費,收費軟件,國內開發(fā)MCU最常用的IDE之一。

ARM公司和IAR公司發(fā)布的編譯器都屬于收費軟件,使用Keil MDK和IAR Workbench就能高效的完成MCU軟件開發(fā),這也是我們平時使用最多的方式。


GNU發(fā)布的編譯器(工具鏈)

GNU Toolchain for the Cortex-R/M是基于GCC開發(fā)的,免費軟件,適用于Cortex-R/M作為內核的MCU。ST公司STM32CubeIDE就是基于GNU工具鏈的。

一般它們是這個樣子的:
arm-none-eabi-gccarm-none-eabi-g++arm-none-eabi-ararm-none-eabi-as...


適用于Cortex-A

內核的編譯器

適用于Cortex-A核的編譯器主要由ARM公司、IAR公司、GNU開源組織和Google Android NDK項目發(fā)布,其中前三家的發(fā)布的形式同Cortex-M/R編譯器的發(fā)布形式一樣。

Android NDK編譯器

Android NDK編譯器,免費軟件,有兩種發(fā)布形式:其一是隨Android Studio發(fā)布,其二是單獨發(fā)布。Android NDK編譯器只能用于Android系統(tǒng)的NDK應用程序。


GNU for ARM編譯器

Cortex-A核一般用于復雜應用,通常都會搭載操作系統(tǒng)(Linux),所以ARM Cortex-A核的GNU編譯器從用途上可分為兩種:

  • 編譯裸機程序的編譯器

arm-none-eabi-gcc


  • 編譯操作系統(tǒng)上應用程序的編譯器

 arm-none-linux-gnueabihf-gcc


GNU for ARM編譯器

的命名規(guī)則

arch [-vendor] [-os] [-(gnu)eabi] [-gcc]


參數 含義
arch 體系架構,如 arm , aarch64 , mips
vendo 工具鏈提供商,沒有 vendor 時,用 none 代替
os 目標操作系統(tǒng),沒有 os 支持時,也用 none 代替
eabi 嵌入式應用二進制接口(Embedded Application Binary Interface)


如果同時沒有 vendor 和 os 支持,則只用一個 none 代替。以上就是關于ARM編譯器的介紹,下面我們來看看現在比較流行的Clang。
Clang For ARM

提到編譯器就不得不提Clang,Clang 是一個高度模塊化開發(fā)的輕量級編譯器前端,具有編譯速度快、占用內存小、錯誤提示友好等優(yōu)點,Clang的發(fā)展前景很好,現在很多地方已經在使用Clang。

現在ARM Compiler 6已經使用Clang作為編譯器前端了,在最新版的Keil中就能使用。

Android NDK從R11開始已經支持Clang,并建議用戶盡快切換到Clang。


Clang與GCC的關系

編譯器是一套軟件,一般分為編譯器前端和編譯器后端。


  • 編譯器前端:負責詞法分析、語法分析、語義分析和生成中間代碼。

  • 編譯器后端: 負責代碼優(yōu)化和生成目標程序。

我們通常說的GCC是一套完整的編譯器軟件,包括編譯器前端和后端。 而Clang只是一個編譯器前端,Clang由蘋果公司開發(fā),據說效率要比GCC高很多,Clang通常使用LLVM作為編譯器后端。


關于留言

微信公眾號現在已經關閉了留言功能,為方便大家學習交流,小編特意找到了這個留言小程序,增加了留言功能,雖沒有公眾號自帶的留言功能方便,但也不失為一個補救的辦法,希望能對大家有用。


 你點的每個贊,我都認真當成了喜歡


免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉