-
Bootloader
技术
< br>在嵌入式系统中,启动加载程序
bootloader
类
似于
PC
的
BIOS,
其作用就是初始化硬件,让
系统运行起来。
(
BIOS
技术详见第八章
315
页)
bootloader
的基本概念
<
/p>
在嵌入式想系统中,系统上电所执行的第一段程序是
bootlo
ader
,第一条指令位于微处理器
程序计数器
PC
复位后所指向的位置。
Bootloader
具有对
ARM
板
上的主要部件
(如
ARM
处理器,
p>
SDRAM,Flash,
串行口,
以太网
,
显示接口等)进行初始化操作,通过串行口或以太网下载文件到
SDRAM,
对
Flash
进行擦除
与编程,加载
Flash
中的操作系统
到内存等功能。
1bootloader
概念
Bootloader
主要用于完成由硬件启动到操作系统启动的过度
:初始化硬件设备,建立内存空
间的映射图,
建立目标机遇宿主
机的通信和调试通信,
从而将系统的软硬件环境配置到一个
合适
的状态,最终完成系统内核的配置加载以及内核的引导运行等重要工作。
简单地说,
Boot Loader
就是在操作系统内核运行之前运行的一段小程序。通过这段小程
序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一
个合适的状态,以便为最终调用操作系统内核准备好正确的环
境。
特点
(
1
)
p>
Bootloader
支持的处理器(具体见课本
< br>317
)
(
2
)
Bootloader
的安装介质
(
3
)
Bootloader
的控制机制
(
4
)
Bootloader
的启动过程
<
/p>
Bootloader
的启动过程分单阶段和多阶段两种,多阶段
的
Bootloader
提供更复杂的
功能,以及更好的可移植性。从固态存储设备上启动的
Bootloader
大多是
2
阶段的
启动过程
:称为
Stage1
和
stage2<
/p>
两个阶段。
(
5
)
Bootloader
的操作模式
大多数
Boot Loader
都包含两种不同的操作模式:
启动加载
模式和
p>
下载
模式,这种区
别仅对于开发人员
才有意义。但从最终用户的角度看,
Boot
Loader
的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下
p>
载工作模式的区别。
启动加载(
Boot loading
)模式:
这种模式也称为
自主
(
Autonomous
)模式。也即
Boot Loader
< br>从目标机上的某个
固态存储设备上将操作系统加载到
RAM
中运行,整个过程并没有用户的介入。这种模式是
Boot Loader
的正常工作
模式,因此在嵌入式产品发布的时侯,
Boot Loader
显然必须工作在这种模式下。
下载(
Downloading
)模式:
在这
种模式下,目标机上的
Boot Loader
将通过串口连接或网络连接等通信手段从主机
(
H
ost
)下载文件,比如:下载内核映像和根文件系统映像等。从主机下载的文件通常首
先被
Boot Loader
保存到目
标机的
RAM
中,然后再被
Boot Loader
写到目标机上的
FLASH
类固态存储设备中。
Boot Loader
的这种模式通常
在第一次安装内核与根文件系统时被使用;此外,以后的系统更
新也会使用
Boot Loader
的这种工作模式。工作于这
种模式下的
Boot Loader
通常都会向它的终端用户提供一个简单的命令行接口。
像
Blob
或
U-Boot
等这样功能强大的
Boot
Loader
通常同时支持这两种工作模式,而且允许用户在这两种工作模式
之间进行切换。
比如,
Blob
在启动时处于正常的启动加载模式,
但是它会延时
10
秒等待终端用户按下任意键而将
blob
切换到下载模式。如果在
10
秒内没有用户按键,则
blob
继续启动
Linux
内核。
(
6
)
bootloader
与宿主之间的通信。
Bootloa
der
启动流程
:
一:
stage1