组成

【Linux】U-Boot初试 - 图1

U-Boot

uboot的全称是Universal Boot Loader
是一个遵循GPL协议的开源软件,是一个裸机代码,可以看作是一个综合例程
官方网站http://www.denx.de/wiki/U-Boot/
可以下载源码
是由不同的半导体厂商维护自家芯片相应的uboot
NXP维护uboot版本
http://git.freescale.com/git/cgit.cgi/imx/uboot-imx.git/tag/h=imx_v2016.03_4.1.15_2.0.0_ga&id=rel_imx_4.1.15_2.1.0_ga
image.png
uboot.rar

针对开发板还需要对下载的uboot版本适度修改以适配
所以一共有三个版本uboot
image.png
正点原子Libux-mini开发板uboot
uboot_minibsp.rar
正点原子开发教程中用到的uboot
uboot_minibsp_pdf.rar

编译

首先Ubuntu中安装ncurses库,否则编译报错
sudo apt-get install libncurses5-dev

Linux文件夹下新建uboot文件夹专门存放
ftp传输源码压缩包
解压缩
tar -vxjf uboot-imx-2016.03-2.1.0-g8b546e4.tar.bz2

编译
芯片存储器使用不同
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
image.png
image.png

Shell

新建.s的shell文件,每次只需要执行shell脚本文件即可完成编译

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

image.png

烧录

chmod 777 imxdownload
./imxdownload u-boot.bin /dev/sdb
烧录到SD卡中
设置开发板芯片从SD卡中启动