资料来源:正点原子嵌入式Linux
开发板烧写:
工具:mfgtool
uboot文件:Mfgtool2-eMMC-ddr512-eMMC
何为Uboot?
uboot就是一个bootloader,作用就是用于启动Linux或其他系统。Uboot最主要的工作就是初始化DDR。因为Linux是运行在DDR里面的。一般Linux镜像zImage(uImage)+设备树(.dtb)存放在SD、EMMC、NAND、SPI FLASH等等外置存储区域。Uboot的主要目的就是为系统的启动做准备,将Linux镜像从外置flash拷贝到DDR中。Uboot与linux不是一一对应的,uboot还可以启动其他操作系统,linux也可以用其他bootloader启动。
烧写Uboot
编译指令:
#!/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
编译完成生成u-boot.imx,将imx文件拷贝到PC,利用mfgtool烧写
u-boot.imx替换mfgtool\Profiles\Linux\OS Firmware\firmware\u-boot-imx6ull-14x14-emmc.imx文件,并且重命名和u-boot-imx6ull-14x14-emmc.imx一致。
同样替换mfgtool\Profiles\Linux\OS Firmware\files\boot\u-boot-imx6ull-14x14-ddr512-emmc,重命名。
然后点击mfgtool文件Mfgtool2-eMMC-ddr512-eMMC.vbs,开发板拨码到USB,点击Start烧写
拨码开关到EMMC启动,便可以启动了
为了方便编译,可以在makefile添加代码:249行
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-gnueabihf-
编译直接 make -j4 就可以了
SD卡启动Uboot
将u-boot.bin利用imxdownload烧写即可
./imxdownload u-boot.bin /dev/sdb
,然后选择SD卡启动,从SD中启动Uboot