嵌入式系统第4章嵌入式系统的BootLoader技术精品文档33页
- 格式:pdf
- 大小:3.29 MB
- 文档页数:33


1 论文导读::嵌入式系统是以应用为中心、以计算机为基础、软硬件可裁剪。即启动过程可分为阶段1和阶段2两个部分。技术概述。
论文关键词:嵌入式系统,启动过程,BootLoader技术
一 BootLoader技术概述
嵌入式系统是以应用为中心、以计算机为基础、软硬件可裁剪,适用于系统对功能、可靠性、成本、功耗严格要求的专用计算机系统。计算机系统都具有相应的引导程序,对于嵌入式系统在执行主程序之前要执行一些初始化的过程来完成对系统的初始化,并创造嵌入式程序运行的环境。我们熟悉的PC中的引导程序一般BIOS和位于MBR的 OS bootloader(例如 LILO 或者 GRUB)一起组成。
在嵌入式系统中,出于经济方面的考虑一般不配置 BIOS,在嵌入式系统中,通常采用BootLoader技术来启动程序。启动时用于完成初始化操作的代码被称为BootLoader 程序,整个系统的加载启动任务就由 BootLoader来完成。通过这段程序,可以初始化硬件设备、建立内存空间的映射图启动过程,从而将系统的软硬件环境设定在一个合适的状态,以便为调用操作系统内核准备好正确的环境。BootLoader依赖于硬件和应用环境,不同的CPU有不同的 Bootloader。即使他们是基于同一种 CPU,要想让运行在一块目标板上的Bootloader 2 程序也能运行在另一块板子上,通常也需要对BootLoader的源程序进行修改。因此,对 Bootloader 进行分析,并找出其中的规律和原理,使得BootLoader 运行于各种不同的硬件平台。
二 BootLoader 技术的基本特征
1 BootLoader 安装地址的固定性
系统加电或复位后,CPU 通常都从由CPU 制造商预先安排好的地址上取指令, 如XScale 内核的CPU 通常都从地址0x00000000处取它的第一条指令。基于这种CPU 构建的嵌入式系统通常都有某种类型的固态存储设备被映射到这个预先安排的地址上。所以系统加电后,CPU 将首先执行BootLoader
DOI:10.3969/j.issn.1001-8972.2010.21.045 嵌入式系统的BootLoader技术浅析 瞿新吉 山东省青岛第二卫生学校 266 508 如LILO或者GRUB)一起组成。 在嵌入式系统中,出于经济方面的考 虑一般不配置BIOS,在嵌入式系统中,通 常采用BootLoader技术来启动程序。启动 时用于完成初始化操作的代码被称为 BootLoader程序,整个系统的加载启动任 务就由BootLoader来完成。通过这段程 序,可以初始化硬件设备、建立内存空间 的映射图,从而将系统的软硬件环境设定 在一个合适的状态,以便为调用操作系统 内核准备好正确的环境。BootLoader依赖 于硬件和应用环境,不同的CPU有不同 的Bootloader。即使它们是基于同一种l C P U,要想让运行在一块目标板上的 Boofloader ̄序也能运行在另一块板子上, 1 BootLoader技术概述 通常也需要对BootLoadeI韵源程序进行修 嵌入式系统是以应用为中心、以计算 改。因此,对Bootloader进行分析,并 机为基础、软硬件可裁剪,适用于系统对 找出其中的规律和原理,使 ̄BootLoader 功能、可靠性、成本、功耗严格要求的专 运行于各种不同的硬件平台。 用计算机系统。计算机系统都具有相应的{2 BootLoader技术的基本特征 引导程序,对于嵌入式系统在挚{亍专粤序 2.1 BootLoader安装地址的固定性 之前要执行一訾 的 堡奎完璧 系 系统加电或复位后,CPU通常都从 统的初始化,并创造嵌 誉程 苎至的 由CPU制造商预先安排好的地址上取指 境。我们熟悉的P C中的引导程序■ 令,如XScale内核的CPU通常都从地 BIOS和位于MBR的OS boofloader(例J l B删0adef 参数I内核l 根文件系统 }lj 【 。 . jI..。 Jl。 . J . ..................... 图1固态存储设备的典型空间分配结构图
技经济市场
嵌入式系统的BootLoader技术浅析
瞿新吉
(山东省青岛第二卫生学校,山东青岛266308)
摘 要:BootLoader是嵌入式系统中在操作系统内核运行之前,进行硬件初始化的一段程序代码,BootLoader依赖于硬件
和应用环境,通过对BootLoader归纳出一些通用的概念特征,以指导特定的BootLoader设计与实现。本文重点介绍有/ 无操作系统的BootLoader的初始化过程,详细概述了有操作系统BootLoader的加载,将其细化分成两个阶段进行描述, 为BootLoader的设计和开发提供强大的参考价值。 关键词:嵌入式系统;启动过程;BootLoader技术
1 BootLoader技术概述
嵌入式系统是以应用为中心、以计算机为基础、软硬件可裁
剪,适用于系统对功能、可靠性、成本、功耗严格要求的专用计算
机系统。计算机系统都具有相应的引导程序,对于嵌入式系统在
执行主程序之前要执行一些初始化的过程来完成对系统的初始
化,并创造嵌入式程序运行的环境。我们熟悉的PC中的引导程
序一般BIOS和位于MBR的OS bootloader(例如HL0或者
GRUB)一起组成。
在嵌入式系统中,出于经济方面的考虑一般不配置BIOS,
在嵌入式系统中,通常采用BootLoader技术来启动程序。启动时
用于完成初始化操作的代码被称为BootLoader程序,整个系统
的加载启动任务就由BootLoader来完成。通过这段程序,可以
初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件
环境设定在一个合适的状态,以便为调用操作系统内核准备好
正确的环境。BootLoader依赖于硬件和应用环境,不同的CPU有
不同的Bootloader。即使他们是基于同一种CPU,要想让运行在
一块目标板上的Boofloader程序也能运行在另一块板子上,通
常也需要对BootLoader的源程序进行修改。因此,对Boofloader
嵌入式系统中 Bootloader 的设计与实现
马学文1,朱名日1,2,程小辉1 (1. 桂林工学院电子与计算机系,桂林 541004;2.中南大学信息物理工程学院,长沙 410083)
—97—
作者所承研的项目中硬件平台是基于 ARM7TDMI
RISC 内核的三星公司 S3C4510B 微处理器,采用的嵌入式
Linux 系统为 uCLinux。系统有 64MB SDRAM, 其地址从
0x 0800.0000 ~ 0x0bff.ffff, 还有 32MB Flash, 其地址从
0x0c00.0000~0x0dff.ffff。32MB Flash 具体规划如下:从
0x0c00.0000 开始的第 1 个 1MB 放 Bootloader,从 0x0c10.0000
开始的2MB放Linux kernel, 从0x0c30.0000开始的余下部分
都给 rootdisk。64MB SDRAM 启动后的具体程序分布示意图
如图 2 所示。
图 2 64MB SDRAM 的程序分布示意图
Bootloader 一般有几个文件组成。先是 START.s,也是
唯一的一个汇编程序,其余的都是 C 语言写成的,START.s
主要用来初始化堆栈:
_start:
ldr r1,=StackInit /* r1 是参数字符串的地址*/
ldr sp,[r1]
int main()
.equ StackInitValue,_end_data+0x1000
/* 在连结脚本中指定 4K __end_data*/
StackInit:
.long StackInitValue
.global JumpToKernel
JumpToKernel: /*拷贝内核的代码*/
mov pc, r0 /*获得 Kernel 地址*/
.global JumpToKernel0x /*用来扩展内核 */