bootloader概述

来源:互联网 发布:如何查询别人淘宝id 编辑:程序博客网 时间:2024/06/06 02:55

简单地说,bootloader就是在操作系统内核运行前运行的一段程序。通过这段程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境设置成合适的状态,为操作系统内核准备好正确的环境。

PC机的引导程序就是我们常说的BIOS(Basic Input Output System)。对于千差万别的嵌入式设备,几乎不可能建立像BIOS一样的通用引导程序,但是可以在这些Bootloader中寻找出共性。

大多数Bootloader都包含两种操作模式:启动加载模式下载模式。启动加载模式是正常运行时的模式,也是产品发布时必须工作在的模式。下载模式通常是在产品开发调试阶段用的模式。在下载模式下,Bootloader程序将通过串口连接或者网络连接等通信手段从主机上下载内核镜像或是跟系统文件镜像。下载的文件通常被保存在目标机(也就是我们的开发板)的RAM中,然后被Bootloader写到目标机的FLASH等固态存储设备中。工作在下载模式时,Bootloader通常会有一个命令行接口提供给用户。

Bootloader通常有多个执行过程,大多数的Bootloader有stage1和stage2两个阶段,阶段越多功能越强大。在stage1阶段,通常是一些依赖于CPU体系结构的代码,如硬件初始化等操作。stage2通常是执行内核镜像的加载和根文件系统镜像的加载操作,一般用C编写,有较好的可读性和可移植性。

Bootloader的stage1通常包括一下步骤:

1、硬件设备初始化。屏蔽所有中断,设置cpu时钟频率,RAM初始化,关闭CPU内部指令/数据Cache。

2、为加载stage2 准备RAM空间,设置好堆栈,跳至stage2.

stage2包括以下步骤:

1、初始化要用到的硬件设备。

2、检测系统内存映射。

3、将kernel映像和根文件系统映像从Flash读到RAM中。

4、为内核设置启动参数,调用内核。

0 0
原创粉丝点击