每当我们学习任何编译语言之前,第一节课都是介绍我们要学习的是什么,以及编译语言和工具,最后写一个小程序编译并运行就算入门,也就是所谓的“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. 1)uboot的编译和烧写

    购买荔枝派ZERO已经将近一个星期了,由于官方资料不够完整一直没有任何进展.经过今夜近三个小时的折腾终于将UBOOT烧写成功,现将过程记录如下: 1)获取官方uboot 源码 : git clone  ...

  2. 分享tiny4412,emmc烧录u-boot, 支持fastboot模式烧写emmc【转】

    本文转载自:http://www.arm9home.net/read.php?tid-80810.html 分享tiny4412,emmc烧录u-boot, 支持fastboot模式烧写emmc   ...

  3. uboot下emmc内容烧写(拷贝)步骤

    一.目的:嵌入式开发板,通过emmc上的内核文件加载启动linux操作系统,以及存放其他程序文件.需要将所需文件先写入emmc中. 二.总体步骤是:uboot启动后,进入linux下,将emmc分区并 ...

  4. 在Linux下制作一个磁盘文件,在u-boot 阶段对emmc 烧写整个Linux系统方法

    在Linux 下制作一个磁盘文件, 可以给他分区,以及存储文件,然后dd 到SD卡便可启动系统. 在u-boot 下启动后可以读取该文件,直接在u-boot 阶段就可以做烧写操作,省略了进入系统后才进 ...

  5. Tiny210编译和烧写u-boot步骤

    当有多个交叉编译器是,不方便设置环境变量时,可以在编译命令中指定交叉编译器,具体如下: make ARCH=arm CROSS_COMPILE=/opt/FriendlyARM/toolschain/ ...

  6. 分享tiny4412,emmc烧录u-boot, 支持fastboot模式烧写emmc

    转载 : http://www.arm9home.net/read.php?tid-83474.html 本人是第一次在此发帖,希望大家多多支持,发帖目的是为了分享,分享的目的是传递开源的精神.Tin ...

  7. uboot从SD卡烧写内核和文件系统

    环境:ubuntu 13.04一.首先制作sd启动盘: 插入SD卡    sudo dd iflag=dsync oflag=dsync if=tiny210v2-uboot.binof=/dev/m ...

  8. 在windows 下使用eclipse进行编译和烧写

    eclipse IDE是一款开源的前端编程软件,它提供了编写,编译和调试ESP-IDF项目的图形集成开发环境. 首先在https://www.obeo.fr/en/eclipse-download?I ...

  9. eps-07s,编译及其烧写

    项目导入 清理并编译 会出现两个bin文件,然后烧写 修改红框中的东西,然后返回操作界面,进行一键烧写 硬件接线图 设备调试

随机推荐

  1. 集成Spring Data JPA

    1.Spring Data JPA简介 Spring Data是一个用于简化数据访问,并支持云服务的开源框 使用完成Spring Data JPA对user表的CRUD操作. 2.步骤 1.创建工程勾 ...

  2. TLB和CPU缓存

    TLB 如果每次应用程序访问一个线性地址都需要先解析(查PDT,PTT)那么效率十分低,为了提高执行效率CPU在CPU内部建立了一个TLB表,此表和寄存器一样访问速度极高.其会记录线性地址和物理地址之 ...

  3. UVA 160 - Factors and Factorials

     Factors and Factorials  The factorial of a number N (written N!) is defined as the product of all t ...

  4. java并发编程:深入了解synchronized

    简介 synchronized是Java语言的关键字,可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码.同时它还保证了共享变量的内存可见性. ...

  5. 通过Cloudflare开启全站https

    Cloudflare 添加域名后,会自动生成通用证书,快速开启全站HTTPS,服务端不用做任何修改,还可以选择多种开启模式 一.注册Cloudflare账号 直接打开网站:https://www.cl ...

  6. [bug] vue cli 部署在 springboot中报404

    复制资源时,在static目录下新建了一个static目录,估计是引起了spring解析的混乱,改为one后即可正常访问 参考 https://www.cnblogs.com/qianjinyan/p ...

  7. [bug] Maven每次都自动下载jar包非常慢

    解决 方法一:将maven改为离线模式,自己下载jar包复制到仓库中 eclipse中Window>preferences>maven>勾选Offline 方法二:将maven镜像改 ...

  8. vim使用基础

    vi/vim编辑器使用 前言 There is an old joke about a visitor to New York City asking a passerby for direction ...

  9. 在/etc/profile下配置java的环境变量

    在/etc/profile下配置java的环境变量 原创 Java 作者:xiaoyan5686670 时间:2016-01-18 14:30:28  6152  0 以root用户编辑:#vi /e ...

  10. 基于LNMP架构搭建wordpress个人博客

    搭建过程 注意防火墙和selinux的影响可以先关闭. 一.安装nginx # 1.更改nginx源安装nginx [root@web01 ~]# vi /etc/yum.repos.d/nginx. ...