一、uboot简介
1)uboot是一个裸机程序,比较复杂
2)最主要的作用是引导Linux内核启动;
- 初始化DDR;
- 因为Linux是运行在DDR里面的;
- 而Linux镜像(zImage或uImage+dtb)一般存放在SD EMMC NADN FLASHZ外置存储区域
- 需要将Linux镜像从外置flash拷贝到内存中
- 引导内核启动
二、uboot获取
- uboot官方。缺点:支持少、某一款具体芯片驱动等不完善
- SOC厂商,从uboot官网下载某一版本的uboot,加入相应自己的SOC以及驱动;
- 做开发板的厂商,参考厂商的uboot
三、uboot编译
直接使用正点原子提供的uboot源码了,具体见:【链接】
- 编译uboot的时候,需要先配置
bash
# 先清除下工程
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
# 配置
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig
- 编译
bash
# v=1是显示打印信息
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
- 产物生成:
- u-boot.bin
- 使用tools/mkimage软件添加头部信息,生成u-boot.imx,就能烧写进板子里了
四、烧写
使用SD卡进行烧写
4.1 准备
1)烧写脚本:imxdownload
2)格式化工具
使用工具SDforamatter格式化SD卡
3)查看SD卡状态Linux指令:sudo fdisk -l
4.2 操作
1)虚拟机上操作:
bash
chmod 777 imxdownload
./imxdownload u-boot.bin /dev/sdf
- 上述,就把uboot烧写到SD卡中了;
- 然后把SD卡拔了,插开发板上;
- 打开开发板,复位一下;
4.3 遇到问题
Q1: VMware Ubuntu认不出SD读卡器解决办法