"); //-->
文章来源:华清远见企业学院,原文地址:http://www.farsight.com.cn/news/emb156.htm
Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映像表,从而建立适当的系统软、硬件环境,为最终调用操作系统内核做好准备。
对于嵌入式系统,Bootloader是基于特定硬件平台来实现的,因此,几乎不可能为所有的嵌入式系统都建立一个通用的Bootloader,不同的处理器架构有不同的Bootloader。Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。对于两块不同的嵌入式主板而言,即使它们使用同一种处理器,要想让运行在一块主板上的Bootloader程序也能运行在另一块主板上,一般也都需要修改Bootloader的源程序。
反过来,大部分Bootloader仍然具有很多共性,某些Bootloader也能够支持多种体系结构的嵌入式系统。例如,U-Boot就同时支持PowerPC、ARM、MIPS和X86等体系结构,支持的主板有上百种。通常,它们都能够自动从存储介质上启动,都能够引导操作系统启动,并且大部分都可以支持串口和以太网接口。
Bootloader的种类
嵌入式系统世界已经有各种各样的Bootloader,种类划分也有多种方式。除了按照处理器体系结构不同划分以外,还有通过功能复杂程度进行划分的。
首先区分一下“Bootloader”和“Monitor”的概念。严格来说,“Bootloader”只是引导设备并且执行主程序的固件;而“Monitor”还提供了更多的命令行接口,进行调试、读写内存、烧写Flash、配置环境变量等。“Monitor”在嵌入式系统开发过程中提供很好的调试功能,开发完成以后,就完全设置成了一个“Bootloader”。所以,习惯上把它们统称为Bootloader。
表1.4列出了Linux的开放源码引导程序及其支持的体系结构,表中给出了X86、ARM、PowerPC体系结构的常用引导程序,并且注明了每一种引导程序是不是“Monitor”。
表1.4 Linux的开放源码引导程序
| Bootloader | Monitor | 描述 | X86 | ARM | PowerPC |
| LILO | 否 | Linux磁盘引导程序 | 是 | 否 | 否 |
| GRUB | 否 | GNU的LILO替代程序 | 是 | 否 | 否 |
| Loadlin | 否 | 从DOS引导Linux | 是 | 否 | 否 |
| ROLO | 否 | 从ROM引导Linux而不需要BIOS | 是 | 否 | 否 |
续表
| Bootloader | Monitor | 描述 | X86 | ARM | PowerPC |
| Etherboot | 否 | 通过以太网卡启动Linux系统的固件 | 是 | 否 | 否 |
| LinuxBIOS | 否 | 完全替代BIOS的Linux引导程序 | 是 | 否 | 否 |
| BLOB | 否 | LART等硬件平台的引导程序 | 否 | 是 | 否 |
| Vivi | 是 | 主要为S3C2410等三星处理器引导Linux | 否 | 是 | 否 |
| U-Boot | 是 | 通用引导程序 | 是 | 是 | 是 |
| RedBoot | 是 | 基于eCos的引导程序 | 是 | 是 | 是 |
1.X86
X86的工作站和服务器上一般使用LILO和GRUB。LILO曾经是Linux发行版主流的Bootloader,不过,现在几乎所有的发行版都已经使用了GRUB,GRUB比LILO有更友好的显示接口,使用配置也更加灵活方便。
在某些X86嵌入式单板机或者特殊设备上,会采用其他的Bootloader,如ROLO。这些Bootloader可以取代BIOS的功能,能够从Flash中直接引导Linux启动。现在ROLO支持的开发板已经并入U-Boot,所以U-Boot也可以支持X86平台。
2.ARM
ARM处理器的芯片提供商很多,所以每种芯片的开发板都有自己的Bootloader,使得ARM Bootloader也变得多种多样。最早有ARM720处理器开发板的固件,之后又有了armboot、StrongARM平台的BLOB,还有S3C2410处理器开发板上的Vivi等。现在armboot已经并入了U-Boot,所以U-Boot也支持ARM/XSCALE平台。U-Boot已经成为ARM平台事实上的标准Bootloader。关于ARM的学习可以参考华清远见《ARM开发培训班》的课程大纲。
3.PowerPC
PowerPC平台的处理器有标准的Bootloader,就是PPCBOOT。PPCBOOT在合并armboot等之后,创建了U-Boot,成为各种体系结构开发板的通用引导程序。U-Boot仍然是PowerPC平台的主要Bootloader。
4.MIPS
MIPS公司开发的YAMON是标准的Bootloader,也有许多MIPS芯片提供商为自己的开发板写了Bootloader。现在,U-Boot也已经支持MIPS平台。
5.SH
SH平台的标准Bootloader是sh-boot,RedBoot在这种平台上也很好用。
6.M68K
M68K平台没有标准的Bootloader。RedBoot能够支持M68K系列的系统。
值得说明的是,RedBoot几乎能够支持所有的体系结构,包括MIPS、SH、M68K等。RedBoot是以eCos为基础,采用GPL许可的开源软件工程,现在由core eCos的开发人员维护,源码下载网站是http://www.ecoscentric.com/snapshots。RedBoot的文档也相当完善,有详细的使用手册RedBoot User’s Guide。
本文选自华清远见嵌入式培训教材《从实践中学嵌入式Linux应用程序开发》
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
在PCB生产过程中,是如何控制走线阻抗的?
D型IPM的结构及IGBT的等效电路
电子科技大学--嵌入式系统应用开发技术03
标准MiniSkiiP电路
ZNE-10T以太网转串口模块数据手册v1.1
是德科技对可再生能源前瞻:向绿而行,推进可持续发展
ZNE-200T ZNE-200以太网转串口模块使用说明书
两单元IGBT模块的寄生电感
GA系列IGBT单开关型模块的内部接线图
嵌入式软件OTA升级,有哪几种FLASH划分方式?
ZNE-200T 产品数据手册
铝合金上怎么焊接
波峰焊,再流焊
传台积电拒绝代工三星Exynos芯片,认为商业机密存在泄露风险
大联大友尚集团推出基于ST产品的11kW双向电池充电器方案
常见维修电路板技术汇总
电子科技大学--嵌入式系统应用开发技术01
Supermicro高性能服务器开始量产供货,可针对AI、高性能计算、虚拟化以及边缘端工作负载优化
女流氓语录(超级爆笑)
LG推出第四代OLED电视面板:亮度提高33%,针对AI时代优化
英伟达或于3月推出CPO交换机新品
电子科技大学--嵌入式系统应用开发技术02
ZNE-10T模块V1.00版本和V1.10版本之间的不同
清华大学知名教授解读点石成金的微电子产业(下)
传特斯拉上海厂部分产线春节停产三周,为量产焕新版Model Y做准备
ZNE-10以太网转串口模块使用说明书
变频器的控制驱动主电路的原理图
谁有卸IC的工具?急
怎么把240从座上拿下来
清华大学知名教授解读点石成金的微电子产业(中)