首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
offer啥来
成都理工大学 嵌入式软件开发
发布于四川
关注
已关注
取消关注
bootloader
@HellowordX:
嵌入式基础(四)之BootLoader
专栏地址:嵌入式面经地址 1.什么是BootLoader?⭐⭐⭐ Bootloader(引导加载器)是启动计算机或嵌入式系统时执行的第一个程序,位于固件中。它主要负责初始化系统硬件、加载操作系统,并将控制权转移到操作系统的启动过程。 Bootloader的作用: 初始化硬件:Bootloader检查硬件设备,包括处理器、内存、外设等,并进行必要的初始化操作,以确保系统在启动时处于正常工作状态。 加载操作系统:Bootloader从存储设备(如硬盘、闪存等)中读取操作系统的引导程序,将其加载到内存中。 启动操作系统:一旦操作系统引导程序加载到内存,Bootloader会将控制权转交给引导程序,从而启动操作系统。 提供启动选项:有些Bootloader还提供启动选项,允许用户选择不同的操作系统或操作系统的不同启动模式。这对于多系统或双重启动设置很有用。 提供固件升级机制:Bootloader还提供固件升级功能,允许系统固件的更新和升级,以支持新的功能、修复漏洞或提高系统性能。 bootloader作用 说明 硬件初始化 检测和初始化计算机或嵌入式系统的硬件设备,如处理器、内存、外部设备等。 加载操作系统 从存储设备中读取操作系统的引导程序,并将其加载到内存中。 启动操作系统 将控制权转移到操作系统的引导程序,以启动操作系统的执行。 提供启动选项 提供用户选择不同操作系统或不同启动模式的选项,支持多系统启动等。 提供固件升级 支持固件的更新和升级,以提供新功能、修复漏洞或提高系统性能。 处理错误检测 在启动过程中检测和处理硬件或软件错误,提供错误消息和故障排除功能。 支持设备引导 支持从不同的存储设备(如硬盘、闪存、网络等)引导操作系统。 自定义配置 允许用户自定义启动配置、参数和引导顺序,以满足特定需求。 2.BootLoader的启动的两个阶段?⭐⭐⭐ Stage 1(引导加载器的第一阶段): 硬件设备初始化:BootLoader的第一阶段负责初始化计算机或嵌入式系统的硬件设备,包括处理器、内存控制器、外部设备等。 为加载Stage 2准备RAM空间:在Stage 1中,BootLoader会为加载Stage 2而准备好内存空间(RAM),通常通过栈(stack)的方式进行分配。 加载Stage 2:BootLoader的Stage 1会从预定义的存储设备(例如硬盘、闪存)中读取Stage 2的引导程序,并将其加载到预先分配的内存空间(RAM)中。 设置堆栈:BootLoader在加载Stage 2之前会设置好堆栈指针,以确保在后续的执行过程中能正确地进行函数调用和返回操作。 跳转到Stage 2的C入口点:在加载完Stage 2之后,BootLoader会将控制权转移到Stage 2的C入口点,即Stage 2中的C语言代码执行的起始位置。 Stage 2(引导加载器的第二阶段): 初始化硬件设备:BootLoader的Stage 2进一步初始化硬件设备,例如外部设备(键盘、鼠标、显示器等)和各种总线(如USB、PCI等)。 检测内存映像:Stage 2会对系统的内存进行检测,确定可用的内存容量和位置,并为操作系统的加载做好准备。 从存储设备读取内核映像和根文件系统映像:BootLoader的Stage 2从预定义的存储设备中(通常是硬盘或闪存)读取操作系统内核映像和根文件系统映像到事先准备好的内存区域。 设置启动参数:Stage 2有责任为内核设置启动参数,这些参数包括内核命令行参数、映像加载地址等,以便操作系统能够正确地进行初始化和配置。 调用内核:最后,BootLoader的Stage 2会通过跳转或者函数调用的方式将控制权转交给操作系统内核的入口点,以启动操作系统的执行。 启动流程分析: 上电之后,系统会取执行ROM或者Flash里面的Bootloader启动代码,启动代码用来在初始化电路以及用来为高级语言编写的软件做好运行前准备的一小段汇编语言。商业实时操作系统中,启动代码部分一般叫板级支持包(BSP)。Bootloader启动具体流程如下: 1.第一步设置中断和异常向量 2.完成处理器芯片一些寄存器的系统启动的最初配置 3.设置看门狗 4.配置系统存储器,包括Flash、SRAM、和DRAM等,并为它们分配地址空间 5.为处理器的每个工作模式设置栈指针,ARM处理器有多种工作模式,每种工作模式都需要设置单独的占空间 6.变量初始化,软件中已经赋值的全局变量,启动过程把这部分变量从只读区域复制到读写区域,已经赋值的静态全局变量直接固化在只读Flash或EEPROM中 7.数据区准备,软件所有未赋值的全局变量,启动过程中需要把这部分变量所在区域清零 8.调用高级语言入口,比如main函数 3.在ARM架构中,常用的Bootloader有哪些?请分别介绍它们的特点。⭐⭐ 以下是一个关于常用ARM架构的Bootloader的特点的表格: Bootloader 特点 U-Boot - 开源,通用的Bootloader- 支持多种处理器架构和嵌入式平台- 功能丰富、灵活性高- 用于启动操作系统、加载内核映像和文件系统等 Das U-Boot - 在U-Boot基础上进行定制和改进- 提供更多功能和特定优化- 快速启动、多协议支持和硬件平台兼容性等 barebox - 轻量级、模块化的Bootloader- 小巧、可靠、高度可定制- 适用于资源受限的嵌入式平台 TF-A (Trust
点赞 0
评论 3
全部评论
推荐
最新
楼层
HellowordX
英特尔_Software_engineer
不是哥们,你干啥呢
点赞
回复
分享
发布于 2024-08-01 15:35
北京
暂无评论,快来抢首评~
相关推荐
01-18 21:31
新疆大学 Java
MySQL基础内容(个人梳理)
MySQL基础内容 一、SQL语言分类 SQL (Structured Query Language) 主要分为四类: 1. DDL (Data Definition Language) 全称:数据定义语言。 作用:定义数据库对象(数据库、表、字段)。即操作表结构。 关键字:CREATE, DROP, ALTER, TRUNCATE。 注意:TRUNCATE(清空表)属于 DDL,因为它涉及重新创建表结构,且无法回滚。 2. DML (Data Manipulation Language) 全称:数据操作语言。 作用:对数据库中表的数据进行增、删、改。 关键字:INSERT, UPDAT...
MySQL知识点整理
点赞
评论
收藏
分享
01-17 16:24
门头沟学院 前端工程师
Vue转React学习笔记(1):关于 useEffect 的困惑和思考
零、写在前面之前实习和项目中都是学的Vue,由于之后工作大概率会进入React的技术生态,最近才开始学React并且缺少企业级的项目开发经验,也没有对源码做系统研究,以下的内容只是个人学习过程中的记录和思考,因此大概率会显得稚嫩而且主观,需要大佬们的指点和修正。软件开发毕竟属于工程实践领域,对于相同的目标可以有不同的实现方案,而一样的技术在不同的场景下也需要做取舍权衡,它并不像数学物理这样的学科有一套不容置疑的公理。而且对于团队开发者而言,一套技术的开发体验、学习成本、认知对齐等因素也同样重要,它们应该是带有主观色彩的,至少是可讨论的;为了描述简便,以下会根据官方文档的写法和称呼,对于useE...
点赞
评论
收藏
分享
2025-12-22 17:56
已编辑
北京城市学院 测试工程师
2027届应届毕业生 双非本求拷打简历
本人2027届应届毕业生 目前在实习 不过这就业形势已经疯狂,求拷打简历 ,目前在学习 云计算 智算 Agent rag等等火热领域一些知识吧 对于未来岗位可能没有太明确好 就海投吧。。。求各位大佬给点意见 八股代码可能没那么厉害😂😂
牛至超人:
刘景睿,长得挺帅啊,把电话号发出来小心我半夜给你打电话
你的秋招简历被谁挂了?
点赞
评论
收藏
分享
01-09 01:04
东莞城市学院 机械结构工程师
月休两天
月休两天能坚持住的都是怎样的牛人😢
饿魔:
单休目标?
点赞
评论
收藏
分享
01-16 14:23
已编辑
百度_高级研发工程师
All in AI:一场决定阿里未来的“豪赌”
今天打开手机一看,通义千问居然可以帮我点外卖了,前段时间刚刚听到阿里all in ai的新闻,没想到这么快。 看来对于阿里来说,平静的湖面下深藏危机,以至于他们刻不容缓得开始实施。 未来三年,阿里将全部身价投入ai,背水一战。成功,阿里将是未来ai时代的头部,失败,恐怕阿里就要落幕了,所以阿里到底能不能成,我们一起来分析。一、战略眼光 这是商业路线之争,阿里的豪赌,其根本目标并非单纯“做一个领先的AI模型”,而是要定义并建设一整套未来AI时代的基础设施,从而让自己成为新时代不可绕过的平台。 这里段段用自己的语言,来汇总一下未来阿里到底想干什么。 技术层,实现AI全生态自研,不只局限于技术,还包...
AI让你的思考变深了还是...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
备战春招,网申一键填写工具,发布了!!!
3.7W
2
...
27双非非科班4段实习从字节tt到腾讯wxg
7455
3
...
【评论得现金💰】26年度牛客评论活动起航!(试运行)
7062
4
...
字节校招landing实感
4647
5
...
我爸对计算机行业的看法,是否准确?
4293
6
...
多益可以去吗
4108
7
...
腾讯后端日常实习二面(已OC)+一点随笔
3908
8
...
AI 军火库
3727
9
...
拼多多被罚10万块,啊这...
3682
10
...
第一次被同事气笑了
3470
创作者周榜
更多
正在热议
更多
#
上班以后,你还有哪些坚持的爱好?
#
3897次浏览
108人参与
#
拼多多工作体验
#
43672次浏览
281人参与
#
你最近因为什么迷茫?
#
22109次浏览
318人参与
#
实习教会我的事
#
49723次浏览
366人参与
#
你都在哪些场所面过试?
#
10721次浏览
150人参与
#
AI coding的好用工具分享
#
10248次浏览
219人参与
#
实习怎么做才有更好的产出
#
6634次浏览
140人参与
#
为了实习逃课值吗?
#
61328次浏览
513人参与
#
找工作以来,你最看不惯__
#
6342次浏览
163人参与
#
实习生工资多少才算正常?
#
7973次浏览
144人参与
#
工作压力大怎么缓解
#
134301次浏览
1175人参与
#
哪些公司开春招了?
#
4002次浏览
59人参与
#
你给AI提过哪些离谱的需求?
#
3573次浏览
116人参与
#
领导做过最不靠谱的事
#
7486次浏览
141人参与
#
牛客AI文生图
#
19107次浏览
225人参与
#
机械/制造每日一题
#
84347次浏览
1440人参与
#
AMA
#
12344次浏览
49人参与
#
国企/银行/研究所公司爆料
#
184963次浏览
893人参与
#
牛客十周岁生日快乐
#
205673次浏览
1917人参与
#
实习离职怎么跟领导说
#
74949次浏览
415人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务