首页>>科技 >>内容

简单说一下u-boot和bootloader的内容和区别

发布时间:2023-08-14 09:30:30编辑:温柔的背包来源:

简单说一下u-boot和bootloader的内容和区别

很多朋友对简单说一下u-boot和bootloader的内容和区别不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

的嵌入式软件工程师都听说过u-boot和bootloader,但是很多工程师还是不知道它们是什么。今天我们就来简单说说u-boot和bootloader的内容和区别。引导装载程序

Bootloader字面意思是开始加载。用过电脑的人都知道,windows会先加载bios,再加载系统内核,最后启动。那么bootloader就相当于手机的bios,在手机启动时根据基带初始化硬件,然后引导系统内核,直到系统启动。Bootloader是嵌入式系统上电后执行的第一个代码。通过这个小程序进行硬件初始化,内存大小信息等等,把手机调整到适应状态。

它在完成CPU及相关硬件的初始化后,将操作系统映像或固化的嵌入式应用程序安装到内存中,然后跳转到操作系统所在的空间,开始操作系统的运行。对于嵌入式系统,Bootloader是基于特定的硬件平台实现的。因此,几乎不可能为所有嵌入式系统建立一个通用的Bootloader,不同的处理器架构有不同的boot loader。

Bootloader不仅依赖于CPU的架构,还依赖于嵌入式系统中板级设备的配置。对于两个不同的嵌入式板卡,即使使用相同的处理器,如果在一个板卡上运行的Bootloader程序也可以在另一个板卡上运行,一般也需要修改Bootloader的源程序。

反过来说,大多数boot loader还是有很多共同点的,有些boot loader也可以支持多种架构的嵌入式系统。比如U-Boot同时支持PowerPC、ARM、MIPS、X86架构,支持的板卡有上百种。通常,它们可以从存储介质自动引导,可以引导操作系统,并且大多数都可以支持串口和以太网接口。Uboot1。硬件管理

Uboot应该能够管理Soc级(Soc内部外设)和板级(Soc外部外设)硬件。某些硬件的控制能力是在uboot中实现的(有些硬件是在uboot中初始化的),因为uboot必须让这些硬件工作才能完成某些任务。

例如,uboot必须能够驾驶in和以便刷机。比如uboot要想刷机时在LCD上显示进度条,就必须能驱动LCD。比如uboot如果能通过串口提供操作接口,就必须驱动串口。比如uboot必须驱动网卡芯片才能实现网络功能。2.能够完成烧镜(刷镜)。uboot应该可以在的帮助下完成刷机操作。参考SD卡刷的步骤:a .将uboot烧录到SD卡中。

烧录有两种方式:一种是用windows中的刷卡工具制作启动SD卡;另一种是在linux中使用dd命令。做好SD后,将SD卡插入开发板,然后开机进入uboot界面。b .使用uboot的fastboot命令,使用PC中的fastboot软件刻录镜像,包括uboot、内核、rootfs等。从上面可以看出,刷机是依靠uboot的fastboot命令将镜像写入对应的FLASH。3.uboot的“生命周期”

uboot的入口是自动启动,唯一的出口是启动内核。Uboot还可以执行很多其他的任务(比如烧系统),但是在其他任务执行完之后,你可以返回uboot的命令行继续执行uboot命令,而一旦执行了启动内核命令,就不能再回来了。4.uboot应该提供命令式shell接口。

Shell的意思是用户界面。Shell有命令行shell,比如windows下的cmd,比如linux下的terminal还有GUI风格的shell,比如常用窗口下的各种界面。Shell是封装后留下的接口,uboot应该也有这样的接口。shell的原理是:消息接收、解析、执行组成的无限循环。我之前用过3D打印机的固件,也是这个模式。Uboot的shell也使用行缓冲模式。

也就是说,回车键(换行键)被用作命令输入的结束。其他对应的缓冲方式有无缓冲和全缓冲:无缓冲是指输入一个字符,作为一个命令处理;全缓冲意味着无论输入什么都会被缓冲,直到缓冲区满了。

BootLoader和uboot bootloader的区别是嵌入式设备中用来启动操作系统内核的程序。Uboot(universal bootloader)是一个可以用于多种嵌入式CPU的bootloader程序,换句话说,Uboot是BootLoader的一个子集。uboot的核心功能是启动操作系统内核,uboot的本质是一个裸机程序。审计刘清

以上知识分享希望能够帮助到大家!