失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【linux系统如何安装arm交叉编译工具链】

【linux系统如何安装arm交叉编译工具链】

时间:2022-10-07 01:38:44

相关推荐

【linux系统如何安装arm交叉编译工具链】

文章目录

前言一、arm交叉编译器介绍命名规则具体编译器二、Arm GNU Toolchain安装总结

前言

本文简要介绍arm交叉编译器及工具链的安装方法

一、arm交叉编译器介绍

命名规则

交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi]

arch- cpu体系架构,如ARM,MIPS

verdor- 工具链提供商

os- 目标操作系统

eabi- 嵌入式应用二进制接口(Embedded Application Binary Interface (ABI) )

具体编译器

arm-none-eabi-gcc

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

用于编译 ARM 架构的裸机系统(包括 ARM Linux 的 boot、kernel)他使用的是

newlib 这个专用于嵌入式系统的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,因为一开始是没有发行商的,目前由Linaro 公司发行(Linaro 则是由ARM、飞思卡尔、IBM、Samsung、ST-Ericsson和TI等厂商联合,为开发不同半导体公司系统单芯片(SoC)平台的共通软件的一个非盈利公司),使用glibc,可用于交叉编译ARM系统中所有环节的代码,包括裸机程序、u-boot、Linux kernel、filesystem和App应用程序,

安装方法:

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

arm-linux-gnueabihf-gcc

和 arm-linux-gnueabi-gcc 区别不过是 gcc 的选项 -mfloat-abi 的默认值不同,即浮点数处理上的不同

-mfloat-abi 有三种值:

soft: 不用fpu进行浮点计算,即使有fpu浮点运算单元也不用,而是使用软件模式

softfp: armel架构(对应的编译器为 arm-linux-gnueabi-gcc )采用的默认值,用fpu计算,但是传参数用普通寄存器传,这样中断的时候,只需要保存普通寄存器,中断负荷小,但是参数需要转换成浮点的再计算。

hard: armhf架构(对应的编译器 arm-linux-gnueabihf-gcc )采用的默认值,用fpu计算,传参数也用fpu中的浮点寄存器传,省去了转换,性能最好,但是中断负荷高。

arm-eabi-gcc

Android ARM 编译器

armcc

ARM 公司推出的编译工具,功能和 arm-none-eabi-gcc 类似,可以编译裸机程序(u-boot、kernel),但是不能编译 Linux 应用程序

arm-none-uclinuxeabi-gcc

arm-none-uclinuxeabi 用于uCLinux,使用Glibc

arm-none-symbianelf-gcc

用于symbian。

二、Arm GNU Toolchain安装

安装步骤如下:

1.下载工具链的压缩包,下载路径如下:

压缩包下载路径

选择你的主机cpu架构对应的工具链压缩包

下图是支持的不同主机cpu架构的列表

比如我的主机cpu架构是x86_64,我编译的目标对象是基于arm架构的linux系统,那么我就可以选择下载下图中的这个包:

2.下载压缩包后,把它放到linux系统的某一个目录下(比如/tmp目录下)

3.新建一个目录,用来存放解压后的文件,如下所示:

sudo mkdir /usr/local/arm_toolchain/

4.解压压缩包,解压到新建目录下(/usr/local/arm_toolchain/),如下所示:

sudo tar -xvf gcc-arm-11.2-.02-x86_64-arm-none-linux-gnueabihf.tar -C /usr/local/arm_toolchain/

5.创建软链接或者配置环境变量(见下面第6步)(目的是编译时找到这个可执行程序)

sudo ln -s /usr/local/arm_toolchain/gcc-arm-11.2-.02-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc /usr/local/bin/arm-none-linux-gcc

6.配置环境变量(可参考下面两种方法)

方法一:修改/etc/bash.bashrc文件

sudo gedit /etc/bash.bashrc

在最后加上

export PATH=$PATH:/usr/local/arm_toolchain/gcc-arm-11.2-.02-x86_64-arm-none-linux-gnueabihf/bin/

然后更新一下:

source /root/.bashrc或者./etc/bash.bashrc

方法二:修改/etc/profile文件

sudo gedit /etc/profile

增加路径设置,在末尾添加如下:

export PATH=$PATH:usr/local/arm_toolchain/gcc-arm-11.2-.02-x86_64-arm-none-linux-gnueabihf/bin/

然后更新一下:

source /etc/profile

7.测试是否安装成功

打开一个终端,输入“arm-none-linux-gcc -v”,如果打印出下列信息,则表示已安装成功。

总结

以上就是今天要讲的内容,本文简单介绍了交叉编译器的类型和arm交叉编译工具链的安装方法,仅供参考。

如果觉得《【linux系统如何安装arm交叉编译工具链】》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。