首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
北京
暂无评论,快来抢首评~
相关推荐
10-31 16:13
深圳信息职业技术学院 产品经理
入职体检血压偏高怎么办?别慌,还有机会补救!
当小王满怀期待参加入职体检时,护士的血压计却显示145/95mmHg。"不可能啊!昨天社区医院量还是120/80mmHg。"他着急地辩解。这种体检时血压"失常"现象的背后究竟隐藏着什么原因呢?     平时没啥感觉,做入职体检的时候血压却很高这种现象在生活中很常见,也是很多人困惑的问题。 你遇到过这个问题吗?遇到这种情况该怎么办?  近年来,我国高血压发病率有年轻化的趋势。但很多中青年平时没有监测血压的习惯,往往在年度体检中被发现血压增高。那么,一次血压高就意味着患上高血压了吗?体检发现血压高,就需要服用降压药了吗?今天我们就来好好聊一聊这个话题。我国高...
点赞
评论
收藏
分享
10-30 15:56
已编辑
门头沟学院 嵌入式软件开发
26届嵌软秋招实录
#嵌入式软件开发#👋个人背景:四非本末9硕,科研完全不相关,无实习,无相关竞赛经历,项目网上找,做了一点改进,纯菜狗。投递100家左右,收到20多家公司的面试,挂掉7家面试,在10月中旬拿到一份比较满意的offer,直接签了☎️意向和oc:某公司,已签中科曙光:一面技术面+二面领导面+定薪审批+hr谈薪结束,总40W,已释放。CVTE:一面+二面+实习邀请,已释放。东风日产:AI面+一面+二面+offer池,已释放。芯恩:线下一面+二面+offer,已释放。麒麟信安:一面技术面+hr面+offer,已释放。👨💻拒掉的面试:小米:一面技术面+拒二面。经纬恒润:一面+拒二面。烽火通信:一面...
26届菜狗嵌软秋招之路
点赞
评论
收藏
分享
10-12 18:54
桂林电子科技大学 嵌入式软件开发
普通二本真的拿不到offer吗
这个简历投了很多家一直拿不到offer,兄弟们帮我看看有没有什么问题
爱吃的大菠萝也不容易:
桂电怎么成二本了我去
0offer互助地
点赞
评论
收藏
分享
09-28 19:59
已编辑
蚌埠坦克学院 C++
手慢无这一块
666,面试全靠拼手速是吧,一天只面八个人,感觉是抢不到了,收到邮件点进去一看就这样了还想面面制造业感受下强度
哈希雾境:
参加过cvte群面,真构思这系统,然后全程在吵架
点赞
评论
收藏
分享
10-31 12:44
卡内基·梅隆大学 全栈开发
国内科技公司前端框架工具需求热度榜
1. React 绝对的顶流,大厂里非常流行,招聘要求里随处可见。生态极其庞大,学习资源和社区都非常活跃。  2. Vue.js 国民级框架,在国内有现象级的普及度和接受度。很多中小型公司、创业团队和个人开发者都非常喜欢用它,因为学习曲线平缓,开发效率高。  3. Webpack 曾经的行业标准,几乎所有的现代前端项目都曾用它来打包。  4. React Native 很多公司用它来快速开发跨端App,尤其是在业务需要快速迭代的场景下。但性能和体验上略逊于纯原生开发。  5. Flutter Google出品的另一个跨平台App开发框架。非常火爆,近几年增长迅猛。很多大厂都在用,生态发展很快。...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
java后端学习经验分享(大三进大厂版)
5613
2
...
企鹅后端日常实习一面
4451
京东秋招开奖
热聊中
3
...
饿了么被淘宝闪购夺舍了,HC和团队会变吗
4081
4
...
26届双非本拿下美团SSP的真实感受
3187
5
...
真完蛋,我大抵是要毕业即失业了
2868
6
...
摸爬滚打,我也一定要离开华为
2506
7
...
本硕985文科女秋招 0 offer深夜有感
2459
8
...
愿大家都能成为很厉害的人
2206
9
...
大家秋招压力很大一般怎么调节呀
1904
10
...
十一月,希望有个好的开始
1818
创作者周榜
更多
正在热议
更多
#
秋招开始捡漏了吗
#
21568次浏览
143人参与
#
找工作八股要背到什么程度?
#
2061次浏览
46人参与
#
“vivo”个offer
#
48323次浏览
319人参与
#
你实习是赚钱了还是亏钱了?
#
2628次浏览
28人参与
#
入职以后才知道的校招谎言
#
100881次浏览
645人参与
#
用一句话形容你的团队氛围
#
1888次浏览
37人参与
#
上班后,才发现大学__白学了
#
3902次浏览
27人参与
#
同bg的你秋招战况如何?
#
160248次浏览
934人参与
#
你找工作是从容有余 or 匆忙滚爬?
#
1764次浏览
29人参与
#
今年秋招还有金九银十吗
#
20608次浏览
185人参与
#
辞职后的日常
#
16168次浏览
84人参与
#
打工人的精神状态
#
102184次浏览
1314人参与
#
五一之后,实习真的很难找吗?
#
89718次浏览
561人参与
#
规定下班时间vs实际下班时间
#
56426次浏览
332人参与
#
一人一个landing小技巧
#
128182次浏览
1465人参与
#
满帮集团求职进展汇总
#
8602次浏览
71人参与
#
学历对求职的影响
#
551298次浏览
3913人参与
#
分享一个让你热爱工作的瞬间
#
43920次浏览
395人参与
#
上班到公司第一件事做什么?
#
99327次浏览
681人参与
#
我和mentor的爱恨情仇
#
79874次浏览
434人参与
#
巨人网络求职进展汇总
#
165268次浏览
1084人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务