首页
时事
民生
政务
教育
文化
科技
财富
体娱
健康
情感
更多
旅行
百科
职场
楼市
企业
乐活
学术
汽车
时尚
创业
美食
幽默
美体
文摘
嵌入式的 u-boot 和 bootloader,区别是什么
科技
2025-01-14 08:03
广东
嵌入式软件工程师听说过 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的本质就是一段裸机程序。
扫码加入
嵌入式交流群
面包板社区
分享电子技术干货,电子工程师福利!EET电子工程专辑、ESM国际电子商情、EDN电子技术设计官方社区。
最新文章
动图演示,电子系统中常用通信协议原理
透彻理解模电
开关电源超全讲解,关键器件计算与选型
图解 RAM、ROM,有什么不一样?
USB转SPDIF,还用了红威马电容,拆解一个音频设备
如何让MOS管快速开启和关闭
工程师常用模拟电路合集
裁员为什么不裁老板?
两电池供电时的电源切换设计
采样电阻,有门道!
拆解欧姆龙血压计,看看爆款的电路设计
AC/DC、DC/DC转换器基础指南
元器件PCB封装大全
Y电容容量为什么不能太大呢?
继电器选型技巧详解
华为文档:什么是光模块
电子工程师 2024 年的 6 大关键词
PCB Layout 常见的坑,你遇到过吗?
漫画科普 | 什么是 MCU?
了解 BLDC 电机控制算法
功放驱动问题:音量加大后,喇叭发热严重,怎么回事?
实用电子电路400例
工程师做技术,千万不能想当然
产品老化后,触发欠压报警,怎么回事?
中美工程师对账,硬件十年在美国能拿到多少?
隔离电源芯片PCB布线注意事项
牛啊!工程师手搓一个上古胆机,来听听效果怎么样!
MOSFET好,还是IGBT好?
6大传感器原理解析
移位寄存器74HC595的基础知识
华为为什么要招数学博士?
分享一个关于阻抗的超详细讲解
什么PCB过孔?什么背钻?
ADC内部原理(ST文档整理)
五毛包邮的ETC到底是什么技术狠活儿?拆解告诉你真相!
用于电机控制的空间矢量调制 (SVM)
VCC、 VDD、VEE、VSS 电压理解
示波器探头有X1和X10档,测的时候怎么选择?
2025年,电子行业到底能不能复苏?
人均48万元,华为2024年分红700多亿!
耳机功放、小机器人,还有那些年熬夜改程序做的智能小车...
PCB走线,盲目拉线,拉了也是白拉!
三极管放电回路怎么理解?
掌握常见的九类功放电路
超全电源电路图详解
接地电阻为什么一般不大于4Ω?
理解MOS管的米勒效应
以太网知识:什么是MAC,什么是PHY,什么是MII
无线通信中的FDMA/TDMA/CDMA,你都知道是什么意思吗?
单片机科普干货
分类
时事
民生
政务
教育
文化
科技
财富
体娱
健康
情感
旅行
百科
职场
楼市
企业
乐活
学术
汽车
时尚
创业
美食
幽默
美体
文摘
原创标签
时事
社会
财经
军事
教育
体育
科技
汽车
科学
房产
搞笑
综艺
明星
音乐
动漫
游戏
时尚
健康
旅游
美食
生活
摄影
宠物
职场
育儿
情感
小说
曲艺
文化
历史
三农
文学
娱乐
电影
视频
图片
新闻
宗教
电视剧
纪录片
广告创意
壁纸头像
心灵鸡汤
星座命理
教育培训
艺术文化
金融财经
健康医疗
美妆时尚
餐饮美食
母婴育儿
社会新闻
工业农业
时事政治
星座占卜
幽默笑话
独立短篇
连载作品
文化历史
科技互联网
发布位置
广东
北京
山东
江苏
河南
浙江
山西
福建
河北
上海
四川
陕西
湖南
安徽
湖北
内蒙古
江西
云南
广西
甘肃
辽宁
黑龙江
贵州
新疆
重庆
吉林
天津
海南
青海
宁夏
西藏
香港
澳门
台湾
美国
加拿大
澳大利亚
日本
新加坡
英国
西班牙
新西兰
韩国
泰国
法国
德国
意大利
缅甸
菲律宾
马来西亚
越南
荷兰
柬埔寨
俄罗斯
巴西
智利
卢森堡
芬兰
瑞典
比利时
瑞士
土耳其
斐济
挪威
朝鲜
尼日利亚
阿根廷
匈牙利
爱尔兰
印度
老挝
葡萄牙
乌克兰
印度尼西亚
哈萨克斯坦
塔吉克斯坦
希腊
南非
蒙古
奥地利
肯尼亚
加纳
丹麦
津巴布韦
埃及
坦桑尼亚
捷克
阿联酋
安哥拉