李向阳,戴学丰,邵 林
(齐齐哈尔大学 黑龙江齐齐哈尔 161006)
0引 言
Bootloader是操作系统启动运行之前执行的一段小程序。它是基于特定硬件平台实现的,通过它可以初始化硬件设备,建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核作好准备。嵌入式系统的硬件部分不可能完全一致,由于嵌入式系统需要硬件与软件的配合才能正常工作,因此需要针对硬件系统进行有关引导程序的设计。对于嵌入式系统来说,引导程序比较复杂,一般采用在基本符合硬件体系要求的现有引导程序的基础上进行修改,然后通过应用的方法设计引导程序,这就是引导程序的移植。
1 U-boot介绍
U-boot(Universal Boot Loader)源自DENX软件工程中心的Wolfgang Denk,基于8xxrom的源码创建的P
PCBoot工程,遵循GPL条款的开放源码项目,已经可以支持PowerPC,
ARM,X86,MIPS等体系结构上的上百种
开发板。U-boot提供:启动加载(Boot Loading)和下载(Down Loading)两种操作模式。并具有大型Bootloader的全部功能。主要特性有:SCC/FEC以太网支持;BOOTP/TFTP引导——IP,MAC预置功能;在线读写FLASH,DOC,IDE,I2C,E2ROM,RTC;支持串行口kermit,S-record下载代码;识别二进制、ELF32,plmage格式的Image;对Linux引导有特别的支持;监控(minitor)命令集;具有读写I/O、内存、寄存器、外设测试等功能。
U-boot还支持多种文件系统,如cramfs,ext2,fat,reiserfs和jffs2等;支持多种嵌入式操作系统内核,如Linux,NetBSD,VxWorks,QNX,RTEMS,ARTOS和LynxOS等,并对Linux引导有特别的支持。另外,U-boot还提供单任务软件运行环境,可以在没有操作系统的情况下动态加载和运行独立的应用程序,这些独立的应用程序可以利用U-boot提供控制台的I/O函数、内存申请和中断服务等。