首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
北京
暂无评论,快来抢首评~
相关推荐
02-25 16:01
游卡_游戏客户端开发(准入职员工)
游卡内推,游卡内推码
游卡服务端开发面经(已oc) 一面1.自我介绍2.虚函数和多态3.vector删除一个元素如何实现的,讲讲移动语义,如何回收一个vector的内存(创建一个空的,移动给现在的(挺巧妙))4.讲讲几种智能指针的应用场景、weak_ptr如何保证在使用期间资源不失效的5.socket编程的流程6.进程、线程、协程7.cpu计算密集型任务用多线程还是多协程,为什么8.死锁是什么,如何解决9.每次生成1个1到1亿的随机数、且不重复10.反问二面+hr面1.自我介绍2.实验室项目拷打,做的东西偏底层,为什么想来做游戏3.bustub,为什么用B+树4.了解innodb的页面组织形式吗5.了解mangod...
点赞
评论
收藏
分享
02-26 15:40
迅雷_X-PEP 产品星(准入职员工)
迅雷内推,迅雷内推码
一面面试官来自迅雷浏览器 1. 自我介绍 2. 分享 C 端相关的经历 3. 对 2 提到的消费者售后需求,竞品是怎么做的? 4. 暑期实习工作 5. 对 4,如何理解首页资源既是用户编辑的地方,又是运营可以操作的地方 6. 使用情况的量级 7. 基础体验最应该做的事情是什么? 现状:功能创新少,策略渗透多。 因此,最应该做的事是策略的精细化运营,给每个人不同的产品体验 产品责任:定义运营位的使用规则、体验边界、运营能力,做好运营平台的建设,让运营跟正常开发解耦。 8. 迅雷浏览器体验中的亮点/槽点 9. 其他有意思的产品分享下 豆包 PC 端 - 插件做场景渗透,把我黏住了,选中文字浮起工具...
点赞
评论
收藏
分享
02-02 14:08
哈尔滨工业大学 移动通讯工程师
26届,大学摆烂,现在很迷茫
没有实习没有项目经历,还有弥补的方法了吗
匿名小透明:
哈工大还说啥了
点赞
评论
收藏
分享
02-09 15:47
重庆理工大学 Java
求指点
怎么改啊啊啊啊啊啊啊啊
烤点老白薯:
亲娘嘞🐶💩啊你的简历
点赞
评论
收藏
分享
02-27 21:12
清华大学 Java
开工了,还在怀念过年的滋味
开工第一天,心里却还留恋着过年的味道。桌上堆满工作任务,可脑海里回荡的却是家里的笑声、热腾腾的年夜饭和红包的喜悦。习惯还没切换过来,闹钟提醒着现实:假期结束了。但慢慢地,我也明白,正是因为有了年味的温暖,平凡的工作日才显得值得期待。带着这份余温,一天也能变得不那么沉重,生活依旧可以甜。
开工第一帖
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
我做过的,被面试官夸爆的那些Ai项目(一)
1.7W
2
...
暑期实习 字节三面
6670
3
...
24届三本,广州跳槽至上海后惨遭裁员,这是我的现状
2426
4
...
大厂血泪史之试用期实用技巧
1820
5
...
3.2字节AI开发春招一面
1642
6
...
观妙科技 - Java开发 二面 面经
1498
7
...
腾讯一面面经
1469
8
...
实习中找暑期实习的几个问题
1454
9
...
AI时代,人还能做些什么呢?
1389
10
...
腾讯提前批一面面经(挑战全网最晚hhh,热乎的~)
1334
创作者周榜
更多
正在热议
更多
#
面试___岗的必刷题单
#
2081次浏览
38人参与
#
你今年的保底offer是哪家
#
171281次浏览
716人参与
#
神州信息求职进展汇总
#
1414次浏览
36人参与
#
春招开局,你有保底offer吗?
#
7073次浏览
64人参与
#
如果不上班,你会去做什么
#
33029次浏览
477人参与
#
实习生至暗时刻
#
2122次浏览
48人参与
#
应届生被毁约被毁意向了怎么办
#
58959次浏览
294人参与
#
硬件开发岗知多少
#
23971次浏览
138人参与
#
哪些公司开暑期实习了?
#
4116次浏览
36人参与
#
如果上班像打游戏,你最想解锁什么技能
#
26687次浏览
95人参与
#
AI面试问题分享
#
3309次浏览
76人参与
#
实习生的生存小技巧
#
1975次浏览
44人参与
#
你经历过哪些AI幻觉?
#
1453次浏览
34人参与
#
找AI工作应该卷什么?
#
1099次浏览
25人参与
#
三月的小目标
#
1938次浏览
48人参与
#
小厂一定不能去吗?
#
6750次浏览
86人参与
#
关于春招你都做了哪些准备?
#
130400次浏览
724人参与
#
你面试被问到过哪些不会的问题?
#
113513次浏览
1905人参与
#
作业帮求职进展汇总
#
102024次浏览
615人参与
#
非技术岗简历怎么写
#
299575次浏览
3224人参与
#
非技术岗薪资爆料
#
496842次浏览
3055人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务