初识uboot

Uboot的终极目标就是启动内核,能够引导操作系统内核启动并给内核传参,初始化好一部分硬件。

为什么是uboot:

1、uboot从哪里来的?
(1)uboot是SourceForge上的开源项目
(2)uboot项目的作者:一个德国人最早发起的项目
(3)uboot就是由一个人发起,然后由整个网络上所有感兴趣的人共同维护发展而来的一个bootloader。

2、uboot的发展历程
(1)自己使用的小开源项目。
(2)被更多人认可使用
(3)被SoC厂商默认支持
总结:uboot经过多年发展,已经成为事实上的业内bootloader标准。现在大部分的嵌入式设备都会默认使用uboot来做为bootloader。

uboot到底是干嘛的:
(1)uboot主要作用是用来启动操作系统内核。
(2)uboot还要负责部署整个计算机系统。
(3)uboot中还有操作Flash等板子上硬盘的驱动。
(4)uboot还得提供一个命令行界面供人来操作


uboot的生命周期:
Uboot的生命周期是指:uboot是 什么时候开始运行,什么时候结束。
Uboot本质上是一个裸机程序(不是什么操作系统),一旦uboot开始SOC就会单纯运行uboot(意思就是uboot运行的时候别的程序是不可能同时运行的)一旦uboot结束运行,则无法再回到uboot(所以uboot启动了 内核后uboot自己本身就死了,要想再次看到uboot界面只能重新启动系统,重启并不是复活了刚才的uboot,重启是uboot的另一生)。
Uboot的入口和出口,uboot的入口就是开机自动启动uboot的唯一出口就是启动内核,uboot还可以执行很多别的任务(譬如烧录系统),但是其他任务执行后都可以uboot的命令行继续执行uboot命令,而启动 内核命令一旦执行就回不来了。

uboot的工作方式:
从逻辑程序镜像uboot.bin说起,uboot分为2部分,小于16KB是一部分,大于16KB的是另一部分
Uboot的本质就是一个裸机程序,和裸机全集中写的那些裸机程序并没有本质区别,如果非要说区别,那就是:我们写的大部分小于16KB,而uboot大于16KB(一般uboot在180KB~400KB之间)。

uboot本身是一个开源项目:

由若干个.c文件和.h文件组成,配置编译之后会生成一个uboot.bin,这就是uboot这个裸机程序的镜像文件。然后这个镜像被合理的烧录到启动介质中拿给SOC去启动,也就是说uboot在没有运行时表现为uboot.bin,一般躺在启动介质中。

典型嵌入式linux系统启动过程:
嵌入式系统的部署和启动都是参考PC机的,只是 设备上有一些差别。
典型的嵌入式系统的部署:uboot程序部署在Flash(能作为启动设备的Flash上),OS部署在Flash(嵌入式系统中用Flash代替了硬盘)上,内存在掉电时无用,CPU在掉电时不工作。
启动过程:嵌入式系统上电先执行uboot,然后uboot负责初始化DDR,初始化Flash,然后将OS从Flash中到DDR中,然后启动OS(OS启动后uboot就无用了)。

android系统启动过程:
(1)android系统的启动和linux系统(前面讲的典型的嵌入式系统启动)几乎一样。几乎一样意思就是前面完全一样,只是在内核启动后加载根文件系统后不同了
(2)可以认为启动分为2个阶段:第一个阶段是uboot到OS启动;第二个阶段是OS启动后到rootfs加载到命令行执行;现在我们主要研究第一个阶段,android的启动和linux的差别在第二阶段.
 

总结:一切都是为了启动内核。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式_笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值