bootloader设计与实现_第1页
bootloader设计与实现_第2页
bootloader设计与实现_第3页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章 第四章 boot loader设计与实现1.1 4.1 boot loader 的概念一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:引导加载程 序、Linux内核、文件系统、用户应用程序。图4.1 Linux 系统层次图引导加载程序是系统加电后运行的第一段代码。我们熟悉的PC中的引导程序一般由BIOS和位于MBR的OS Boot Loader(例如LILO或者GRUB)一起组 成。然而在嵌入式系统中通常没有像 BIOS那样的固件程序(有的嵌入式CPU有), 因此整个系统的加载启动任务就完全由 Boot Loader来完成。在嵌入式Linux 中,图4.1中的引导加载程序即

2、等效为 Boot Loader 。简单地说,boot loader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系 统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。对于一个系统来说,本质上,Boot Loader作为引导与加载内核镜像的工具,在实现上,必须提供以下几个功能:1 初始化硬件设备为后面程序的运行以及kernel的加载准备一些基本的硬件环境。2 .初始化RAMBoot Loader必须能够初始化RAM,因为将来系统要通过它保存一些易变数据,但具体地实现要依赖于具体的 CPU以及硬件系统。3

3、. 初始化串口Boot Loader应该要初始化以及使能至少一个串口,通过它与控制台联系进 行一些debug的工作以及与PC通信。4. 创建内核参数列表针对Linux系统来说,这是一个推荐的步骤。5. 启动内核镜像这是必须的,因为Boot Loader的最终任务就是加载内核并将控制权交与它。通常,boot loader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此在嵌入式世界里建立一个通用的 boot loader几乎是不可能的。尽管如 此,我们仍然可以对boot loader归纳出一些通用的概念来。而这仅仅局限于 理论上,至于涉及到具体的设计与实现,则要结合具体的硬件系统。同时,对 于

4、Boot Loader的这些共同特性,理论上只局限于 Boot Loader的基本功能, 因为扩展功能众多,可以有串口、USB、以太网接口、IDE等,无法进行归纳与总结1. boot loader 所支持的CPU和嵌入式板每种不同的CPU体系结构都有不同的boot loader 。有些boot loader也支持多种体系结构的CPU,比如U-BOOT就同时支持ARM体系结构和MIPS体系 结构。除了依赖于CPU的体系结构外,boot loader实际上也依赖于具体的嵌 入式板级设备的配置。这也就是说,对于两块不同的嵌入式板而言,即使它们 是基于同一种CPU而构建的,要想让运行在一块板子上的 b

5、oot loader程序也 能运行在另一块板子上,通常也都需要修改 boot loader的源程序。2. boot loader 的安装媒介(Installation Medium)系统加电或复位后,所有的CPU通常都从某个由CPU制造商预先安排的地 址上取指令。比如,基于ARM920 core的CPU在复位时通常都从地址 0x00000000取它的第一条指令。而基于CPU构建的嵌入式系统通常都有某种 类型的固态存储设备(比如:ROM, EEPROM或FLASH等)被映射到这个预先安排 的地址上。因此在系统加电后,CPU将首先执行boot loader程序。3 .用来控制boot loader

6、的设备或机制主机和目标机之间一般通过串口建立连接,boot loader软件在执行时通常会通过串口来进行I/O ,比如:输出打印信息到串口,从串口读取用户控制字符 等。4. boot loader 的启动过程是单阶段(Single Stage)还是多阶段(Multi-Stage) 11通常多阶段的boot loader能提供更为复杂的功能,以及更好的可移植性。从固态存储设备上启动的boot loader大多都是2阶段的启动过程,也即启动过程可以分为stagel和stage2两部分。在stagel中要完成一些准备工作,目的是为stage2的执行以及随后的kernel的执行准备好一些基本的硬件环境。其基本流程如图4.2 :硬件设备初始化为加载Boot Loader的stage2准备RAM空间设置好堆栈拷贝 Boot Loader 的 stage2 到 RAM 空跳转到stage2的C入口点图4.2 stagel流程图boot loader的stagel通常包括以下步骤(以执行的先后顺序):A)硬件设备初始化。虽然嵌入式开发板上硬件设备的种类繁多,但要实现Boot Loader的基本功能的硬件设备几乎是每个开发板都具备的。其初始化步骤如下:1)屏

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论