uboot简介

1. 嵌入式系统部署

uboot部署在Flash上(启动设备)、OS部署在Flash上(硬盘)、内存掉电时无作用、CPU掉电时不工作

2. 嵌入式系统启动过程

系统上电后先执行uboot,uboot负责初始化DDR、初始化Flash,然后将OS从Flash读取到DDR中,最后启动OS。(OS启动后,uboot就没用了)

3. uboot的作用

(1)uboot的主要作用是用来启动操作系统内核。

(2)uboot还负责部署整个计算机系统

(3)uboot能操作Flash等硬件设备

(4)uboot提供命令行界面供人操作

4. uboot来源

uboot是SourceForge上的一个开源项目,最早由一个德国人发起,然后由整个网络上所有感兴趣的人共同维护发展而来的一个bootloader。

5. uboot发展历程

(1)个人使用的小开源项目

(2)被很多人认可使用

(3)被SoC厂商默认支持

总结:uboot经过多年发展,已经成为事实上的业内bootloader标准。现在大部分的嵌入式设备都会默认使用uboot来作为bootloader。

6. uboot版本号

早期的uboot的版本号类似于这样:uboot1.3.4;后来的版本号类似于:uboot-2010.06

7. uboot需要解决的问题

(1)开机自启

一般的SoC都支持多种启动方式,例如SD卡启动、NorFlash启动、NandFlash启动等,uboot要能够开机自启,必须根据具体的SoC的启动方式来设计uboot。因此uboot要完成这一功能,就必须进行硬件级别的代码更改、移植,才能够保证从相应的启动介质启动。

在uboot的第一阶段中,start.S具体处理了这一块。

(2)引导内核启动并给内核传参

uboot的终极目标是启动内核。

linux内核在设计的时候,就设计为可以被传参。也就是说可以在uboot中事先给linux内核准备一些启动参数,并将其放在内存中特定的位置传递给内核,然后内核启动后会到这个特定位置去读取uboot传递给它的参数,最后在内核中解析这些参数(这些参数将被用来指导linux内核的启动过程)。

(3)部署系统

uboot能够被借助完成整个系统(uboot、kernel、rootfs等镜像)在Flash上的烧录下载工作。

(4)管理SoC和开发板上的硬件

uboot要完成某些功能(比如ping等)时,必须要硬件配合,因此uboot要能对硬件(可能在SoC上,也可能在开发板上)进行管理。

8. uboot的生命周期

uboot的生命周期指的是uboot什么时候开始运行、什么时候结束运行。

开发板上电,uboot开机自启,因此uboot开发板上电时开始运行;uboot的最终目标是启动内核,因此内核启动后,uboot结束运行。所以,uboot的生命周期就是开发板上电到启动内核。

9. uboot的工作方式

uboot的工作方式分为两种:非运行时和运行时。

uboot在配置编译后生成一个uboot.bin,因此非运行时表现为uboot.bin,一般放在启动介质中;运行时,会被加载到内存中,一条指令一条指令运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值