首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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-22 16:57
清华大学 Java
领导有时候真的很扯
领导做过的离谱事情,往往不是某一次“大事”,而是那些看起来很小、却能让人瞬间怀疑人生的瞬间。比如有一次,团队正在加班赶一个版本,大家都在盯着日志和报错。突然领导走过来,指着屏幕说:“你们这个功能要不要再加一个新需求?反正你们今晚不睡了。”当时我以为他在开玩笑,可他很认真地补了一句:“你们都在公司,顺手做了就行。”那一刻我才意识到:在他眼里,加班不是代价,而是默认的资源。还有一次,领导在会议上要求我们“提高效率”,但却不允许我们用任何自动化工具。说法是:“我们要靠手工来保证质量。”可当我们提出手工效率低、容易出错时,他又说:“你们是不是不够努力?”这种“要求高标准、但不给条件”的逻辑,让人觉得工...
领导做过最不靠谱的事
点赞
评论
收藏
分享
01-19 10:15
库洛游戏_HR(准入职员工)
步步高内推,步步高内推码
步步高实验学校 2026届校招启动啦【学校简介】东莞市步步高实验学校于 2023 年投入运营,占地 230 亩,是一所集幼儿园、小学、初中、高中于一体的十五年一贯制非营利性高端民办学校,学校全面实行小班化教学,学校师生比为 1:5;步步高教育专家团队由来自一流大学的国家课标专家、教育学家,来自著名学校的卓越校长,来自一线、有着丰富教学经验的著名特级教师,以及来自国家级教育媒体的教育策划专家共同组成,为步步高的课程、教学、管理奠定了坚实基础。【招聘岗位】• 幼儿园、小学部及初中部各学科类教师 & 国际教师,类别多多,等你pick! 【福利待遇】• 薪资:幼儿园老师年收入16万起 、中小学...
点赞
评论
收藏
分享
01-23 19:54
中国矿业大学 Java
不是猝死,是活活累死
太难受了
点赞
评论
收藏
分享
01-19 15:26
牛客创作者运营
第二期「创作模范」名单揭晓!速来围观
上周的优质模范诞生啦!!让我们一同见证这些精彩内容✨我们根据“活人感、实用价值、情绪价值、内容独特性、时效性/话题性” 五大维度,层层筛选,优中选优,最终精选出本期优质内容模范~它们既有技术深度,又兼具情感共鸣,引发了牛友的热烈讨论,是三大赛道的典型优质内容。创作模范每周持续更新!期待更多创作者为大家带来实用、优质的作品!【✨本期创作模范名单✨】✨AI新知赛道:《你的二次元老婆可能在悄悄变丑》作者:@小润在工作✨成长故事赛道:《欲买桂花同载酒,终不似,少年游》作者:@永泽one✨经验攻略赛道:《因为我躺平了,所以你们都得躺平》作者:@段段Steady用真诚的表达传递价值,以独特的视角引发共鸣,...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
实习产出如何包装?
1.3W
2
...
27届实习时间线
1.1W
3
...
【官方活动】牛客新春计划:给陌生人的一封信
6784
4
...
32岁程序员猝死,底薪3千要24h待岗
3004
5
...
HR约你面试,句句话都有目的!
2864
6
...
实习生怎么快速融入团队
1779
7
...
20多岁最痛苦的年纪
1647
8
...
字节实习规划求助
1581
9
...
阶段性的迷茫不过是人生正在“换挡”
1465
10
...
后端从0开始来得及吗
1447
创作者周榜
更多
正在热议
更多
#
哪些公司开春招了?
#
11185次浏览
121人参与
#
四大天坑是哪四家?
#
100995次浏览
235人参与
#
上班以后,你还有哪些坚持的爱好?
#
7737次浏览
182人参与
#
你觉得什么岗位会被AI替代
#
34671次浏览
229人参与
#
你最近因为什么迷茫?
#
35326次浏览
578人参与
#
互联网公司评价
#
479187次浏览
4082人参与
#
找工作以来,你最看不惯__
#
15792次浏览
321人参与
#
工作压力大怎么缓解
#
138228次浏览
1245人参与
#
实习离职怎么跟领导说
#
76028次浏览
432人参与
#
AI coding的好用工具分享
#
19626次浏览
382人参与
#
实习怎么做才有更好的产出
#
12836次浏览
228人参与
#
实习教会我的事
#
51863次浏览
404人参与
#
聊聊你的被动加班经历
#
3373次浏览
64人参与
#
你都在哪些场所面过试?
#
20741次浏览
227人参与
#
工作一周年分享
#
50066次浏览
262人参与
#
实习生工资多少才算正常?
#
13483次浏览
202人参与
#
拼多多工作体验
#
44411次浏览
285人参与
#
领导做过最不靠谱的事
#
14806次浏览
222人参与
#
你给AI提过哪些离谱的需求?
#
6488次浏览
171人参与
#
面试等了一周没回复,还有戏吗
#
196508次浏览
1677人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务