bootloader技术.doc

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
bootloader技术

嵌入式BootLoader技术内幕(一) BootLoader技术内幕(一) OS?启动加载程序?――?Boot?Loader?的概念、软件设计的主要任务以及结构框架等内容。? 在专用的嵌入式板子运行?GNU/Linux?系统已经变得越来越流行。一个嵌入式?Linux?系统从软件的角度看通常可以分为四个层次:? 1.?引导加载程序。包括固化在固件(firmware)中的?boot?代码(可选),和?Boot?Loader?两大部分。? 2.?Linux?内核。特定于嵌入式板子的定制内核以及内核的启动参数。? 3.?文件系统。包括根文件系统和建立于?Flash?内存设备之上文件系统。通常用?ram?disk?来作为?root?fs。? 4.?用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式?GUI?有:MicroWindows?和?MiniGUI?懂。? PC?的体系结构我们可以知道,PC?机中的引导加载程序由?BIOS(其本质就是一段固件程序)和位于硬盘?MBR?中的?OS?Boot?Loader(比如,LILO?和?GRUB?等)一起组成。BIOS?在完成硬件检测和资源分配后,将硬盘?MBR?中的?Boot?Loader?读到系统的?RAM?中,然后将控制权交给?OS?Boot?Loader。Boot?Loader?的主要运行任务就是将内核映象从硬盘上读到?RAM?中,然后跳转到内核的入口点去运行,也即开始启动操作系统。? BIOS?那样的固件程序(注,有的嵌入式?CPU?也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由?Boot?Loader?来完成。比如在一个基于?ARM7TDMI?core?的嵌入式系统中,系统在上电或复位时通常都从地址?0处开始执行,而在这个地址处安排的通常就是系统的?Boot?Loader?程序。? Boot?Loader?的概念、Boot?Loader?的主要任务、Boot?Loader?的框架结构以及?Boot?Loader?的安装等四个方面来讨论嵌入式系统的?Boot?Loader。? Boot?Loader?的概念? Boot?Loader?就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。? Boot?Loader?是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的?Boot?Loader?几乎是不可能的。尽管如此,我们仍然可以对?Boot?Loader?归纳出一些通用的概念来,以指导用户特定的?Boot?Loader?设计与实现。? 1.?Boot?Loader?所支持的?CPU?和嵌入式板? CPU?体系结构都有不同的?Boot?Loader。有些?Boot?Loader?也支持多种体系结构的?CPU,比如?U-Boot?就同时支持?ARM?体系结构和MIPS?体系结构。除了依赖于?CPU?的体系结构外,Boot?Loader?实际上也依赖于具体的嵌入式板级设备的配置。这也就是说,对于两块不同的嵌入式板而言,即使它们是基于同一种?CPU?而构建的,要想让运行在一块板子上的?Boot?Loader?程序也能运行在另一块板子上,通常也都需要修改?Boot?Loader?的源程序。? 2.?Boot?Loader?的安装媒介(Installation?Medium)? CPU?通常都从某个由?CPU?制造商预先安排的地址上取指令。比如,基于?ARM7TDMI?core?的?CPU?在复位时通常都从地址?0取它的第一条指令。而基于?CPU?构建的嵌入式系统通常都有某种类型的固态存储设备(比如:ROM、EEPROM?或?FLASH?等)被映射到这个预先安排的地址上。因此在系统加电后,CPU?将首先执行?Boot?Loader?程序。? 1就是一个同时装有?Boot?Loader、内核的启动参数、内核映像和根文件系统映像的固态存储设备的典型空间分配结构图。? 图1?固态存储设备的典型空间分配结构 3.?用来控制?Boot?Loader?的设备或机制? Boot?Loader?软件在执行时通常会通过串口来进行?I/O,比如:输出打印信息到串口,从串口读取用户控制字符等。? 4.?Boot?Loader?的启动过程是单阶段(Single?Stage)还是多阶段(Multi-Stage)? Boot?Loader?能提供更为复杂的功能,以及更好的可移植性。从固态存储设备上启动的?Boot?Loader?大

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档