一. 编译 uboot简介
开发板的资源 :256MB(DDR3)+ 512MB(NAND)核心板
这里使用的是阿尔法开发板,256MB的 DDR,核心板是 512MB的 Nand-Flash。
二. 编译 uboot
创建 /uboot/alientek_uboot 目录文件,将正点原子提供的 uboot源码包拷贝到 /uboot/alientek_uboot 文件夹下。
正点原子提供了两份 uboot源码包:正点原子Uboot和Linux出厂源码 与 开发板教程对应的uboot和linux源码
这两份源码包的区别是:开发板教程对应的uboot和linux源码是正点原子驱动指南做驱动实验、移植uboot和linux所用的源码。而出厂 uboot源码则是用于出货所使用,客户无需再调试。直接编译使用!
这里把 出厂uboot源码拷贝到 /uboot/alientek_uboot 文件夹下,再加压缩。输入如下命令解压缩:
tar -xvf uboot-imx-2016.03-2.1.0-gee88051-v1.6.tar.bz2
1. uboot 配置与编译
在编译 uboot 源码之前,需要对 uboot进行配置。
配置 uboot有三种方法:
(1) 方法一:直接在 Linux控制台终端输入命令进行配置。
进入 uboot源码目录,Linux控制台终端输入三条命令,如下:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr256_nand_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
第一行命令:清除配置
第二行命令 : 配置uboot
(2) 方法二:编写一个 shell脚本文件进行配置。
将上述三行命令编写进脚本文件。例如,创建脚本文件为 imx6ull_uboot.sh
#!/bin/bash
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr256_nand_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
配置编译 uboot源码,可以直接运行这个脚本文件。前提还需要提供 脚本文件的执行权限。如下更改权限:
chmod 777 imx6ull_uboot.sh
(3) 方法三:直接更改 uboot源码的顶层目录的 Makefile文件,进行配置。
注意:直接更改 Makefile文件的内容的前提是,已经对 uboot进行了配置(即已经生成了 .config配置文件)。
首先,Linux 控制台终端输入如下命令,进行 uboot源码配置:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr256_nand_defconfig
然后,更改 Makefile 文件内容,打开 uboot根目录下的 Makefile文件,添加代码如下:
可以选择以上三种方法中任意一种方法,对 uboot源码进行配置编译。
编译成功后,会在 uboot源码根目录生成 u-boot.bin文件 与 u-boot.imx文件
u-boot.bin 与 u-boot.imx的区别:
u-boot.bin 就是编译出来的 uboot的二进制文件。uboot是个裸机程序,因此需要在其前面加上头部(IVT、DCD等数据)才能在I.MX6U 上执行。
u-boot.imx 就是我们最终要烧写到开发板中的 uboot 镜像文件。