博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uboot结构之BL0、BL1、BL2、BL3区别于关系
阅读量:2498 次
发布时间:2019-05-11

本文共 632 字,大约阅读时间需要 2 分钟。

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外内存硬件不同、工作频率不同,进行初始化设置,完成后续代码加载到初始化后的内存中运行

转载地址:http://mzcrb.baihongyu.com/

你可能感兴趣的文章
提取面狭长角
查看>>
Arcsde表空间自动增长
查看>>
Arcsde报ora-29861: 域索引标记为loading/failed/unusable错误
查看>>
记一次断电恢复ORA-01033错误
查看>>
C#修改JPG图片EXIF信息中的GPS信息
查看>>
从零开始的Docker ELK+Filebeat 6.4.0日志管理
查看>>
Sequelize的原始查询的时区问题
查看>>
How it works(1) winston3源码阅读(A)
查看>>
How it works(2) autocannon源码阅读(A)
查看>>
How it works(3) Tilestrata源码阅读(A)
查看>>
How it works(12) Tileserver-GL源码阅读(A) 服务的初始化
查看>>
uni-app 全局变量的几种实现方式
查看>>
echarts 为例讲解 uni-app 如何引用 npm 第三方库
查看>>
uni-app跨页面、跨组件通讯
查看>>
springmvc-helloworld(idea)
查看>>
JDK下载(百度网盘)
查看>>
idea用得溜,代码才能码得快
查看>>
一篇掌握python魔法方法详解
查看>>
数据结构和算法5-非线性-树
查看>>
数据结构和算法6-非线性-图
查看>>