UBoot的编译与烧写
每当我们学习任何编译语言之前,第一节课都是介绍我们要学习的是什么,以及编译语言和工具,最后写一个小程序编译并运行就算入门,也就是所谓的“Hello, world!”。这里也不例外,带想学习UBoot的小伙伴学习UBoot的编译和烧写(主要是记录一下个人学习的过程),也就是UBoot的“Hello, world!”。
首先我们要弄明白是什么是U-Boot,注意我们常说的UBoot就是U-boot。
一、准备材料
可以根据自己的需要准备相应材料,以下是我自己使用的:
开发环境:VMware
操作系统:ubuntu
开发版:湃兔i2S-6UB
烧写工具:SD卡
二、环境配置
学习ARM架构的移植和应用开发主要用到的工具是交叉编译工具,所以需要在ubuntu安装配置交叉编译链工具。
交叉编译器的安装配置https://www.cnblogs.com/jzcn/p/14889438.html
注意:安装交叉编译器时需要注意版本号,有的开发版会提供自己更改的交叉编译器,我使用的版本号是6.2的,如下图所示:

三、下载UBoot文件
这里主要是下载开发版对应的UBoot文件,每个开发版都有对应的下载地址,一般都会在相应的学习资料里,如果没有的小伙伴可以找相应的店家。
这里是湃兔的下载地址http://i2som-zh.oss-cn-beijing.aliyuncs.com/i2SOM-iMX-uboot-904f545.tar.gz。
下载完成后将文件拷贝到linux系统下进行解压,解压后会的目录如下图所示:

注意:编译时一定要在当前路径下才能编译
四、编译UBoot
1.清理项目工程
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
2.设置UBoot的默认配置文件
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- i2som_imx6ull_14x14_emmc_defconfig
编译完成后会生成“.config”,如下图所示:

注意:湃兔的默认配置文件是“i2som_imx6ull_14x14_emmc_defconfig”,不同厂商的默认配置文件有所不同,可与根据相应的资料查看。如湃兔官网的说明,如下图所示

3.编译UBoot项目工程
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8
编译完成后会生成u-boot.imx文件,如下图所示:

注意:到这里UBoot的编译就算完成了,如果细心的小伙伴就会发现,为啥我的命令会长一些。每个指令中都用“ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-”,这是设置编译器为交叉编译器。
以后在做UBoot移植时会经常用到这些编译指令。为了使编译指令简介一些,可以在Makefile文件中添加ARCH和CROSS_COMPILE的配置,以后就可以编译时就可以省掉命令中的“ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-”部分,如下图所示:

四、烧写UBoot
将编译好的u-boot.imx拷贝到SD卡中,SD卡的格式是VFAT格式,不然开发版会识别不了。拷贝完成后将SD卡插入开发版,然后进入UBoot执行更新命令。
湃兔通过SD卡更新UBoot命令
update uboot mmc 0 1 u-boot.imx
更新过程如下图所示:

更新完成后,可以通过启动时的第一行日志的编译时间观察是烧写成功,如下图所示:

到这里“Hello, world!”也算是完成,有兴趣的小伙伴可以进行UBoot的移植学习了。
注意:每个厂商的烧写过程可能不一样,使用不同开发版的小伙伴可以去相应的学习资料中查找自己的烧写过程。
五、参考资料
湃兔资料:https://wiki.i2som.com/pages/viewpage.action?pageId=65576
原子哥的视屏教程:https://www.bilibili.com/video/BV12E411h71h?p=4&share_source=copy_web
UBoot的编译与烧写的更多相关文章
- 1)uboot的编译和烧写
购买荔枝派ZERO已经将近一个星期了,由于官方资料不够完整一直没有任何进展.经过今夜近三个小时的折腾终于将UBOOT烧写成功,现将过程记录如下: 1)获取官方uboot 源码 : git clone ...
- 分享tiny4412,emmc烧录u-boot, 支持fastboot模式烧写emmc【转】
本文转载自:http://www.arm9home.net/read.php?tid-80810.html 分享tiny4412,emmc烧录u-boot, 支持fastboot模式烧写emmc ...
- uboot下emmc内容烧写(拷贝)步骤
一.目的:嵌入式开发板,通过emmc上的内核文件加载启动linux操作系统,以及存放其他程序文件.需要将所需文件先写入emmc中. 二.总体步骤是:uboot启动后,进入linux下,将emmc分区并 ...
- 在Linux下制作一个磁盘文件,在u-boot 阶段对emmc 烧写整个Linux系统方法
在Linux 下制作一个磁盘文件, 可以给他分区,以及存储文件,然后dd 到SD卡便可启动系统. 在u-boot 下启动后可以读取该文件,直接在u-boot 阶段就可以做烧写操作,省略了进入系统后才进 ...
- Tiny210编译和烧写u-boot步骤
当有多个交叉编译器是,不方便设置环境变量时,可以在编译命令中指定交叉编译器,具体如下: make ARCH=arm CROSS_COMPILE=/opt/FriendlyARM/toolschain/ ...
- 分享tiny4412,emmc烧录u-boot, 支持fastboot模式烧写emmc
转载 : http://www.arm9home.net/read.php?tid-83474.html 本人是第一次在此发帖,希望大家多多支持,发帖目的是为了分享,分享的目的是传递开源的精神.Tin ...
- uboot从SD卡烧写内核和文件系统
环境:ubuntu 13.04一.首先制作sd启动盘: 插入SD卡 sudo dd iflag=dsync oflag=dsync if=tiny210v2-uboot.binof=/dev/m ...
- 在windows 下使用eclipse进行编译和烧写
eclipse IDE是一款开源的前端编程软件,它提供了编写,编译和调试ESP-IDF项目的图形集成开发环境. 首先在https://www.obeo.fr/en/eclipse-download?I ...
- eps-07s,编译及其烧写
项目导入 清理并编译 会出现两个bin文件,然后烧写 修改红框中的东西,然后返回操作界面,进行一键烧写 硬件接线图 设备调试
随机推荐
- 四种方式带你层层递进解剖算法---hash表不一定适合寻找重复数据
一.题目描述 找出数组中重复的数字 > 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次. ...
- C++ primer plus读书笔记——第2章 开始学习C++
第2章 开始学习C++ 1. endl确保程序继续运行前刷新输出(将其立即显示在屏幕上),而使用"\n"不提供这样的保证,这意味着在有些系统中,有时可能在您输入信息后才会出现提示. ...
- Map&Set的理解
Set子接口 特点:无序.无下标.元素不可重复. 方法:全部继承自Collection中的方法. Set实现类 HashSet: 基于HashCode实现了不重复. 当存入元素的哈希码相同时,会调用e ...
- 关于在pycharm上使用git(保姆级别教程)
文件 → 设置 先在pycharm上面登录github账号,版本控制 → GitHub → '+' → 通过GitHub登录 会自动跳转至浏览器,然后点击"Authorize in GitH ...
- [设计模式] 读懂UML图
类之间关系(由强到弱) realize(继承):三角+实线(指向类),继承类(SUV是一种汽车) generalization(实现):三角+虚线(指向接口),实现接口(汽车是一种车) composi ...
- Linux_网络进阶管理
一.链路聚合 1.什么是链路聚合? 网卡的链路聚合就是将多块网卡连接起来,当-块网卡损坏,网络依旧可以正常运行,可以有效的防止因为网卡损坏带来的损失,同时也可以提高网络访问速度. 2.链路聚合方式: ...
- 回车与换行的区别:CRLF、CR、LF
引言 以下是 MySQL 8 导出数据的窗口,导出数据时需要选择记录分隔符,这就需要你明白 CRLF.CR 和 LF 分别代表什么,有何区别,否则可能导出数据会出现莫名其米的问题. 名词解释 CR:C ...
- 7.7-9 chage、chpasswd、su
7.7 chage:修改用户密码有效期 chage命令用于查看或修改用户密码的有效期,有些参数和passwd的功能相同. -d 设置上一次密码更改的日期 -E 账号过期的日期.日期格式 ...
- 校准仪的开发 ---等下整理 迪文屏的ICO文件 和输出配置问题
要有ICO文件才能
- Java中生成唯一标识符的方法
有时候业务需要生成唯一标识符,但又不能依赖于数据库中自动递增的字段产生唯一ID,比如多表同一字段需要统一一个唯一ID,此时我们就需要用程序来生成一个唯一的全局ID. UUID UUID是指在一台机器上 ...