i.MX6 飞凌开发板 uboot是什么?uboot编译

  • Linux系统要启动就必须需要一个 bootloader程序,也就说芯片上电以后先运行一段bootloader程序。这段 bootloader程序会先初始化 DDR等外设,然后将 Linux内核从 flash(NANDNOR FLASH SD MMC等 )拷贝到 DDR中,最后启动 Linux内核。当然了, bootloader的实际工作要复杂的多,但是它最主要的工作就是启动 Linux内核, bootloader和 Linux内核的关系就跟 PC上的 BIOS和 Windows的关系一样, bootloader就相当于 BIOS。

一、什么是uboot?

  1. uboot是一个裸机程序,比较复杂,类似于stm32综合实验例程一样复杂,什么功能都有。

  2. uboot就是一个bootloader,作用就是用于启动Linux或其它系统。uboot最主要的工作就是初始化DDR(使用的NXP a9系列不需要来初始化DDR,因为bootram会自动初始化DDR,但是对于其他,比如三星等公司的a9,就需要手动初始化DDR)。
    因为Linux是运行在DDR中。一般 Linux镜像zImage(uImage)+设备树(.dtb) 存放在SD、EMMC、NAND、SPI FLASH等等外置存储区域。

    这里就牵扯到一个问题,需要将Linux镜像从外置flash拷贝到DDR中,再去启动。

uboot的主要目的就是为系统的启动做准备,这就是uboot的宿命。

uboot不仅仅能启动linux,也可以启动其他的系统,比如vxwords系统。

同理,Linux不仅仅能通过uboot启动,可以支持多种的构架

uboot获取:

  1. 首先是uboot官网

http://www.denx.de/wiki/U-Boot/

在这里插入图片描述

  1. SOC厂商会从uboot官网下载某一个版本的uboot,然后在这个版本的uboot上加入相应的SOC以及驱动,这个就是SOC厂商定制版uboot,比如NXP官方的imx6 ECK板子。
  2. 做开发板的厂商,开发板会参考SOC厂商的板子,开发板必然会和官方的板子不一样,因此开发板厂商又会去修改SOC厂商做好的uboot,以适应自己的板子。

二、uboot编译

新建文件夹,然后复制对应的uboot到虚拟机

在这里插入图片描述
解压

tar -vxjf uboot-2016.tar.bz2

在这里插入图片描述
很快就会解压完成

在这里插入图片描述

执行编译

配置环境变量

. /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi

首先清理一下,”,目的是清除工程,一般在第一次编译的时候最好清理一下工程。

make distclean

在这里插入图片描述

然后调用飞凌提供好的shell脚本文件,编译uboot镜像

./build_6x_c.sh

在这里插入图片描述
编译完成之后,ls可以看到多了一个u-boot.bin文件。u-boot.imx文件就是添加头部以后的 u-boot.bin,u-boot.imx 就是我们最终要烧写到开发板中的 uboot镜像文件。

下面来看一下编译的脚本文件,其实下面的这一段相当于代替了

在这里插入图片描述
类似于上面这样的繁琐的指令,飞凌既然提供了现成的shell文件,那么就可以直接来进行使用了。

build_6x_c.sh

#!/bin/bash

make distclean
make mx6q-c-sabresd_defconfig
make -j5
cp u-boot.imx uboot-6q.tran

make distclean
make mx6dl-c-sabresd_defconfig
make -j16
cp u-boot.imx uboot-6dl.tran

make distclean
make mx6q-c-2g-sabresd_defconfig
make -j5
cp u-boot.imx uboot-6q-2g.tran

make distclean
make mx6dl-c-2g-sabresd_defconfig
make -j16
cp u-boot.imx uboot-6dl-2g.tran

mv uboot-6q.tran u-boot-6q.imx
mv uboot-6dl.tran u-boot-6dl.imx
mv uboot-6q-2g.tran u-boot-6q-2g.imx
mv uboot-6dl-2g.tran u-boot-6dl-2g.imx

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值