正点原子[第二期]ARM(I.MX6U)裸机篇学习笔记-1.2

ops/2024/10/18 16:52:31/

前言:

本文是来自哔哩哔哩网站上视频“正点原子[第二期]Linux之ARM(MX6U)裸机篇”的学习笔记,在这里会记录下正点原子Linux ARM MX6ULL 开发板根据配套的哔哩哔哩学习视频所作的实验和笔记内容。本文大量的引用了正点原子哔哔哩网站的教学视频和链接中的内容。

引用:

正点原子IMX6U仓库 (GuangzhouXingyi) - Gitee.com

使用crosstool-ng制作交叉编译工具链-CSDN博客

Ubuntu系统下arm-linux-gcc交叉编译环境搭建过程_交叉编译环境的搭建-CSDN博客

嵌入式系统——交叉编译概念与环境搭建_交叉编译环境-CSDN博客


正文:

“正点原子[第二期]Linux之ARM(MX6U)裸机篇”第1.2 讲学习笔记,安装 ARM 交叉编译工具链。一般是在 x86 Ubuntu Linux 主机上编译给 ARM 开发板使用的镜像。在 x86 主机上编译出给 arm 开发板使用的可执行镜像,所以称为交叉编译。

ARM 交叉编译工具链,也成为了 toolchain ,ARM开发一般使用的是 Linaro 提供的已经已经预编译好的 x86 -arm 交叉编译工具链。访问 www.linaro.org 网站,可以下载需要的 x86-arm 交叉编译工具。

根据正点原子 Gitee 网站上提供的 I.MXU6LL 开发板的指导文档《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.5.2.pdf》

正点原子IMX6U仓库 (GuangzhouXingyi) - Gitee.com

在《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.5.2.pdf》文档里4.3.1 小结给出了下载 Linaro 交叉编译工具链的下载链接地址。

Linaro Releasesicon-default.png?t=N7T8https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/到该页面下载需要的Linaro ARM 交叉编译工具链,

有很多种 GCC 交叉编译工具链,因为我们所使用的 I.MX6U-ALPHA 开发板是一个 Cortex-A7 内核的开发板,因此选择 arm-linux-gnueabihf,点击后面的“Binaries”进入可执行文件下载界面。

在正点原子的《.MX6U嵌入式Linux驱动开发指南V1.5.2.pdf》文档里提到,当是正点原子测试时发现当时(2019年)最新的GCC编译器版本 gcc-7.3.1 工具链编译的uboot无法启动。

在写本教程的时候最新的编译器版本是 7.3.1,但是笔者在测试 7.3.1 版本编译器的时候发现编译完成后的 uboot 无法运行。所以这里不推荐使用最新版的编译器。笔者测试过 4.9 版本的编 译 器 可 以 正 常 工 作 , 所 以 我 们 需 要 下 载 4.9 版 本 的 编 译 器 , 下 载 地 址 为

因为我实在初学阶段,为了简单起见,直接参考 《.MX6U嵌入式Linux驱动开发指南V1.5.2.pdf》文档里的建议下载如下 gcc-4.9 版本的交叉编译工具链。

Linaro Releasesicon-default.png?t=N7T8https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/

根据你Ubuntu虚拟机的系统来选择需要再下载的版本,32位Ubuntu虚拟机选择名字中有i686的,64位Ubuntu虚拟机选择名字中有x86_64的。我安装的的是Virtualbox x86 32位 Ubuntu-14.04 虚拟机,所以我下载的是 'gcc-linaro-2017.01-i686-arm-linux-gnueabifh.tar.xz’,根据实际情况选择你需要的版本。鼠标右键复制链接地址,进入Ubuntu虚拟机,使用'wget'命令下载需要的gcc-4.9交叉编译工具链

##把xxx替换成需要下载文件URL链接地址
wget xxx

查看下下载下来的交叉编译工具链

dimon@dimon-VirtualBox:~/I.MX6U/tool$ ls -l
total 77984
-rw-rw-r-- 1 dimon dimon 79854508  2月 27  2018 gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf.tar.xz

解压下载的交叉编译工具链'tar -xf '

tar -xf gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf.tar.xz

将加压好的交叉编译链工具路径添加到Ubuntu Linux虚拟机的环境变量 ‘PATH’ 中,编辑用户目录下的 'sudo vi ~/.profile' 文件,在文件的尾部加上一行(根据你实际把编译工具链路径替换成你自己的路径)。

##编辑用户目录下的 .profile 文件
sudo vi ~/.profile

在文件的最后填上如下一句,把交叉编译工具链的路径添加了'PATH'环境变量中。

PATH=$PATH:/home/dimon/I.MX6U/tool/gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf/bin/

添加成功,退出保存文件修改。重新登录Ubuntu虚拟机,测试下对环境变量'PATH'的修改是否已经生效,执行命令'cat $PATH'确认下交叉编译工具链的路径已经添加到环境变零PATH中。

cat $PATH

测试执行下‘arm-linux-gnueabihf-gcc -v’ 命令可以执行成功,说明交叉编译环境已经配置好了。


http://www.ppmy.cn/ops/20791.html

相关文章

校车车载4G视频智能监控系统方案

一、项目背景 随着社会的快速发展,校车安全问题日益受到人们的关注。为了提高校车运营的安全性,保障学生的生命安全,我们提出了一套校车车载4G视频智能监控系统方案。该系统能够实时监控校车内部和外部环境,及时发现并处理潜在的…

交叉编译嵌入式openssl,关键是在config中指定编译器前缀

其实还是很顺利的。 下载 LINUX下载编译OpenSSL_linux下载 openssl-CSDN博客 编译 BUILD_LIBS${HOME}/build_libsCROSS_NAMEaarch64-mix210-linux export PATH/opt/linux/x86-arm/${CROSS_NAME}/bin:${PATH}make clean./config \--cross-compile-prefix${CROSS_NAME}- \no-…

在智慧城市的建设中智能车载监控录像机发挥什么作用

引言 随着科技的快速发展,智慧城市的概念逐渐深入人心。在智慧城市的建设中,智能车载监控录像机作为一种重要的技术工具,发挥着越来越重要的作用。本文将从多个方面探讨智能车载监控录像机在智慧城市建设中的作用。 一、智能车载监控录像机概…

spark3.0.0单机模式安装

注:此安装教程基于hadoop3集群版本 下载安装包 下载spark3.0.0版本,hadoop和spark版本要对应,否则会不兼容 用xftp上传Linux虚拟机,上传目录/bigdata(可修改) 解压 tar -zxvf /bigdata/spark-3.0.0-bin-h…

独立搭建UI自动化测试框架分享

今天给大家分享一个seleniumtestngmavenant的UI自动化,可以用于功能测试,也可按复杂的业务流程编写测试用例,今天此篇文章不过多讲解如何实现CI/CD,只讲解自己能独立搭建UI框架,如果有其他好的框架也可以联系我&#x…

c++中的__declspec(dllexport) 和 __declspec(dllimport)

c中的__declspec(dllexport) 和 __declspec(dllimport) 1. __declspec(dllimport) __declspec(dllimport) 是Microsoft Visual C特有的修饰符,用于声明在动态链接库(DLL)中定义的函数和变量,以便在另一个模块中使用。它告诉编译…

LeetCode题目74:搜索二维矩阵

作者介绍:10年大厂数据\经营分析经验,现任大厂数据部门负责人。 会一些的技术:数据分析、算法、SQL、大数据相关、python 欢迎加入社区:码上找工作 作者专栏每日更新: LeetCode解锁1000题: 打怪升级之旅 python数据分析…

C#访问关键字this和base有什么作用

在C#中,关键字 this 和 base 分别用于引用当前实例和基类实例的成员。它们的作用如下: this 关键字: this 关键字用于引用当前实例的成员,包括字段、方法和属性。 当类的成员与局部变量同名时,可以使用 this 关键字来…