uboot编译以及烧录方法(SD启动,emmc启动)

(个人笔记,有需要相关资料的可以私聊我哦)

linux系统启动必须需要一个bootloader引导程序,也就是说芯片上电以后先要运行一段bootloader烧录。那么一开始linux系统会先运行bootloader引导程序,bootloader程序又是如何烧录的呢?

0.uboot获取

uboot官网 http://www.denx.de/wiki/U-Boot/;点击左侧Topics中的“source Code”,再点击FTP服务器

1.初次编译

首先在ubuntu中安装ncurses库,否则编译会报错

sudo apt-get install libncurses5-dev

使用如下命令解压

tar -vxjf uboot-imx-2016.03-2.1.0-g8b546e4.tar.bz2

使用的是512M(DDR)+8G(EMMC)核心板,使用如下命令来编译uboot:

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.bin文件,u-boot.imx文件。uboot是个裸机程序,因此需要在其前面加上头部才能在I。MX6U上执行,u-boot.imx就是添加头部之后的u-boot.bin

2.uboot烧写与启动

 2.1 SD卡方式

uboot 编译好以后就可以烧写到板子上使用了,这里我们跟前面裸机例程一样,将 uboot烧写到 SD 卡中,然后通过 SD 卡来启动来运行 uboot。使用 imxdownload 软件烧写,命令如下:

./imxdownload u-boot.bin /dev/sdb

/dev/sdb是我自己u盘对应的设备文件

2.2 emmc方式

如果要在 uboot 中更新 EMMC 对应的 uboot,可以使用如下所示命令:

mmc dev 1 0                                   //切换到 EMMC 分区 0
tftp 80800000 u-boot.imx                //下载 u-boot.imx 到 DRAM
mmc write 80800000 2 33E            //烧写 u-boot.imx 到 EMMC 中
mmc partconf 1 1 0 0                      //分区配置, EMMC 需要这一步!

其中33E是uboot.imx文件大小除以512对应的十六进制,我的u-boot.imx大小是424960,424960/512=0x33E

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值