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

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

3天内不再提示

简单讲讲u-boot和bootloader有啥区别

冬至子 来源:嵌入式专栏 作者:strongerHuang 2023-11-09 12:24 次阅读

嵌入式软件开发,掌握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
    +关注

    关注

    0

    文章

    120

    浏览量

    38199
  • 嵌入式设备
    +关注

    关注

    0

    文章

    110

    浏览量

    16931
  • GUI
    GUI
    +关注

    关注

    3

    文章

    648

    浏览量

    39545
  • bootloader
    +关注

    关注

    2

    文章

    234

    浏览量

    45540
  • Flash存储
    +关注

    关注

    0

    文章

    38

    浏览量

    8277
收藏 人收藏

    评论

    相关推荐

    U-Boot介绍

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

    U-boot的基本介绍

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

    U-Boot的启动及移植分析

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

    Porting U-Boot to the Control

    In this paper, the way of porting U-Boot to Control Computer Based MPC8349 will beintroduced
    发表于 01-25 15:45 13次下载

    NIOS软核处理器的Linux引导程序U-boot设计

    摘要: 针对将uClinux向Nios处理器移植过程中的启动加载程序U-boot bootloader进行研究。首先介绍移植的步骤,然后利用bootloader的设计思想,着重讨论U-boot
    发表于 06-20 15:27 964次阅读
    NIOS软核处理器的Linux引导程序<b class='flag-5'>U-boot</b>设计

    嵌入式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简介

    U-BootBootLoader的一种,是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个
    发表于 10-14 11:17 3540次阅读

    fireflyAIO-3399C主板U-Boot介绍

    RK U-Boot 基于开源的 U-Boot 进行开发,工作模式启动加载模式和下载模式。
    的头像 发表于 12-04 10:31 1412次阅读

    fireflyAIO-3288J主板U-Boot使用简介

    RK U-Boot 基于开源的 U-Boot 进行开发,工作模式启动加载模式和下载模式。
    的头像 发表于 12-20 10:06 1536次阅读
    fireflyAIO-3288J主板<b class='flag-5'>U-Boot</b>使用简介

    fireflyAIO-3399J主板U-Boot使用介绍

    RK U-Boot 基于开源的 U-Boot 进行开发,工作模式启动加载模式和下载模式。
    的头像 发表于 12-24 10:00 1611次阅读
    fireflyAIO-3399J主板<b class='flag-5'>U-Boot</b>使用介绍

    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 1527次阅读

    嵌入式系统中u-bootbootloader详解

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

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

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