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

前言:

本文是来自哔哩哔哩网站上视频“正点原子[第二期]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.mzph.cn/news/829691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

结构体内存对齐(未完成版)

前言 我们已经掌握了结构体的基本使用了。 现在我们深入讨论一个问题:计算机构体的大小。 这也是一个特别热门的考点:结构体内存对齐 练习导入 对齐规则

vue项目npm run build 打包之后如何在本地访问

vue项目npm run build 打包之后如何在本地访问 如果直接访问时,则会报错如下的信息: 报错码: Access to script at file:///D:/assets/index-DDVBfHVo.js from origin null has been blocked by CORS policy: Cross origin requests are on…

【转载】如何在MacBookPro上把Ubuntu安装到移动硬盘里过程记录

以下主要目的是记录安装过程中的问题,安装步骤等信息怕忘记 环境信息: Mac :macOS High Sierra 10.13.6 内存8G(Swap时用到) Ubuntu: ubuntu-22.04.4-desktop-amd64.ios 金士顿U盘:Kingston-64G 烧录软件:balenaEtcher…

牛客NC371 验证回文字符串(二)【简单 双指针 C++/Java/Go/PHP】

题目 题目链接: https://www.nowcoder.com/practice/130e1a9eb88942239b66e53ec6e53f51 思路 直接看答案,不难参考答案C class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可…

Atlassian Jira 信息泄露漏洞(CVE-2019-3403) 排查思路

Atlassian Jira: 企业广泛使用的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。 简述: 近日发现多个内网IP触发的Atlassian Jira 信息泄露漏洞的告警。 告警的检测规…

openvoice v2 声音克隆使用案例

参考: https://github.com/myshell-ai/OpenVoice/blob/main/docs/USAGE.md https://www.wehelpwin.com/article/4940 安装 1)下载OpenVoice项目安装 2)MeloTTS安装 参考:https://blog.csdn.net/weixin_42357472/article/details/136320097 pip install git+https://gith…

2398.预算内最多的机器人数目

我第一个手搓的hard的单调队列题目......灵神yyds 思路解析: 我做的时候感觉这个题目有点歧义,我以为他的连续运行是时间上连续,所以我开始写的代码是选择最多的子序列(可以不连续),使得不超过budget,这个求最多子序列的代码会在最后给出,不保证完全正确(因为没有太多测试点),…

element-ui et -i 编译默认主题报错:ReferenceError: primordials is not defined

报错信息如下 fs.js:40 } primordials;^ ReferenceError: primordials is not defined导致这个问题的原因:node和gulp版本冲突!! 我使用的是node 14版本 解决方法: 看了好几个帖子,都推荐使用node 11.15.0版本&am…

华为ensp中BGP(边界网关协议)基础原理及配置命令

作者主页:点击! ENSP专栏:点击! 创作时间:2024年4月27日10点04分 BGP(边界网关协议)是一种路由协议,用于在互联网中的不同自治系统(AS)之间交换路由信息。它…

浅谈操作系统中的重要概念——线程

文章目录 一、进程概念产生的原因二、进程的弊端三、线程3.1、线程复用结构体PCB3.2、多线程弊端3.2.1、拖慢程序的效率3.2.2、产生线程安全问题3.2.3、导致整个进程终止 3.3、怎么判断一个线程是否执行完毕??3.4、怎么终止一个线程?&#xf…

【学习笔记二十八】EWM和QM集成的后台配置和前台展示

一、EWM和QM集成概述 SAP EWM(扩展仓库管理)和QM(质量管理)的集成是SAP系统中一个重要的特性,它允许企业在仓库管理过程中实现质量控制和检验流程的自动化。以下是关于EWM和QM集成的一些关键点概述: 集成优势:通过集成,企业可以确保仓库中的物料在收货、存储、…

csdn的复制代码功能如何实现

页面布局分析&#xff1a; 按钮在文本框里面&#xff0c;所以文本框是父元素&#xff0c;按钮是子元素。要使得按钮在文本框的右上角&#xff0c;需要使用绝对定位。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8">…

实现ALV页眉页脚

1、文档介绍 在ALV中&#xff0c;可以通过增加页眉和页脚&#xff0c;丰富ALV的展示。除了基本的页眉和页脚&#xff0c;还可以通过插入HTML代码的方式展示更加丰富的页眉和页脚&#xff0c;本篇文章将介绍ALV和OOALV中页眉页脚的使用。 2、ALV页眉页脚 效果如下 2.1、显示内…

长图高效切割新体验:支持按随机宽度灵活裁切,释放无限创意与效率

图像的传播已经成为我们日常生活的一部分。而长图&#xff0c;作为一种特殊的图像形式&#xff0c;其独特的展示方式能够吸引更多的目光。但是&#xff0c;如何将长图高效切割&#xff0c;以展现其独特的魅力呢&#xff1f;现在&#xff0c;我们为您带来了一款支持按随机宽度切…

怎么找回录音文件?这4个方法实用又简单!

“我有一份比较重要的录音文件保存在电脑上了&#xff0c;不知道是因为误删还是什么原因&#xff0c;这个文件丢失了&#xff0c;我现在有什么比较好的方法可以找回这个文件吗&#xff1f;” 录音文件是我们日常生活中经常使用的文件类型&#xff0c;无论是会议记录、学习笔记还…

论机器学习(ML)在网络安全中的重要性

机器学习是什么&#xff1f; 机器学习(ML)是人工智能的一个分支&#xff0c;它使用算法来使计算机系统能够自动地从数据和经验中进行学习&#xff0c;并改进其性能&#xff0c;而无需进行明确的编程。机器学习涉及对大量数据的分析&#xff0c;通过识别数据中的模式来做出预测…

MySQL/MariaDB 如何查看当前的用户

MySQL 的所有数据库用户信息是存储在 user 数据表中的。 可以在登录成功数据后运行 SQL&#xff1a; MariaDB [(none)]> select user,host from user;就可以查看到数据中的所有用户信息。 MariaDB [(none)]> select user,host from user; ERROR 1046 (3D000): No databa…

数据集笔记:geolife staypoint聚合的location 最近的10个其他location

数据集&#xff1a;处理geolife数据-CSDN博客 这边的stations&#xff0c;找到每个station 最近的其他10个station 1 读取数据 假设已经读完了&#xff0c;就是locations 2 保留有用的列 locations.drop([center,user_id],axis1,inplaceTrue) locations 3 加载几何形状 使用…

27 - 数据传送指令

---- 整理自B站UP主 踌躇月光 的视频 文章目录 1. CPU 电路2. 数据传送指令的几种情况3. 实验工程4. 实验结果 1. CPU 电路 2. 数据传送指令的几种情况 # program.asm; 1. ; MOV A, 5;; 2. ; MOV A, B;; 3. ; MOV A, [5];; 4. ; MOV B, 6 ; MOV A, [B]; 5. ; MOV [0x2f], 5;; …

Zynq 7000 系列中成功执行BootROM的条件

Zynq 7000设备的启动需要正确的电压序列和I/O引脚控制。BootROM的流程由复位类型、启动模式引脚设置以及启动映像来控制。BootROM对所选启动设备的引脚连接有特定的要求。 Zynq 7000 SoC设备具有电源、时钟和复位要求&#xff0c;这些要求必须得到满足&#xff0c;才能成功执行…