uboot结构之BL0、BL1、BL2、BL3区别于关系

1、uboot功能

uboot是常见的BootLoader的一种,主要的功能就是完成加载操作系统的功能。

2、BL0、BL1、BL2、BL3

uboot的最终实现的功能是将操作系统加载到内存运行起来,但是实际的过程是分阶段、分目的的,根据不同的功能、实现代码的公司不同,进行了更加细致的划分。

注意,这里的划分都是针对三星公司的SOC,这里针对的是Exynos4412

3、为什么要分成BL0、BL1、BL2、BL3

uboot在引导加载操作系统的过程中,会遇到设置CPU的时候(比如看门狗、MMU、IRQ、栈、cache等基本都不会根据外围平台设备变化而变化),也会遇到设置SOC的时候(系统时钟、内存等很容易随着平台设备变化而变化),还有就是在程序启动运行的工程中,经常会出现存储和运行的存储器经常变化的情况,因此根据设置的内容、启动加载的空间进行的不同的划分。

BL0:三星公司固化到SOC内部的ROM(iROM),里面主要是尽可能只做uboot加载,尽可能消除其他的影响(关闭WDT、禁用IRQ、关闭cache等等),接下来就是从外设拷贝加载BL1

BL1:没什么特殊功能,特点就是经过加密的,而且BL1由三星公司提供好的,完成对BL2的加载到iRAM运行。要想在开发板上移植运行后续的代码,通过签名的方式实现软件和硬件合法性的匹配

BL2:由平台研发人员编写,根据SOC外内存硬件不同、工作频率不同,进行初始化设置,完成后续代码加载到初始化后的内存中运行

猜你喜欢

转载自blog.csdn.net/CSDNmianfeixiazai001/article/details/83378739