Bootloader,称为引导加载程序,是嵌入式系统加电后运行的第一段代码,相当于PC机的BIOS。
•Bootloader通常固化在硬件上某个固态存储设备上,加电后自启动。
•通过Bootloader这段代码,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
•Bootloader的主要任务是:正确地调用内核来加载操作系统。
•在基于ARM的嵌入式系统中,系统在上电或复位时通常都从地址0x0000,0000处开始执行,而在这个地址处安排的通常就是系统的Bootloader。
•Bootloader是严重地依赖于硬件而实现的。每种不同体系结构的处理器都有不同的Bootloader。不过Bootloader的发展也趋于支持多种体系结构,如现在比较成熟的vivi、RedBoot和U-Boot等。
1、vivi
vivi是韩国Mizi公司开发的Bootloader,适用于ARM9处理器。
2、RedBoot
RedBoot也称作红帽(Red Hat)嵌入式调试引导程序,是一种用于嵌入式系统的独立开放源代码引导/装载器。
3、U-Boot
U-Boot(Universal Bootloader)是一款目前功能较为强大的开源Bootloader程序,它支持多种处理器平台,包括ARM、MIPS等。
Bootloader操作模式
•大多数Bootloader都包含两种不同的操作模式:“启动加载”模式和“下载”模式,这种区别仅对于开发人员才有意义。
•从最终用户的角度看,Bootloader的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。
1、启动加载(Bootloading)模式
l启动加载模式称为“自举”(Autonomous)模式。即Bootloader从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。
l启动加载模式是 Bootloader的正常工作模式,在嵌入式产品发布的时侯,Bootloader必须工作在这种模式下。