bootloader

来源:互联网 发布:全职高手周边u盘淘宝网 编辑:程序博客网 时间:2024/05/21 05:43

bootloader的启动加载模式和下载模式

启动加载模式:

这种引导方式也称为“自主(autonomous)引导方式”,也即BootLoader从目标机的某个固态存储设备上将操作系统加载到RAM中并引导运 行,整个过程并没有用户的介入。这种引导方式是BootLoader的正常工作模式下普遍采用的一种引导方式。因此在嵌入式产品发布的时候,BootLoader一般以这种引导方式对内核代码进行启动引导。

下载模式:

在这种引导方式下目标机上的BootLoader将通过串口连接或网络连接等通信手段从主机下载文件,如下载应用程序、数据文件、内核映像等。从主机下载 的文件通常首先被BootLoader保存到目标机的RAM中,然后再被BootLoader写到目标机上的固态存储设备中,其后完成内核的引导运行。 BootLoader的这种引导方式通常在系统研发和更新时使用。

   在设计BootLoader时可以采用:一开始启动时处于正常的启动加载模式,但并不立即启动进uCOS-II核.而是提示延时5秒,等待终端用户如果按下某一特定按键,则切换到下载模式,否则继续启动uCOS-II内核。

执行bootloader时,将代码段,ROdata、RWdata段拷贝到RAM中,并初始化ZI段,bootloader分为两个阶段: 

bootloader stage1通常包含以下几个步骤(汇编语言部分):

1。硬件设备初始化

2。设置堆栈。

3。为加载stage2准备RAM空间

4。拷贝stage2到RAM空间

5。跳转到stage2的C入口。

bootloader stage2通常包含以下几个步骤(C语言部分):

1。初始化本阶段需要用到的硬件。

2。检测系统内存映射(memory map)

3。将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中

4。为内核设置启动参数

5。调用内核