u-boot与bootloader及其区别

u-boot与bootloader及其区别


2024年4月9日发(作者:)

Bootloader

比Bootloader从字面上来看就是启动加载的意思。用过电脑的都知道,

windows开机时会首先加载bios,然后是系统内核,最后启动完毕。那么

bootloader就相当于手机的bios,它在手机启动的时候根据基带初始化硬

件,然后引导系统内核,直到系统启动。

Bootloader是嵌入式系统在加电后执行的第一段代码,通过这段小程

序,进行硬件初始化,获取内存大小信息等,调整手机到适配状态。在它

完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应

用程序装在到内存中然后跳转到操作系统所在的空间,启动操作系统运行 。

对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。因此,

几乎不可能为所有的嵌入式系统建立一个通用的Bootloader,不同的处理

器架构都有不同的Bootloader。Bootloader不但依赖于CPU的体系结构,

而且依赖于嵌入式系统板级设备的配置。对于2块不同的嵌入式板而言,

即使它们使用同一种处理器,要想让运行在一块板子上的Bootloader程序

也能运行在另一块板子上,一般也都需要修改Bootloader的源程序 。

反过来,大部分Bootloader仍然具有很多共性,某些Bootloader也

能够支持多种体系结构的嵌入式系统。例如,U-Boot就同时支持PowerPC、

ARM、MIPS和X86等体系结构,支持的板子有上百种。通常,它们都能够自

动从存储介质上启动,都能够引导操作系统启动,并且大部分都可以支持

串口和以太网接口。

uboot

1 硬件管理

uboot要能够进行Soc级(Soc内部外设)和板级(Soc外部外设)硬

件管理。

uboot中实现了一部分硬件的控制能力(uboot中初始化了一部分硬件),

因为uboot为了完成一些任务必须让这些硬件工作。譬如uboot要实现刷

机必须能驱动iNand,譬如uboot要在刷机时LCD上显示进度条就必须能驱

动LCD,譬如uboot能够通过串口提供操作界面就必须驱动串口。譬如uboot

要实现网络功能就必须驱动网卡芯片。

2 能够完成镜像烧录(刷机)

uboot要能够被借助完成刷机操作。参考下SD卡刷机的步骤:

烧录uboot到SD卡中,有2种烧写方法:一种是在windows中用刷卡

工具去制作启动SD卡;另一种是在linux中用dd命令。制作完SD后将SD

卡插入开发板,然后开机就可以进入uboot界面。

使用uboot的fastboot命令,并借助PC中的fastboot软件完成包括

uboot、kernel、rootfs等的镜像的烧录。

从上面就可以看出,刷机依靠的是uboot的fastboot命令,将镜像写

到相应的FLASH中。

3 uboot的“生命周期”

uboot的入口就是开机自动启动,uboot的唯一出口就是启动内核。

uboot还可以执行很多别的任务(譬如烧录系统),但是其他任务执行完后

都可以回到uboot的命令行继续执行uboot命令,而启动内核命令一旦执

行就回不来了。

4 uboot要提供命令式shell界面

shell是用户操作接口的意思。shell有命令行的shell,如windows

下的cmd,如linux下的终端;也有GUI式的shell,比如常用的windows

下的各种界面。shell是一种封装后留出来的接口,uboot也要有这样的一

个接口。

shell的原理是:由消息接收、解析、执行构成的一个死循环。我之前

用过3D打印机的固件(firmware)也是这样的模式。

uboot的shell使用的也是行缓冲的模式。也就是以回车键(换行键)

作为一个命令输入的结束。对应的其他缓冲模式还有无缓冲和全缓冲:无

缓冲就是输入一个字符就当做一个命令处理;全缓冲就是无论输入什么都

缓冲起来知道缓冲区满了才做一次处理。

bootloader 与 uboot的区别

BootLoader是嵌入式设备中用来启动操作系统内核的一段程序。

uboot(universal bootloader)是一种可以用于多种嵌入式CPU的

BootLoader程序,换言之,uboot是bootloader的一个子集。

uboot的核心作用就是启动操作系统内核,uboot的本质就是一段裸机

程序。


发布者:admin,转转请注明出处:http://www.yc00.com/web/1712617785a2090632.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信