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

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

审核编辑:汤梓红

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

    关注

    5186

    文章

    20145

    浏览量

    328748
  • u-boot
    +关注

    关注

    0

    文章

    123

    浏览量

    39471
  • bootloader
    +关注

    关注

    2

    文章

    241

    浏览量

    47672

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入理解 RK3506 U-Boot 重定位:从代码到原理

    在嵌入式系统中,U-Boot 作为引导加载程序,其启动流程的核心环节之一就是 重定位(Relocation) 。对于 RK3506 这类基于 ARM Cortex-A 架构的芯片,重定位的本质是将
    的头像 发表于 11-28 07:05 97次阅读
    深入理解 RK3506 <b class='flag-5'>U-Boot</b> 重定位:从代码到原理

    国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—eMMC配置核心板使用说明(二)

    本文为创龙科技eMMC 配置核心板官方使用指南,聚焦 Linux 系统在该核心板上的应用。主要内容包括启动卡与 “量产卡” 制作、两种 eMMC 固化方式、分区与 OTA 升级说明、全量及局部镜像编译、eMMC 读写性能测试,以及 SPL、
    的头像 发表于 09-10 10:55 355次阅读
    国产!全志T113-i 双核Cortex-A7@1.2GHz 工业开发板—eMMC配置核心板使用说明(二)

    U-Boot 无法识别 NAND怎么解决?

    U-Boot 无法识别 NAND
    发表于 09-03 06:37

    fn_u-boot-spl.bin和u-boot-spl.bin区别是什么?请问如何从u-boot-spl.bin生成fn_u-boot-spl.bin?

    fn_u-boot-spl.bin = bootrom头 + u-boot-spl.bin ;生成过程见后面代码片段; bootrom头(格式详见) + u-boot-spl.bin(标准的一级
    发表于 07-11 07:58

    飞凌嵌入式ElfBoard ELF 1板卡-uboot编译u-boot/u-boot.bin/u-boot.imx

    u-boot文件就是编译流程章节讲的,链接器将链接各.o文件之后生成的.elf文件,该文件中包含了大量的调试信息、地址信息和注释信息,不能被直接执行,需要转换成为可执行的u-boot.bin文件,而
    发表于 05-22 11:24

    飞凌嵌入式ElfBoard ELF 1板卡-Uboot

    上节中讲到U-BootBootLoader的一种,U-Boot全称为Universal Boot Loader,即通用的BootLoader
    发表于 05-22 10:44

    飞凌嵌入式ElfBoard ELF 1板卡-Uboot简介之BootLoader

    BootLoader是不同平台或项目的启动加载程序的统称,不单指某一个程序,比如,常见的BootLoader有,Redboot,Armboot,U-Boot等。
    发表于 05-22 10:42

    瑞芯微RK3506 3核A7@1.5GHz+双网口+双CAN-FD 工业开发板—Linux系统开发手册

    本文主要演示Linux系统开发流程。包括LinuxSDK的配置与编译,U-Boot、Kernel及Rootfs开发,以及系统镜像的替换方法,旨在帮助开发者完成系统开发。
    的头像 发表于 05-20 09:24 1139次阅读
    瑞芯微RK3506 3核A7@1.5GHz+双网口+双CAN-FD 工业开发板—Linux系统开发手册

    求助,关于在S32G399ARDB3板上的Multicore Bootloader中启用HSE功能的问题求解

    它是一个多核 bootloader,但我们观察到控件不会从 bootloader 过渡到 U-Boot,但并行 m core autosar 应用程序正在运行。为了调试问题,我禁用了 M 内核,但控件
    发表于 04-07 09:16

    IMX8mn DDR3L EVK在u-boot上初始化UART3时出错怎么解决?

    ;; assigned-clock-parents = < clk IMX8MN_SYS_PLL1_80M>; u-boot,dm-spl; uart-has-rtscts 的 Rtscts; status
    发表于 04-04 07:26

    TWR-VF65GS10塔式模块上编译的U-Boot没有控制台输出是怎么回事?

    我有一个预构建的映像(来自 LinuxLink Timesys 的工厂起点),其中包括 SD 卡上的 U-Boot 和 Linux,它通过连接到板上 D9插头的 TWR-SER-SCH
    发表于 04-03 06:03

    U-BootBootloader,99% 的工程师都分不清?

    嵌入式软件工程师听说过 u-bootbootloader,但很多工程师依然不知道他们到底是啥。   今天就来简单讲讲 u-bootbootloader 的
    的头像 发表于 03-25 20:47 1416次阅读

    IMX8ULP如何通过修改u-boot dtsi在启动时启用WiFi和蓝牙?

    我正在开发 Linux BSP 的 IMX8ULP EVK。我已经根据 linux 参考手册使用“modprobe moal mod_para=nxp/wifi_mod_para.conf”完成了内核级集成。如何通过修改 u-boot dtsi 在启动时启用 WiFi 和蓝牙?
    发表于 03-17 06:41

    请问stm32u545这种spi带boot的和不带boot的有什么区别

    请问这种spi带boot的和不带boot的有什么区别
    发表于 03-10 07:16

    Bootloader解决方案—INTEWORK-EAS-Boot

    INTEWORK-EAS.Boot是经纬恒润自主研发的BootLoader软件产品。可基于客户指定 MCU 型号、集成开发环境和 OEM 规范进行定制化方案设计和开发,目前基于客户需求已经在在数十款
    的头像 发表于 12-20 14:13 1112次阅读
    <b class='flag-5'>Bootloader</b>解决方案—INTEWORK-EAS-<b class='flag-5'>Boot</b>