为什么要使用u-boot

u-boot的目的:启动内核;

内核的目的:运行应用程序。

u-boot的主要工作:

(从Flash中读取内核,写入到SDRAM中,启动内核。所以最主要的就是读Falsh,写SDRAM,但在这步骤当中就需要很多配合的工作。方便观察信息可能需要串口;为了读Flash,你可能要外扩nand flash;为了将最初的u-boot/kernel写入Flash,就需要下载的方式,可能是SD卡/以太网;为了写SDRAM就需要MMC的一些驱动。所以虽然只不过是一个很简单的过程,但是需要其他方面的配合,所以也有一定的内容)

⑴初始化处理器及外设的硬件资源配置(时钟分频、关闭看门狗、关闭中断、GPIO管脚配置、串口驱动、网口驱动、板上Flash驱动、MMC驱动等)

⑵建立内存空间映射关系,使能MMU

⑶将内核映像和根文件系统映像从Flash上读到RAM中。(如果初次/下载模式,则需要通过串口、以太网、SD卡等方式来下载文件,将其存在Flash中)

⑷设置相关寄存器和资源,启动内核

⑸Flash中存储的一般形式

u-boot

引导参数

内核映像

根文件系统映像

1、u-boot中的驱动和Linux内核中的驱动有相似也有不同,像网口驱动,如果你不是使用网络进行下载内核映像,那你就可以把以太网的驱动屏蔽掉,在Linux内核中一块儿去写其驱动,u-boot中网络的驱动只是为了传输下载,但Linux内核中的驱动可就要有其他很多方面的应用。

2、但是没有u-boot也不行,虽然你的驱动可以整合到Linux内核中,但你的CPU型号、内存、时钟等这些是无法在Linux内核中实现的,而且没u-boot的引导,你的Linux也启动不了)


U-Boot源码下载:ftp://ftp.denx.de/pub/u-boot/  (2013.04-rc1)

你可能感兴趣的:(U-boot)