【linux-IMX6ULL-uboot初次编译及烧录

目录

  • 1. uboot基本概念
    • 1. 1 uboot的编译
  • 3. uboot的烧录
  • 2. uboot的烧录结果

第一次不进行原理性的探究,也不关注源码内容,只是进行一个直观的了解,对uboot进行初次编译并进烧录到IMX6ULL板卡中

1. uboot基本概念

U-Boot(Universal Boot Loader)是一种广泛使用的引导加载程序,就相当于大型的综合的裸机程序代码,不过这个代码的目的是引导芯片加载操作系统,等操作系统加载完毕后这个uboot程序就会自动关闭,也就是寿终正寝。一般获取它的方式就是从官网获得,或者从对应的而芯片厂商获得对应的uboot,这些芯片厂商会对uboot进行裁剪成适合他们芯片的形式;

  • 引导加载:主要负责初始化硬件设备,建立内存空间映射,为操作系统内核准备好运行环境,进而引导操作系统启动。
  • 支持多种架构:可以在不同的硬件平台如 ARM、PowerPC 等上运行。
  • 可定制性强:能根据具体需求进行配置和修改,添加对特定硬件的支持等。
  • 命令行界面:提供了一个简单的命令行操作界面,方便用户进行各种操作和设置。
  • 启动选项:可以灵活设置不同的启动方式、参数等。
  • 系统初始化:在引导操作系统之前,完成一些必要的硬件初始化工作。

1. 1 uboot的编译

  这里拿正点原子的IMX6ULL来讲,对uboot源码进行初次编译,并把生成的bin文件下载进IMX6ULL板卡中,对其编译要用到其源码,这里采用正点原子资料包中的uboot的压缩包:自己创建一个新的文件夹,并把这个压缩包放到新建目录下,对其进行解压缩操作;

并运行命令:

  • tar -vxjf uboot-imx-2016.03-2.1.0-g0ae7e33-v1.7.tar.bz2:tar解压缩

解压完毕如下图:

在这里插入图片描述

然后运行下面三条命令对uboot源码进行编译:注意不要打错命令和字母,例如COMPILE打成COMPLIE

  1. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean:这是一条在特定环境下执行的 Make 命令。
  • ARCH=arm:指定了目标架构为 ARM。
  • CROSS_COMPILE=arm-linux-gnueabihf-:表示使用特定的交叉编译工具链前缀,这里是针对 ARM 的 arm-linux-gnueabihf-,用于进行交叉编译。
  • distclean:是 Makefile 中的一个目标,执行这个目标通常会清理掉所有生成的中间文件、目标文件等,将整个项目恢复到较为干净的初始状态。
  1. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf mx6ull_14x14_ddr512_emmc_defconfig:这是一条在特定环境下执行的 Make 命令。
  • ARCH=arm:再次明确目标体系结构为 arm。
  • CROSS_COMPILE=arm-linux-gnueabihf-:指定交叉编译工具链前缀。
  • mx6ull_14x14_ddr512_emmc_defconfig:这是一个特定的配置选项,它会根据这个配置文件来对编译过程进行相关设置,比如针对特定的硬件平台(mx6ull)以及其具体的硬件参数(14x14 尺寸、ddr512 内存、emmc 存储等相关特性)进行针对性的编译配置。通过这种方式可以灵活地适应不同的硬件环境和需求。
  1. make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j14:以下是对这条命令的解释:
  • V=1:表示显示详细的编译过程信息。
  • ARCH=arm:指定目标架构是 arm。
  • CROSS_COMPILE=arm-linux-gnueabihf-:表明使用特定的 arm 交叉编译工具链前缀。
  • -j14:表示使用 14 个线程来并发执行编译任务,以提高编译速度。

3. uboot的烧录

  这里使用USB-OTG进行烧录,因为编译uboot生成的文件本质也是bin文件,因此对其烧录可以采用裸机编程中用到的uu烧录工具,只要在Makefile文件中添加几行命令就行,首先是开发板要使用USB-OTG启动,然后就是把header文件拷贝到工程目录下,然后在makefile最后一行加上如下图的语句,最后就是在命令终端运行make run的指令,这样就能实现单独的uboot文件的烧录,速度非常的快,几乎一秒下载;相关的烧录工具的安装可以参考这篇文章:链接

在这里插入图片描述

2. uboot的烧录结果

  ·在终端直接运行:make run命令后,就会实现bin文件的烧录;

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/623172.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设计循环队列-C语言实现

题目描述 设计循环队列 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前用过的…

FPGA verilog LVDS通信协议笔记

一幅图胜过千言万语 直接开始挫代码,先写top.v。 module top();reg clk; // 生成时钟的寄存器 reg rst; // 生成复位信号的寄存器initial clk 1; // 初始值取1 always #1 clk ~clk; //1ns取反一次initial begin // 复位信号,先0,过段时间赋…

ORA-00932: inconsistent datatypes: expected - got CLOB的分析解决方案

最近在项目中遇到查询数据时报ORA-00932: inconsistent datatypes: expected - got CLOB错误,这个错误很明显是由于查询时类型的不匹配造成的。 问题分析: 一、检查你的查询的实体的类型是否于数据库的保持一致,如果不一致,那么需…

Rumor Remove Order Strategy on Social Networks

ABSTRACT 谣言被定义为广泛传播且没有可靠来源支持的言论。现代社会,谣言在社交网络上广泛传播。谣言的传播给社会带来了巨大的挑战。 “假新闻”故事可能会激怒您的情绪并改变您的情绪。有些谣言甚至会造成社会恐慌和经济损失。因此,谣言的影响可能是深…

Redis-数据过期策略

文章目录 Redis数据持久化策略的作用是什么?Redis的数据过期策略有哪些?惰性删除定期删除 更多相关内容可查看 Redis数据持久化策略的作用是什么? Redis数据过期策略是指在Redis中设置数据的过期时间,并在数据过期时自动从数据库…

【JavaScript超详细的学习笔记-上】JavaScrip超详细的学习笔记,共27部分,12多万字

想要获取笔记的可以点击下面链接获取 JavaScript超详细的学习笔记,点击我获取 一,JavaScript详细笔记 1,基础知识 1-1 基础知识 // 1,标识符命名规则:第一个字母必须是字母,下划线或一个美元符号。不能…

pasmutility.dll丢失要怎么修复,pasmutility.dll破解补丁在哪里找到?

pasmutility.dll是电脑中非常重要的文件之一,当电脑突然弹出“找不到pasmutility.dll”或是“pasmutility.dll丢失”等的错误提示窗口,可以选择下载pasmutility.dll文件,当然除了下载的方法还有很多种关于pasmutility.dll丢失的解决方法&…

自作聪明的AI? —— 信息处理和传递误区

一、背景 在人与人的信息传递中有一个重要问题——由于传递人主观处理不当,导致信息失真或产生误导。在沟通交流中,确实存在“自作聪明”的现象,即传递人在转述或解释信息时,根据自己对信息的理解、经验以及个人意图进行了过多的…

LeetCode 125题:验证回文串

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…

Apache访问控制与虚拟主机

目录 一. Web服务简介 以下是一些 Web 服务的基本概念和特征 以下是一些主流的 Web 服务器 WEB 服务协议 二. Apache 服务的搭建与配置 2.1 Apache 介绍 2.2 Apache安装 2.3 Apache目录介绍 三. 访问控制 四. 修改默认网站发布目录 五. 虚拟主机 5.1 基于域名的虚拟…

Linux信息显示相关指令

1、查看cpu 查看cpu信息:cat /proc/cpuinfo 查看cpu个数:nproc cat /proc/cpuinfo | grep "physical id" | uniq | wc -l uniq命令:删除重复行;wc –l命令:统计行数 查看CPU核数 cat /proc/cpuinfo | grep "cpu cores" | uniq 2、查看内存 cat /pr…

【STM32 |程序实例】按键控制、光敏传感器控制蜂鸣器

目录 前言 按键控制LED 光敏传感器控制蜂鸣器 前言 上拉输入:若GPIO引脚配置为上拉输入模式,在默认情况下(GPIO引脚无输入),读取的GPIO引脚数据为1,即高电平。 下拉输入:若GPIO引脚配置为下…

Android adb shell关于CPU核的命令

Android adb shell关于CPU核的命令 先使用命令: adb shell 进入控制台。 然后,直接在$后面输入下面命令,针对CPU的命令。 cat /proc/cpuinfo | grep ^processor | wc -l 查看当前手机的CPU是几核的。 cat sys/devices/system/cpu/online …

Ansible常用变量【下】

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 前言 在上一篇文章《Ansible常用变量【上】》中,学习了Ansible常用变量的前半部分,放了个五一假&#x…

LeetCode1207独一无二的出现次数

题目描述 给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。 解析 正常的解法肯定是对每个元素使用一个hashmap,存元素及出现次数,然后通…

使用Apache Spark从MySQL到Kafka再到HDFS的数据转移

使用Apache Spark从MySQL到Kafka再到HDFS的数据转移 在本文中,将介绍如何构建一个实时数据pipeline,从MySQL数据库读取数据,通过Kafka传输数据,最终将数据存储到HDFS中。我们将使用Apache Spark的结构化流处理和流处理功能&#…

【Linux】调试器-gdb使用

大家好,我是苏貝,本篇博客带大家了解Linux的编译器-gcc/g,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 1. 背景(A) 看大小(B) 查看ELF格式的文件 2.使用(A) 进入gdb(B) quit/q&#xff…

flink优化案例

文章目录 一、flink join维表案例二、flink 双流join案例三、总结 提示:以下是本篇文章正文内容,下面案例可供参考(适用于flink1.13) 一、flink join维表案例 背景:flink sql join 维表。job业务不复杂,job写入性能比较差。维表数据大约每天…

想半天憋不出几个字?试试AI扩写

大家在写文章时是否也经常这样?想了半天,结果只能写出几个字,但是要求往往又是几百多个字,那么有没有啥工具可以帮我们在原文的基础上扩写一下文章字数,让我们达到字数要求呢? 下面给大家介绍一下如何扩写文…

Microsoft Office for Mac 2024 (Office 365) 16.84 Universal 预览版

Microsoft Office for Mac 2024 (Office 365) 16.84 Universal 预览版 Office LTSC 2024 for Mac 请访问原文链接:Microsoft Office for Mac 2024 (Office 365) 16.84 Universal 预览版,查看最新版。原创作品,转载请保留出处。 作者主页&a…