0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

u-boot和bootloader的内容以及区别

硬件笔记本 来源:硬件笔记本 作者:硬件笔记本 2022-07-03 15:27 次阅读

嵌入式软件工程师听说过 u-boot 和 bootloader,但很多工程师依然不知道他们到底是啥。

今天就来简单讲讲 u-boot 和 bootloader 的内容以及区别。

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卡刷机的步骤:

a.烧录uboot到SD卡中。有2种烧写方法:一种是在windows中用刷卡工具去制作启动SD卡;另一种是在linux中用dd命令。制作完SD后将SD卡插入开发板,然后开机就可以进入uboot界面。

b.使用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的本质就是一段裸机程序。

原文标题:嵌入式基础之u-boot和bootloader

文章出处:【微信公众号:硬件笔记本】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4981

    文章

    18281

    浏览量

    288387
  • u-boot
    +关注

    关注

    0

    文章

    116

    浏览量

    38044
  • bootloader
    +关注

    关注

    2

    文章

    230

    浏览量

    45045

原文标题:嵌入式基础之u-boot和bootloader

文章出处:【微信号:gh_a6560e9c41d7,微信公众号:硬件笔记本】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    u-boot armv8链接脚本

    u-boot armv8链接脚本 在进行源码分析之前,首先看看u-boot的链接脚本,通过链接脚本可以从整体了解一个u-boot的组成,并且可以在启动分析中知道某些逻辑是在完成什么工作
    的头像 发表于 12-07 11:19 243次阅读

    u-boot源码的编译配置方式

    u-boot使用了同Linux一样的编译配置方式,即使用kbuild系统来管理整体代码的配置和编译,通过defconfig来定制各种不同厂商的芯片bootloader二进制程序。 编译只需要注意通过
    的头像 发表于 12-07 11:12 357次阅读

    简单讲讲u-bootbootloader有啥区别

    搞嵌入式软件开发,掌握u-bootbootloader应该是必备的技能之一,但很多工程师依然不知道它们到底是啥。
    的头像 发表于 11-09 12:24 415次阅读

    U-BOOT更新失败后如何处理?

    1.按照软件快速指南手册,更新VF2的U-BOOT和SPL,通过TFTP将更新文件刷进去了。重新上电后,SPI-Flash无法进入U-BOOT;2.下载Recovery二进制工具文件,通过UART口
    发表于 09-12 07:43

    u-bootbootloader区别

    Bootloader从字面上来看就是启动加载的意思。用过电脑的都知道,windows开机时会首先加载bios,然后是系统内核,最后启动完毕。那么bootloader就相当于手机的bios,它在手机启动的时候根据基带初始化硬件,然后引导系统内核,直到系统启动。
    发表于 08-29 10:17 380次阅读

    SS524V100 单板移植和烧写U-boot(一)

    SS524V100单板的Bootloader采用U-boot,。当选用的外围芯片的型号与单板上外围芯片的型号不同时,需要修改U-boot配置文件,本文主要介绍了U-boot的移植与烧写
    的头像 发表于 08-22 10:31 385次阅读

    U-boot的执行流程

    本文主要讲述了U-boot的执行流程。
    发表于 07-14 16:58 466次阅读
    <b class='flag-5'>U-boot</b>的执行流程

    U-boot的基本介绍

    从本文开始,将陆续推送“手把手教你移植U-boot”系列文章,目标是由浅入深地讲解U-boot的工作流程、原理、配置方法和移植方法,手把手教你完成U-boot的移植工作,默认硬件开发平台为ARM,操作系统为Linux。
    发表于 07-14 16:52 1470次阅读
    <b class='flag-5'>U-boot</b>的基本介绍

    如何在U-BOOTboot.scr中加载bit文件

    在2020.1版本之后,u-boot阶段会执行boot.scr来加载后续的kernel和rootfs
    的头像 发表于 07-12 15:43 1799次阅读
    如何在<b class='flag-5'>U-BOOT</b>的<b class='flag-5'>boot</b>.scr中加载bit文件

    Rockchip rk3588 U-Boot详解(一)

    ,很庆幸,有很多现成的 bootloader 软件可以使用,比如 U-Boot、vivi、RedBoot 等等,其中以 U-Boot 使用最为广泛。
    的头像 发表于 06-13 09:08 2309次阅读
    Rockchip rk3588 <b class='flag-5'>U-Boot</b>详解(一)

    简单讲讲u-bootbootloader内容以及区别

    嵌入式软件工程师都听说过 u-bootbootloader,但很多工程师依然不知道他们到底是啥。
    的头像 发表于 06-06 10:01 1056次阅读

    如何用usb命令编译u-boot的文档?

    我想在s32g2的u-boot中使用usb命令,但是s32g2的u-boot中没有usb命令。 有编译好的u-boot可以解决这个问题吗?或者有没有教我如何用usb命令编译u-boot
    发表于 06-05 09:28

    iMX8MM EVK的U-Boot是否支持SPI接口?

    我正在为我的项目使用 iMX8MM EVK。我需要通过在 u-boot 控制台上发出命令,通过 SPI 接口在 iMX8mm 和其他外围设备之间传输数据。 iMX8MM EVK 的 U-Boot 是否支持 SPI 接口? 如果支持,如何配置
    发表于 05-29 08:58

    如何在Linux用户空间修改U-boot配置?

    我想在启动内核之前更改 linux 用户空间中的 u-boot 变量而不是 u-boot 提示窗口。 我正在使用 lsdk1906,我的内核是 4.19。我正在从 SD 卡启动。 我听说有一种
    发表于 05-06 07:12

    i.MX6ULL u-boot中一些U盘访问失败怎么解决?

    ) u-boot EHCI Host Controller => 所以我认为 NXP u-boot 中可能存在错误,并且与 i.MX6ULL 的 USB 相关的内容在“睡眠 3”秒后发生了变化。 请 NXP 专家
    发表于 05-05 09:00