嵌入式Linu作业模板_Bootloader.doc

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

祁杰 0843041404 嵌入式Linux的Bootloader 嵌入式Linux的Bootloader的概述 Bootloader简介 引入:对于计算机系统来说,从开机上电到操作系统启动需要一个引导过程。嵌入式Linux系统同样离不开引导程序,这个引导程序就叫做BootLoader。 对比:回忆一下PC的体系结构我们可以知道,PC机中的引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的引导程序一起组成。 BIOS在完成硬件检测和资源分配后,将硬盘MBR中的引导程序读到系统的RAM中,然后将控制权交给引导程序。 引导程序的主要运行任务就是将内核映象从硬盘上读到RAM中然后跳转到内核的入点去运行,也即开始启动操作系统。 而在嵌入式系统中,通常并没有像BIOS那样的固件程序。 因此整个系统的加载启动任务就完全由BootLoader来完成. 比如在一个基于ARM7TDMI core的嵌入式系统中,系统在上电或复位时都从地址0始执行.而在这个地址处安排的通常就是系统的BootLoader程序。 1.1Bootloader的概念和功能 BootLoader是一段汇编代码,存放在MBR中,它的主要作用就是将操作系统启动代码读入内存。 从功能上看,Bootloader就是在操作系统内核或用户应用程序运行之前运行的一段小程序。通过这段小程序可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。 设置程序入口 建立异常中断向量表 初始化CPU(堆栈、寄存器、模式…) 初始化硬件设备(SDRAM、Flash、串口…) 初始化目标板(数据搬移、Flash擦除和编程…) 引导和加载内核镜像 (升级)支持开发和调试。从这个层面上看, 功能扩展后bootloader可以虚拟地看成是一个微小的系统级的代码包。 1.2Bootloader 的启动 Bootloader多数是两阶段的启动过程 第一个启动阶段是和硬件平台相关的,大都采用汇编程序编写 第二个启动阶段是和硬件平台无关的,大都采用C语言编写。 大多数Bootloader都包含两种不同的操作模式:本地加载模式和远程下载模式。 Bootloader 的种类 嵌入式系统世界已经有各种各样的Bootloader,种类划分的方法也不是唯一的。 一般可以按照它所支持处理器体系结构不同进行划分。 Bootloader Monitor 描述 X86 ARM PowerPC Lilo 否 Linux磁盘引导程序 是 否 否 Grub 否 GNU引导的Lilo替代程序 是 否 否 Loadlin 否 从DOS引导Linux 是 否 否 ROLO 否 从ROM引导Linux而不需要BIOS 是 否 否 Etherboot 否 通过以太网卡启动Linux引导程序 是 否 否 Linux BIOS 否 完全替代BUIS的Linux引导程序 是 否 否 Blob 否 LART等硬件平台的引导程序 否 是 否 U-Boot 是 通用引导程序 是 是 是 RedBoot 是 基于eCos的引导程序 是 是 是 2.嵌入式Linux的常见Bootloader简介 2.1ARM boot ARMboot是一个ARM平台的开源固件项目,它基于PPCBOOT,已经与PPCBOOT 项目合并,新的项目为U-Boot。 ARMboot支持的处理器构架有StrongARM、ARM720T和PXA250 等 ARMboot的目标是成为通用的、容易使用和移植的引导程序,非常轻便地运用于新的平台上。 ARMboot是GPL下的ARM固件项目中唯一支持Flash闪存、BOOTP、DHCP和TFTP网络下载 2.2U-Boot U-Boot支持的处理器构架包括PowerPC , ARM ,MIPS,x86 U-Boot的功能强大,涵盖了绝大部分处理器构架,提供大量外设驱动,支持多个文件系统,附带调试、脚本和引导等工具 U-boot可配置性非常强 ,它所支持的命令也可以通过配置来增减。U-boot的命令主要包括以下几类:信息类命令、环境变量类命令、存储器命令、Flash专用命令、载类命令、启动类命令和Cache类命令, 2.3Blob Blob(Boot Loader Object)是由Jan-Derk Bakker和Erik Mouw发布的,是专门为StrongARM 构架下的LART设计的Boot Loader。 Blob功能比较齐全,代码较少,比较适合做修改移植,用来引导Linux,目前大部分S3C44B0板都用移

文档评论(0)

nbc152 + 关注
内容提供者

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

1亿VIP精品文档

相关文档