一、U-Boot 简介

Linux 系统要启动就必须需要一个 bootloader 程序,也就说芯片上电以后先运行一段bootloader程序。这段bootloader程序会先初始化DDR等外设,然后将Linux内核从flash(NAND, NOR FLASH,SDMMC )拷贝到 DDR 中,最后启动 Linux 内核。

 

二、U-Boot 编译

(1)解压uboot源码
tar -vxjf uboot-imx-2016.03-2.1.0-g8b546e4.tar.bz2

(2)编译 uboot的命令

//清除工程
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
//配置工程
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig
//编译uboot,使用12核编译
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12

编译完成:

编译前后文件对比:

编译前:

编译后:

u-boot.bin 是编译出来的 uboot 二进制文件。uboot 是个裸机程序,因此需要在其前面加上头部 (IVT DCD 等数据 ) 才能在 I.MX6U 上执行。
u-boot.imx 是添加头部以后的 u-boot.bin u-boot.imx 就是要烧写到开发板中的 uboot 镜像文件。
 

 

三、使用 shell 脚本编译

(1)新建mx6ull_tek_emmc.sh shell 脚本文件,写入以下内容。

shell 脚本要求第一行必须是“#!/bin/bash”或者“#!/bin/sh”。

#!/bin/bash
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j12

(2)给脚本文件可执行权限

chmod 777 mx6ull_tek_emmc.sh

(3)执行脚本文件

./mx6ull_tek_emmc.sh

 

四、U-Boot 烧写与启动

IMX6ULL的 U-Boot 与裸机SD卡烧写与启动

启动:

使用SecureCRT工具,设置好串口参数并打开,复位开发板。在 SecureCRT 上出现“Hit any key to stop autoboot: ”倒计时的时候按下键盘上的回车键,默认是 3 秒倒计时,在 3 秒倒计时结束以后如果没有按下回车键的话 uboot 就会使用默认参数来启动Linux 内核了。如果在 3 秒倒计时结束之前按下回车键,那么就会进入 uboot 的命令行模式。

 

五、U-Boot 命令使用

U-Boot常见命令表

Logo

更多推荐