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

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

3天内不再提示

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

嵌入式开发爱好者 来源:一起学嵌入式 2023-06-06 10:01 次阅读

嵌入式软件工程师都听说过 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的本质就是一段裸机程序。





审核编辑:刘清

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

    关注

    68

    文章

    18275

    浏览量

    222140
  • 以太网
    +关注

    关注

    40

    文章

    5076

    浏览量

    166234
  • 嵌入式系统
    +关注

    关注

    40

    文章

    3430

    浏览量

    128217
  • u-boot
    +关注

    关注

    0

    文章

    116

    浏览量

    38044
  • LCD显示
    +关注

    关注

    0

    文章

    122

    浏览量

    18187

原文标题:u-boot和bootloader到底有什么区别

文章出处:【微信号:嵌入式开发爱好者,微信公众号:嵌入式开发爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    U-Boot介绍

    在移植 Linux之前我们需要先移植一个 bootloader 代码,这个 bootloader 代码用于启动 Linux 内核, bootloader有很多,常用的就是 U-Boot
    的头像 发表于 10-08 10:50 2793次阅读

    关于U-boot的问题?

    U-Boot是不是下载好的文件然后在ubuntu里去编译?U-Boot的编译和移植的区别和关系是什么?U-Boot的移植=烧写?
    发表于 05-12 08:22

    【OK210试用体验】u-boot篇 -- u-boot初体验

    形式,还有一些其他的强大功能,是ARM嵌入式系统bootloader的首选。 u-boot是开源项目,所以可以在官网下下载,地址:ftp://ftp.denx.de/pub/u-boot
    发表于 08-21 19:57

    uImage和U-BOOT有什么区别

    各位大哥好 小弟初学嵌入式开发板现有如下几个问题想要请教各位大哥:1、既然已经烧写了U-BOOT那为什么还要烧写uImage uImage是U-BOOT编译后的产物,这两者之间有什么区别?2
    发表于 06-25 04:27

    U-boot的特点是什么

    Bootloader的操作模式常用bootloader介绍​U-boot介绍U-boot的特点:U-boot命令介绍printenv 显示所
    发表于 12-14 09:22

    怎样去移植u-boot呢?移植u-boot的过程是怎样的呢

    BootLoader是什么?怎样去移植u-boot呢?移植u-boot的过程是怎样的呢?
    发表于 12-29 06:13

    U-BOOT的启动流程分享

    Bootloader移植(下)U-BOOT 启动流程u-boot启动三个2启动步骤(重点)U-boot 启动源码分析U-BOOT 启动流程
    发表于 01-18 10:17

    如何使用UUU刷入u-bootu-boot-environment?

    你好!我想要在 Verdin iMX8MP SoM 的 eMMC 存储的 boot0 硬件分区中使用闪存 u-boot 和相应的带有 UUU 的 u-boot-environment 映像。根据
    发表于 04-10 07:00

    U-Boot的启动及移植分析

    bootloader 开发是嵌入式系统必不可少而且十分重要的部分,U-Boot 为功能强大的bootloader 开发软件。本文详细分析了U-Boot 的启动流程,并结合其源码,阐述了
    发表于 09-01 16:34 27次下载

    嵌入式U-BOOT的启动流程及移植

    摘要:嵌入式系统一般没有通用的bootloader,u-boot是功能强大的bootloader开发软件,但相对也比较复杂。文中对u-boot的启动流程作了介绍,详细给出了
    发表于 02-25 16:00 59次下载

    基于S3C6410的u-boot分析与移植

    Bootloader 的设计是整个嵌入式系统中开发中一个非常重要步骤,u-boot是当前比较流行、功能强大的开源Bootloader。文中分析了u-boot的启动流程并详细阐述了将其移
    发表于 09-12 16:59 174次下载

    U-Boot架构浅析

    导读:嵌入式Linux系统搭建,bootloader是必不可少的一环,而U-Boot已成嵌入式Linux事实标准。所以较为深入的分析U-Boot的设计,对于更...
    发表于 02-07 11:56 7次下载
    <b class='flag-5'>U-Boot</b>架构浅析

    u-bootbootloader内容以及区别

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

    嵌入式系统中u-bootbootloader详解

    嵌入式软件工程师听说过 u-bootbootloader,但很多工程师依然不知道他们到底是啥。
    发表于 10-20 13:12 1689次阅读

    简单讲讲u-bootbootloader有啥区别

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