一. uboot 简介
之前有文章对 uboot 进行了简单的说明。
Linux 系统要启动就必须需要一个 bootloader 程序,也就说芯片上电以后先运行一段 bootloader 程序。这段 bootloader 程序会先初始化 DDR 等外设,然后将 Linux 内核从 flash(NAND , NOR FLASH , SD , MMC 等 ) 拷贝到 DDR 中,最后启动 Linux 内核。当然了, bootloader 的实 际工作要复杂的多,但是它最主要的工作就是启动 Linux 内核。
所以我们要先搞定 bootloader ,很庆幸,有很多现成的 bootloader 软件可以使用,比如 U-Boot 、 vivi 、 RedBoot 等 等,其中以 U-Boot 使用最为广泛。
uboot 的全称是 Universal Boot Loader , uboot 是一个遵循 GPL 协议的开源软件, uboot 是一
个裸机代码,可以看作是一个裸机综合例程。现在的 uboot 已经支持液晶屏、网络、 USB 等高
级功能。 uboot 官网为:
http://www.denx.de/wiki/U-Boot/
1. uboot的三种来源
种类 | 描述 |
uboot 官方的 uboot 代码 | 由 uboot 官方维护开发的 uboot 版本,版本更新快,基本包含所有常用的芯片。 |
半导体厂商的 uboot 代码 | 半导体厂商维护的一个 uboot,专门针对自家的芯片,在对自家芯片支持上要比 uboot 官方的好。 |
开发板厂商的uboot 代码 | 开发板厂商在半导体厂商提供的 uboot 基础上加入了对自家开发 板的支持。 |
2. uboot 如何的选择?
那么这三种 uboot 该如何选择呢?
首先, uboot 官方的基本是不会用的,因为支持太弱了。 最常用的就是半导体厂商或者开发板厂商的 uboot 。
如果你用的半导体厂商的评估板,那么就使 用半导体厂商的 uboot 。
如果你是购买的第三方开发板,比如正点原子的 I.MX6ULL 开发板, 那么就使用正点原子提供的 uboot 源码(也是在半导体厂商的 uboot 上修改的)。
当然了,你也 可以在购买了第三方开发板以后,使用半导体厂商提供的 uboot ,只不过有些外设驱动可能不支 持,需要自己移植,这个就是我们常说的 uboot 移植。