- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)