嵌入式系统中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架构,支持的板卡有上百种。通常,它们可以从存储介质自动引导,可以引导操作系统,并且大多数都可以支持串口和以太网接口。
乌布
1.硬件管理
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的本质是一个裸机程序。
审计唐子红
推荐阅读
- alfa romeo车标含义?(阿尔法罗密欧车标)
- 华为鸿蒙os如何操作 华为鸿蒙os2.0系统官网报名入口
- 14款沃尔沃s60l二手车能买吗?(沃尔沃s60为什么贬值厉害)
- power mp3 wma converter(mp3格式转换器)软件介绍(power mp3 wma converter(mp3格式转换器))
- 42岁李贞贤宣布平安生女,网友:歌声击退山贼的那个
- 热火朝天的高铁WiFi迟迟未到(5G能否破局)
- 华为手机性价比最高是哪几款2022? 华为哪款手机性价比高最值得入手
- 进口捷豹全部车型报价?(捷豹报价大全价格表)
- 韩庚江铠同疑相恋,两人同游马尔代夫遭曝光
- 八卦格字帖软件介绍(八卦格字帖)
- 虚拟机 操作系统(操作系统整合:虚拟机管理程序的下一步)
- 比亚迪f6参数配置?(比亚迪f6)
- 奥沙利文获世锦冠军,奥沙利文得了几次世锦赛冠军
- Evel Knievel手游游戏介绍(Evel Knievel手游)
- 索尼wi1000x拆解(SONYNZW-X1000系列高清拆解图集)
- 4座硬顶敞篷跑车都有哪几款?(4门4座硬顶敞篷车推荐)
- 艺术体操团体全能决赛,艺术体操团体全能决赛中国
- 工人物语6通用修改器游戏介绍(工人物语6通用修改器)
- 简述电机换向器的工作原理图(简述电机换向器的工作原理)
- Atheros-AR5007EG无线网卡驱动软件介绍(Atheros-AR5007EG无线网卡驱动)