国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

arm系列交叉編譯器各版本區(qū)別

這篇具有很好參考價值的文章主要介紹了arm系列交叉編譯器各版本區(qū)別。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

交叉編譯器命名規(guī)則

交叉編譯器的命名規(guī)則:arch [-vendor] [-os] [-(gnu)eabi] [-language]

  • arch - 體系架構(gòu), 如arm(ARM-32bit)、aarch64(ARM-64bit)、x86等;
  • vendor -工具鏈提供商,經(jīng)常省略,或用 none 替代;
  • os - 目標(biāo)操作系統(tǒng), 如linux,沒針對具體 os 則 用 none 替代。同時沒有 vendor 和os 使用一個 none 替代。
  • eabi - 嵌入式應(yīng)用二進(jìn)制接口(Embedded Application binary Interface)
  • language - 編譯語言,如gcc,g++

具體編譯器舉例

crosstool-ng交叉編譯工具樣本

制作交叉編譯工具鏈的 crosstool-ng 官網(wǎng)上就列出很多交叉編譯工具樣本,都是按以上命名規(guī)則命名的。

aarch64-ol7u9-linux-gnu
aarch64-ol8u6-linux-gnu
aarch64-ol8u7-linux-gnu
aarch64-rpi3-linux-gnu
aarch64-rpi4-linux-gnu
aarch64-unknown-linux-gnu
aarch64-unknown-linux-uclibc
arm-bare_newlib_cortex_m3_nommu-eabi
arm-cortex_a15-linux-gnueabihf
arm-cortexa5-linux-uclibcgnueabihf
arm-cortex_a8-linux-gnueabi
arm-cortexa9_neon-linux-gnueabihf
arm-multilib-linux-uclibcgnueabi
arm-nano-eabi
arm-none-eabi
arm-ol7u9-linux-gnueabi
arm-ol7u9-linux-gnueabihf
arm-picolibc-eabi
arm-unknown-eabi
arm-unknown-linux-gnueabi
arm-unknown-linux-musleabi
arm-unknown-linux-uclibcgnueabi
arm-unknown-linux-uclibcgnueabihf
x86_64-centos7-linux-gnu
x86_64-multilib-linux-gnu
x86_64-multilib-linux-musl
x86_64-multilib-linux-uclibc
x86_64-multilib-linux-uclibc,moxie-unknown-moxiebox
x86_64-multilib-linux-uclibc,powerpc-unknown-elf
x86_64-ol8u6-linux-gnu
x86_64-ol8u7-linux-gnu
x86_64-pc-linux-gnu,arm-picolibc-eabi
x86_64-ubuntu14.04-linux-gnu
x86_64-ubuntu16.04-linux-gnu
x86_64-unknown-linux-gnu
x86_64-unknown-linux-uclibc
x86_64-w64-mingw32
x86_64-w64-mingw32,arm-cortexa9_neon-linux-gnueabihf
x86_64-w64-mingw32,x86_64-pc-linux-gnu

arm交叉編譯器舉例

  • arm-none-eabi-gcc

ARM architecture,no vendor,not target an operating system,complies with the ARM EABI(ARM 程序接口)

用于編譯 ARM 架構(gòu)的裸機(jī)系統(tǒng)(包括 ARM Linux 的 boot、kernel,不適用編譯 Linux 應(yīng)用 Application),一般用于ARM MCU系列芯片,如 ARM7、Cortex-M 和 Cortex-R ,沒有操作系統(tǒng),不支持那些跟操作系統(tǒng)關(guān)系密切的函數(shù),它使用的是newlib 這個專用于嵌入式系統(tǒng)的C庫,安裝方法:

sudo apt-get install gcc-arm-none-eabi
  • arm-linux-gnueabi-gcc

ARM architecture, creates binaries that run on the Linux operating system, and uses the GNU EABI (GUN 程序接口)

也叫 arm-none-linux-gnueabi-gcc,因為一開始是沒有發(fā)行商的,目前由Linaro 公司發(fā)行,一般用于 ARM9、ARM11、Arm Cortex-A 系列芯片,帶有 Linux 操作系統(tǒng)。前者針對 32 位芯片,后者針對 64 位芯片,使用的是glibc庫。可用于交叉編譯ARM系統(tǒng)中所有環(huán)節(jié)的代碼,包括裸機(jī)程序、u-boot、Linux kernel、filesystem和App應(yīng)用程序,安裝方法:

sudo apt-get install gcc-arm-linux-gnueabi
  • arm-linux-gnueabihf-gcc

和 arm-linux-gnueabi-gcc 區(qū)別不過是 gcc 的選項 -mfloat-abi 的默認(rèn)值不同,即浮點數(shù)處理上的不同,詳見后文解答。
? aarch64-none-linux-gnu-gcc

是arm-linux-gnueabi-gcc和arm-linux-gnueabihf-gcc的ARM-64bit版本。

  • arm-eabi-gcc

Android ARM 編譯器。

  • arm-none-uclinuxeabi-gcc

用于uCLinux,使用glibc。

  • arm-none-symbianelf-gcc

用于symbian。

幾個概念

ABI與EABI

ABI:二進(jìn)制應(yīng)用程序接口(Application Binary Interface)。在計算機(jī)中,應(yīng)用二進(jìn)制接口描述了應(yīng)用程序(或者其他類型)和操作系統(tǒng)之間或其他應(yīng)用程序的低級接口;

EABI:即嵌入式ABI,應(yīng)用于嵌入式系統(tǒng)的二進(jìn)制應(yīng)用程序接口(Embeded Application Binary Interface)。

兩者主要區(qū)別是,ABI是計算機(jī)上的,EABI是嵌入式平臺上(如ARM,MIPS等)。

gnueabi與gnueabihf

gcc-arm-linux-gnueabi – The GNU C compiler for armel architecture
gcc-arm-linux-gnueabihf – The GNU C compiler for armhf architecture

這兩個交叉編譯器適用于armel和armhf兩個不同的架構(gòu),armel和armhf這兩種架構(gòu)在對待浮點運算采取了不同的策略(有fpu的arm才能支持這兩種浮點運算策略)。

其實這兩個交叉編譯器只不過是gcc的選項-mfloat-abi的默認(rèn)值不同。gcc的選項-mfloat-abi有三種值soft、softfp、hard(其中后兩者都要求arm里有fpu浮點運算單元,soft與后兩者是兼容的,但softfp和hard兩種模式互不兼容):

soft:不用fpu進(jìn)行浮點計算,即使有fpu浮點運算單元也不用,而是使用軟件模式。

softfp:armel架構(gòu)(對應(yīng)的編譯器為gcc-arm-linux-gnueabi)采用的默認(rèn)值,用fpu計算,但是傳參數(shù)用普通寄存器傳,這樣中斷的時候,只需要保存普通寄存器,中斷負(fù)荷小,但是參數(shù)需要轉(zhuǎn)換成浮點的再計算。

hard:armhf架構(gòu)(對應(yīng)的編譯器gcc-arm-linux-gnueabihf)采用的默認(rèn)值,用fpu計算,傳參數(shù)也用fpu中的浮點寄存器傳,省去了轉(zhuǎn)換,性能最好,但是中斷負(fù)荷高。文章來源地址http://www.zghlxwxcb.cn/news/detail-788799.html

參考

  • ARM 交叉編譯器命名規(guī)則
  • ARM 交叉編譯工具鏈

到了這里,關(guān)于arm系列交叉編譯器各版本區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • [linux]Ubuntu 18.04安裝arm-linux-gcc交叉編譯器的兩種方法

    [linux]Ubuntu 18.04安裝arm-linux-gcc交叉編譯器的兩種方法

    第一種:apt安裝法: Ctrl+Alt+T彈出終端,使用如下命令進(jìn)行arm-linux-gcc的安裝: ??使用如下命令進(jìn)行arm-linux-g++的安裝: ??如果要卸載時使用如下命令進(jìn)行移除,arm-linux-gcc的卸載: ??arm-linux-g++的卸載: ?第二種源碼安裝: 目前網(wǎng)上搜索發(fā)現(xiàn),最多人安裝的是4.4.3版本的

    2024年02月05日
    瀏覽(24)
  • ARM 編譯器 Arm Compiler for Embedded 6 相關(guān)工具鏈簡介

    ARM 編譯器 Arm Compiler for Embedded 6 相關(guān)工具鏈簡介

    目錄 1, Introduction to Arm? Compiler 6 1.1 armclang 1.2 armasm 1.3 armlink 1.4 armar 1.5 fromelf 1.6?Arm C++ libraries 1.7?Arm C libraries 1,8?Application development ,ARM程序開發(fā)流程 2,ARM 編譯器 5和ARM 編譯器 6的兼容性 3,ARM編譯器相關(guān)鏈接 Arm Compiler 6 是 Arm 中用于 Arm Cortex? 和 Arm Neoverse? 處理器的最先

    2023年04月12日
    瀏覽(17)
  • 交叉編譯器介紹

    簡介 ? 要在 X86 的電腦上編譯出能夠在 Arm 上運行的程序,我們必須明確告訴編譯器,編譯生成的可執(zhí)行文件需要以 Arm 指令集的標(biāo)準(zhǔn)編碼。開發(fā)者們?yōu)椴煌男酒_發(fā)了不同的編譯器,比如針對 Arm 平臺的 arm-linux-gcc,針對 mips 平臺的 mips-linux-gnu-gcc,這些編譯器都是基于 G

    2024年02月06日
    瀏覽(32)
  • riscv-gnu-toolchain 交叉編譯器如何構(gòu)建?

    這個指令在編譯完成后會自動安裝到“/opt/riscv/gcc”目錄,由于要操作“/opt/riscv/gcc”目錄需要超級管理員權(quán)限,所以我們要記得加上 sudo 切換到“/opt/riscv/gcc/bin”目錄下,執(zhí)行如下指令 看是否有riscv64-unknown-elf-gcc版本信息

    2024年04月22日
    瀏覽(28)
  • [筆記]ARMv7/ARMv8 交叉編譯器下載

    [筆記]ARMv7/ARMv8 交叉編譯器下載

    開發(fā) Cortex-A7、Cortex-A72 或其他 ARM 架構(gòu) profile 芯片時,經(jīng)常需要下載對應(yīng)架構(gòu)的交叉編譯器,所以寫這篇筆記,用于記錄一下交叉編譯器下載流程,免得搞忘。 編譯環(huán)境:ubuntu 虛擬機(jī) 下載地址 我們可以從 ARM 官網(wǎng)的 Arm Developer下載交叉編譯器,這個網(wǎng)站也包含幾乎所有的 A

    2024年02月02日
    瀏覽(33)
  • ARM嵌入式編譯器編譯優(yōu)化選項 -O

    Arm嵌入式編譯器可以執(zhí)行一些優(yōu)化來減少代碼量并提高應(yīng)用程序的性能。不同的優(yōu)化級別有不同的優(yōu)化目標(biāo),不僅如此,針對某個目標(biāo)進(jìn)行優(yōu)化會對其他目標(biāo)產(chǎn)生影響。比如想減小生成的代碼量,勢必會影響到該代碼的性能。所以優(yōu)化級別總是這些不同目標(biāo)(代碼量,程序性

    2024年02月16日
    瀏覽(22)
  • ARM編譯器5.06下載安裝

    ARM編譯器5.06下載安裝

    進(jìn)入官方網(wǎng)站ARM Complier v5.06官網(wǎng)下載頁面 進(jìn)入后的界面為 往下翻,找到如圖位置的5.06 for windows的文件,點擊下載,下載時需要登錄賬號 先解壓下載的壓縮文件,在installer文件夾里面有一個 setup.exe 文件,雙擊它, 同意協(xié)議,在安裝位置選擇 keil 安裝位置的 ARM 文件夾下,在

    2024年02月22日
    瀏覽(25)
  • KEIL MDK arm編譯器 添加教程

    KEIL MDK arm編譯器 添加教程

    1.下載編譯器安裝文件 arm編譯器6.16(適用于windows 64位)安裝文件可在如下網(wǎng)址免費下載: arm編譯器6.16(適用于Windows64位)-嵌入式文檔類資源-CSDN文庫 https://download.csdn.net/download/WG_IECAS/87342708 如需其他版本編譯器,可到KEIL官網(wǎng)查找下載,快速網(wǎng)址: Arm Compiler downloads index h

    2023年04月08日
    瀏覽(26)
  • 物聯(lián)網(wǎng)|ARM|Keil同時安裝Keil的C51、C251和MDK|增加V5編譯器|物聯(lián)網(wǎng)開發(fā)系列課程之零基礎(chǔ)玩轉(zhuǎn)Cortex-M系列CPU-學(xué)習(xí)筆記(1)

    物聯(lián)網(wǎng)|ARM|Keil同時安裝Keil的C51、C251和MDK|增加V5編譯器|物聯(lián)網(wǎng)開發(fā)系列課程之零基礎(chǔ)玩轉(zhuǎn)Cortex-M系列CPU-學(xué)習(xí)筆記(1)

    1.物聯(lián)網(wǎng)的定義 利用局部網(wǎng)絡(luò)或互聯(lián)網(wǎng)等通信技術(shù)把傳感器、控制器、機(jī)器、人員和物等通過新的方式聯(lián)在一起,形成人與物、物與物相聯(lián),實現(xiàn)信息化、遠(yuǎn)程管理控制和智能化的網(wǎng)絡(luò)。 2.物聯(lián)網(wǎng)的組成 3.物聯(lián)網(wǎng)應(yīng)用舉例智能家居 1物聯(lián)網(wǎng)的數(shù)據(jù)源頭 2物聯(lián)的局域網(wǎng)絡(luò)源頭 1

    2024年02月05日
    瀏覽(28)
  • C++輸出編譯器名稱和版本以及編譯器位數(shù)、C/C++常見編譯器

    C++輸出編譯器名稱和版本以及編譯器位數(shù)、C/C++常見編譯器

    常見的C/C++編譯器主要包括以下幾種: GCC (GNU Compiler Collection):GCC是一個廣泛使用的編譯器套件,支持多種編程語言,包括C、C++、Objective-C等。它具有強(qiáng)大的優(yōu)化能力和跨平臺支持,并且被廣泛應(yīng)用于各種操作系統(tǒng)和開發(fā)環(huán)境。 Clang :Clang是基于LLVM的編譯器前端,支持C、

    2024年02月13日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包