1.Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。


2.Bootloader的多种启动方式:
 网络启动方式
 磁盘启动方式
 Flash启动方式


3.Flash启动方式介绍:
 NOR Flash可以支持随机访问,所以代码是可以直接在Flash上执行的。Bootloader一般是存储在Flash芯片上的。另外,Linux内核映像和RAMDISK也可以存储在Flash上。通常需要把Flash分区使用,每个区的大小应该是Flash擦除块大小的整数倍。
 Bootloader一般放在Flash的底端或者顶端;
 分配参数区作为Bootloader的参数保存区域;
 内核映像区,Bootloader引导Linux内核,就是要从这个地方把内核映像解压到RAM中去,然后跳转到内核映像入口执行;
 文件系统区,如果使用JFFS2文件系统,将直接挂接为根文件系统;
 数据区。


4.Bootloader的种类:
 LILO
 GRUB
 Loadlin
 ROLO
 Etherboot
 LinuxBIOS
 BLOB
 U-boot
 RedBoot


5.关于U-boot:
ARM处理器的芯片商很多,所以每种芯片的开发板都有自己的Bootloader。结果ARM bootloader也变得多种多样。最早有为ARM720处理器的开发板的固件,又有了armboot,StrongARM平台的blob,还有S3C2410处理器开发板上的vivi等。现在armboot已经并入了U-Boot,所以U-Boot也支持ARM/XSCALE平台。U-Boot已经成为ARM平台事实上的标准Bootloader。


6.U-Boot源码结构:
 文件分为3类:
 第1类目录与处理器体系结构或者开发板硬件直接相关;
 第2类目录是一些通用的函数或者驱动程序;
 第3类目录是U-Boot的应用程序、工具或者文档。

 

7.U-Boot的源码顶层目录说明:

目    录           特    性         解 释 说 明
board              平台依赖         存放电路板相关的目录文件,例如:RPXlite(mpc8xx)、smdk2410(arm920t)、sc520_cdp(x86) 等目录
cpu                平台依赖         存放CPU相关的目录文件,例如:mpc8xx、ppc4xx、arm720t、arm920t、 xscale、i386等目录
lib_ppc           平台依赖         存放对PowerPC体系结构通用的文件,主要用于实现PowerPC平台通用的函数
lib_arm           平台依赖         存放对ARM体系结构通用的文件,主要用于实现ARM平台通用的函数
lib_i386          平台依赖         存放对X86体系结构通用的文件,主要用于实现X86平台通用的函数
include            通用             头文件和开发板配置文件,所有开发板的配置文件都在configs目录下
common          通用             通用的多功能函数实现
lib_generic       通用             通用库函数的实现
Net                 通用             存放网络的程序
Fs                  通用             存放文件系统的程序
Post               通用             存放上电自检程序
drivers            通用             通用的设备驱动程序,主要有以太网接口的驱动
Disk                通用             硬盘接口程序
Rtc                 通用             RTC的驱动程序
Dtt                 通用             数字温度测量器或者传感器的驱动
examples       应用例程         一些独立运行的应用程序的例子,例如helloworld
tools              工具             存放制作S-Record 或者 U-Boot格式的映像等工具,例如mkimage
Doc                文档             开发使用文档

posted on 2012-03-25 22:12  孜求嵌道  阅读(470)  评论(0编辑  收藏  举报