正点原子[第二期]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,一经查实,立即删除!

相关文章

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

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

electron ipcRenderer.invoke 和 ipcMain.handle 介绍

ipcMain.handle 是 Electron 主进程中的一个方法,用于处理从渲染进程发送过来的 IPC 请求,并返回一个 Promise。渲染进程可以使用 ipcRenderer.invoke 方法发送 IPC 请求到主进程,并等待主进程处理完成后返回结果。 在主进程中 (main.ts)&am…

Python构建学生信息管理系统:前端页面开发

Python构建学生信息管理系统:前端页面开发 在本系列博客的前几篇中,我们详细介绍了学生信息管理系统(SIMS)的需求分析、环境搭建、工程初始化、数据库设计、后端逻辑以及安全设计。在本文中,我们将专注于前端页面的开…

材质系统:关于PBR(Physically Based Rendering)需要知道的一些事

目录 前言 1. 什么是PBR? 2. 为什么PBR在近期开始流行 3. PBR材质与其他渲染器中材质(如Vray材质、Enscape中的材质)的区别是什么? 4. 为什么Vray之类的渲染器从一开始没有使用PBR材质系统? 前言 本文内容基于对图…

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…

python读取文件

定义: python提供了读取任何文件的一种方法,可以读取计算机磁盘中文件中的数据 前提: 1,得准备一个文件 2,读取文件: 方式一: 文件模式: r:只读(read) w:写入(write) a:添加(add) 文…

记录不熟悉的函数用法(C++)——insert

2. insert 记录起因:接上一篇的例子,不知道为什么使用insert进行插入之前要先执行clear操作,非得这么做吗?我可以认为这个clear操作是对应于为空字符串的,可是仍然纠结insert它具体插入的位置,在后面追加还…

Sentinel 与 Hystrix:云原生时代的故障隔离与服务降级

在面对高流量和复杂的分布式系统时,保障服务的稳定性和可用性是至关重要的。故障隔离和服务降级是两种常用的技术手段,用来保护系统在面临故障或压力过大时仍能稳定运行。在这方面,Sentinel 和 Hystrix 是两个广泛使用的库,它们虽…

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)之间交换路由信息。它…

WordPress外贸独立站如何提高询盘转化率

一、引言 在当今全球化日益加剧的商业环境中,外贸业务已成为众多企业寻求增长的重要途径。而WordPress作为一款强大且易于操作的建站平台,被广大外贸企业所青睐,用于构建自己的独立站。然而,仅仅拥有一个WordPress外贸独立站并不…

eCognition 分类

目录 前言 一、阈值分类 1、创建自定义特征 2、查看对象特征值 3、阈值分类 3.1 新建类别(如果已有类别即跳过) 3.2、建立分类阈值规则 4、导出分类结果 5、附录:如果需要合并结果、按以下步骤 二、监督分类 1、方法1:利用classification算法(主要用于最邻近)…

芯片安全(security)

芯片安全包括什么 芯片安全是为了防止芯片数据和程序遭遇非法攻击和访问等导致数据错误或者信息泄露或者非正常运行? 比如指纹信息被泄露;PC被植入非法挖矿程序;非法修改ddr中的数据等。 1.在子系统级别看到的axprot[1]和nsaid(non-securit…

sparkctl x86/arm不同平台编译使用

目录 1.sparkctl简介 2.环境准备 3.sparkctl编译 1.sparkctl简介 sparkctl是 Spark Operator 的一个命令行工具,用于创建、列出、检查状态、获取日志和删除SparkApplication。它还可以进行从本地端口到 Spark Web UI 端口的端口转发,以访问驱动程序上的 Spark Web UI。每个…

Python中实现多层感知机(MLP)的深度学习模型

深度学习已经成为机器学习领域的一个热门话题,而多层感知机(MLP)是最基础的深度学习模型之一。在这篇教程中,我将向你展示如何使用Python来实现一个简单的MLP模型。 什么是多层感知机(MLP)? 多…