u-boot移植手册(申请置顶)
1.1 U-Boot的来源U-Boot,全称Universal Boot Loader,是遵循GPL 条款的开放源码项目。它
最早是由 DENX 软件工程中心的Wolfgang Denk 基于 8xxrom 的源码创建的
PPCBOOT 工程,并且不断添加处理器的支持。后来,Sysgo Gmbh 把 ppcboot
移植到ARM 平台上,创建了ARMboot 工程。然后以 ppcboot 工程和armboot
工程为基础,创建了 U-Boot 工程。
现在,U-Boot 作为通用的 Bootloader,已经成功地移植到包括PowerPC、
ARM、X86、MIPS 体系结构的上百种开发板,已经成为功能最多、灵活性最强
并且开发最积极的开放源码 Bootloader。目前仍然由 DENX的 Wolfgang
Denk 维护。
U-boot 对我们来说,最大的优势就是,它加快了项目开发的进度,节省了
工程师的时间。
1.2 U-Boot在系统中的地位
对于一个项目系统来说,u-boot 到底处于什么样地位呢?
目前,在专用的嵌入式板子上运行GNU/Linux系统,应该算比较流行的。对
于一个嵌入式Linux系统,从软件的角度看通常可以分为四个层次:
1、引导加载程序。包括固化在固件(firmware)中的boot代码(可选),和
BootLoader两大部分。
2、Linux内核。特定于嵌入式板子的定制内核以及内核的启动参数。
3、文件系统。包括根文件系统和建立于Flash内存设备之上文件系统。通常用
ramdisk来作为rootfs。
4、用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间
可能还会包括一个嵌入式图形用户界面。常用的嵌入式GUI有:MicroWindows
和MiniGUI等。
按照这个层次,U-Boot处于引导加载程序阶段。引导加载程序是系统加电后
运行的第一段软件代码。PC机中的引导加载程序由BIOS(其本质就是一段固件程
序)和位于硬盘MBR中的OS BootLoader(比如,LILO和GRUB等)一起组成。BIOS
在完成硬件检测和资源分配后,将硬盘MBR中的BootLoader读到系统的RAM中,
然后将控制权交给OS BootLoader。
BootLoader的主要运行任务就是将内核映象从硬盘上读到 RAM 中,然后跳
转到内核的入口点去运行,也即开始启动操作系统。
而在嵌入式系统中,通常并没有像BIOS,因此整个系统的加载启动任务就完
全由BootLoader来完成。简单地说,BootLoader就是在操作系统内核运行之前
运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间
的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作
系统内核准备好正确的环境。
通常,BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因
此,在嵌入式世界里建立一个通用的BootLoader几乎是不可能的。尽管如此,
我们仍然可以对BootLoader归纳出一些通用的概念来,以指导用户特定的
BootLoader设计与实现。U-Boot适应该“通用性”,成为较为流行的bootloader。
2. U-Boot移植准备工作
2.1 U-Boot源码的获取
U-Boot 的源码包可以从 sourceforge 网站下载,还可以订阅该网站活跃
的U-Boot Users 邮件论坛,这个邮件论坛对于 U-Boot 的开发和使用都很有帮
助。
U-Boot软件包下载网站:http://sourceforge.net/project/u-boot。事
实上,笔者更喜欢从这里下载源码:ftp://ftp.denx.de/pub/u-boot/。因为
这里是一个FTP服务器,上面网址打开后,直接就是以文件夹中存放源码包的形 、、、、、 谢谢分享。是1.2.0版本的移植手册,有点老了,不过是很好的参考教程。 虽然有点老了,但基本原理还都是一样的、、、 谢谢分享{:5_290:} 学习学习学习学习学习学习学习
页:
[1]