本文共 1262 字,大约阅读时间需要 4 分钟。
在嵌入式操作系统中,BootLoader是在内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用准备好正确的环境。在中,通常并没有像BIOS那样的程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。在一个基于ARM7TDMI core的中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。
Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装在到内存中然后跳转到操作系统所在的空间,启动操作系统运行。
在专用的板子运行GNU/Linux系统已经变得越来越流行。一个Linux系统从的角度看通常可以分为四个层次:
1、 引导加载程序。包括固化在(firmware)中的boot代码(可选),和BootLoader两大部分。 3、 文件系统。包括和建立于设备之上文件系统。通常用ramdisk来作为rootfs。 4、 用户。特定于用户的。有时在用户和层之间可能还会包括一个。常用的GUI有:MicroWindows和MiniGUI等。 引导加载程序是系统加电后运行的第一段。PC机中的引导加载程序由(其本质就是一段程序)和位于硬盘中的OS BootLoader(比如,和等)一起组成。BIOS在完成硬件检测和资源分配后,将硬盘MBR中的BootLoader读到系统的RAM中,然后将控制权交给OS BootLoader。BootLoader的主要运行任务就是将映象从硬盘上读到 RAM 中,然后跳转到内核的入口点去运行,也即开始启动。 通常,BootLoader是严重地依赖于硬件而实现的,特别是在世界。因此,在世界里建立一个通用的BootLoader几乎是不可能的。尽管如此,我们仍然可以对bootloader归纳出一些通用的概念来,以指导用户特定的BootLoader设计与实现。 1.自启动模式:在这种模式下,bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。 2.交互模式:在这种模式下,目标机上的bootloader将通过串口或网络等通行手段从开发主机(Host)上下载内核映像等到RAM中。可以被bootloader写到目标机上的固态存储媒质中,或者直接进入系统的引导。也可以通过串口接收用户的命令。 第一阶段: 3.设置堆栈指针并将bss段清零。为后续执行代码做准备; (a)自启动模式,从Flash或通过网络加载内核并执行; 转载地址:http://sacws.baihongyu.com/