NXP

关于 BootLoader

2019-07-12 11:29发布

class="markdown_views prism-kimbie-light">
简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序。
通过这段小程序,我们可以初始化硬件设备建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。 在嵌入式系统中,通常并没有像 BIOS 那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由 BootLoader 来完成。比如在一个基于ARM7TDMI core的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的 BootLoader 程序。 而 uboot 其实是 bootloader 的一种,对于每种体系结构,都有一系列开放源码 Bootloader 可以选用。 以 ARM 处理器为例,每种芯片的开发板都有自己的 bootloader ,结果 ARM bootloader 也变得多种多样。最早有为 ARM720 处理器的开发板的固件,又有了 armboot ,StrongARM 平台的 blob ,还有 S3C2410 处理器开发板上的 vivi 等。现在 armboot 已经并入了 U-Boot ,所以 U-Boot 也支持 ARM/XSCALE 平台。U-Boot 已经成为ARM平台事实上的标准 Bootloader