LV02-01-交叉编译工具链

本文主要是交叉编译工具链的相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。

点击查看使用工具及版本
PC端开发环境 Windows Windows11
Ubuntu Ubuntu20.04.6的64位版本(一开始使用的是16.04版本,后来进行了升级)
VMware® Workstation 17 Pro 17.0.0 build-20800274
终端软件 MobaXterm(Professional Edition v23.0 Build 5042 (license))
Win32DiskImager Win32DiskImager v1.0
Linux开发板环境 Linux开发板 正点原子 i.MX6ULL Linux 阿尔法开发板
uboot NXP官方提供的uboot,NXP提供的版本为uboot-imx-rel_imx_4.1.15_2.1.0_ga(使用的uboot版本为U-Boot 2016.03)
linux内核 linux-4.15(NXP官方提供)
点击查看本文参考资料
分类 网址 说明
官方网站 https://www.arm.com/ ARM官方网站,在这里我们可以找到Cotex-Mx以及ARMVx的一些文档
https://www.nxp.com.cn/ NXP官方网站
https://www.nxpic.org.cn/NXP 官方社区
https://u-boot.readthedocs.io/en/latest/u-boot官网
https://www.kernel.org/linux内核官网
点击查看相关文件下载
分类 网址 说明
NXP https://github.com/nxp-imx NXP imx开发资源GitHub组织,里边会有u-boot和linux内核的仓库
https://elixir.bootlin.com/linux/latest/source 在线阅读linux kernel源码
nxp-imx/linux-imx/releases/tag/rel_imx_4.1.15_2.1.0_ga NXP linux内核仓库tags中的rel_imx_4.1.15_2.1.0_ga
nxp-imx/uboot-imx/releases/tag/rel_imx_4.1.15_2.1.0_ga NXP u-boot仓库tags中的rel_imx_4.1.15_2.1.0_ga
I.MX6ULL i.MX 6ULL Applications Processors for Industrial Products I.MX6ULL 芯片手册(datasheet,可以在线查看)
i.MX 6ULL Applications ProcessorReference Manual I.MX6ULL 参考手册(下载后才能查看,需要登录NXP官网)

一、交叉编译工具简介

什么是交叉编译器?Ubuntu中安装使用的 GCC编译器是针对 X86架构的。而我们现在要编译的是 ARM架构的代码,所 以我们需要一个在 X86架构的 PC上运行,可以编译 ARM架构代码的 GCC编译器,这个编译器就叫做交叉编译器。

在这里,我使用的是开发板配套教程中Linaro出品的交叉编译器,而作为初学者的我,还是先跟教程走吧,哈哈。所以我使用的就是4.9版本的编译器啦。相关网址如下:

linaro官网 https://www.linaro.org/
4.9版本交叉编译器 gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

二、安装交叉编译工具链

1. 下载软件包

可以在下边的地址中下载4.9.4版本的交叉编译工具软件包,当然自己也可以使用更高版本啦,我是为了跟教程一致,才用的老版本,以后会玩了,可能就换新了:

1
https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/
image-20220512190533043

下载完毕后,拷贝到自己Ubuntu的一个目录中:

1
cp 2Sharedfiles/3Software/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz ~/1Software/

然后进入目录,并解压:

1
2
cd ~/1Software/
tar -xvf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

2. 安装交叉编译器

  • (1)新建存放交叉编译工具的文件夹
1
2
sudo mkdir /usr/local/arm
sudo cp -r ~/1Software/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf /usr/local/arm
  • (2)添加环境变量
1
2
3
4
5
6
7
8
# 1.打开相应文件
sudo vim /etc/profile

# 2.文件结尾添加以下内容
export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin

# 3.重启设备,使环境变量生效(最好重启下吧)
reboot
  • (3)安装相关的库(虽然写笔记的时候还不知道有啥用)
1
sudo apt-get install lsb-core lib32stdc++6

这个库安装的时间还是有点久的。

  • (4)验证是否成功安装交叉编译工具
1
arm-linux-gnueabihf-gcc -v

若成功,则会显示交叉编译工具的版本,如下图所示:

image-20220512191620321