首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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-19 22:03
已编辑
门头沟学院 引擎开发
游戏引擎校招求职实录 与 上岸(劝退)指南
01. 个人背景与秋招战况背景:本科:C9 EE硕士:海硕CS秋招方向:只投递了 引擎 / 图形 / GPU 相关方向。最终Offer情况:游戏大厂:2 家。其中一家明确给了 SSP。游戏中厂:3 家。游戏小厂:2 家。影视行业:1 家(离线渲染)。硬件/手机厂:2 家(GPU/图形方向)。技术栈说明:游戏厂除了一家是自研引擎外,其余所有 Offer 对应的岗位均是 UE5 引擎开发。总结:整体面试评价应该都还不错,薪资基本都在 SP 到 SSP 的档位(同厂同职位较高水平)。在经历了一整季的面试后,写一个帖子聊聊引擎校招生的求职现状。02. 最初的最初:行业劝退与心态建设如果你对游戏行业有厚...
游戏求职进展汇总
点赞
评论
收藏
分享
01-21 21:34
已编辑
门头沟学院 前端工程师
有赞前端 一、二、hr面
一面 40分钟 项目难点亮点深挖(思路和解决办法) 浏览器渲染,display、visibility这些内容对元素的重排、重绘的影响 setTimeout、Promise、requestAnimationFrame这些api的区别 react中通过useState维护了一个对象数组,如果要修改这个对象数组的某个值,应该如何实现? 通过不可变数据(让口头说源代码怎么写😂),通过扩展运算符 如果对象的赋值,如果不是浅拷贝,使用深拷贝的话有哪些影响 重渲染层面来说,深拷贝有什么影响吗 面试的时候说id一样就不会重新渲染,后面复盘的时候试验了一下,都会重新渲染,除非用m...
小舰大杀四方:
现在的就业环境真是艰难,你好歹磕磕绊绊也走过三面了,回答的肯定也不错,尤其是hr面问了你这么多问题,,,结果一周都没消息。想知道现在的公司到底在高贵什么啊
点赞
评论
收藏
分享
01-07 20:51
门头沟学院 前端工程师
哪些公司在招寒假实习
截至目前仍在招寒假实习的公司如下:1.字节2.bilibili3.美团4.新石器5.淘天6.阿里7.蚂蚁8.小红书9.虾皮10.小米11.哈罗12.快手13.携程14.腾讯15.京东16.卓驭注:以上数据来牛客网,如不准确,请以实际为准。
乌云遇皎月:
感谢总结,字节一直在招
哪些公司在招寒假实习?
点赞
评论
收藏
分享
01-02 20:41
已编辑
杭州电子科技大学 Java
双非勇闯华为
秋招第一战,首战及终战。今年秋招真是对双非的大型羞辱现场,各大公司基本都把我当成路边一条,9月份投递简历,第一个面试就是华子,然后一上午速通三面,后续等了两个月,中间没有保温,还有一些其他面试,小公司基本不想面了。有个招银云创hz没岗位,随寄寄,导致我无保底硬等华子,还好开出来了,虽然是最低的一档,但是一想到如果高一档就要和92✌竞争我想想就算了,低一档至少第一批开出来。可以安心准备春招了。
点赞
评论
收藏
分享
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知识点整理
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
实习产出如何包装?
1.1W
2
...
32岁程序员猝死,底薪3千要24h待岗
5353
3
...
【官方活动】牛客新春计划:给陌生人的一封信
5349
4
...
27届实习时间线
5345
5
...
我爸对计算机行业的看法,是否准确?
3886
6
...
专科工作一年后的心里话
3280
7
...
第一次被同事气笑了
2775
8
...
坚持的爱好是规律饮食
2728
9
...
在抖音上认识的姐姐太疯狂了
2510
10
...
阶段性的迷茫不过是人生正在“换挡”
2425
创作者周榜
更多
正在热议
更多
#
哪些公司开春招了?
#
9870次浏览
117人参与
#
工作压力大怎么缓解
#
137449次浏览
1231人参与
#
上班以后,你还有哪些坚持的爱好?
#
6953次浏览
170人参与
#
找工作以来,你最看不惯__
#
13785次浏览
295人参与
#
你都在哪些场所面过试?
#
19316次浏览
222人参与
#
AI coding的好用工具分享
#
17677次浏览
361人参与
#
互联网公司评价
#
478284次浏览
4058人参与
#
实习怎么做才有更好的产出
#
11653次浏览
211人参与
#
实习教会我的事
#
51555次浏览
399人参与
#
聊聊你的被动加班经历
#
2331次浏览
49人参与
#
实习好累,可以辞职全力准备秋招吗
#
518289次浏览
3554人参与
#
四大天坑是哪四家?
#
100370次浏览
234人参与
#
你最近因为什么迷茫?
#
33361次浏览
477人参与
#
实习生工资多少才算正常?
#
12419次浏览
194人参与
#
实习离职怎么跟领导说
#
75812次浏览
420人参与
#
拼多多工作体验
#
44290次浏览
284人参与
#
领导做过最不靠谱的事
#
13010次浏览
211人参与
#
你给AI提过哪些离谱的需求?
#
5792次浏览
164人参与
#
机械制造面试记录
#
307867次浏览
3152人参与
#
工作一周年分享
#
49951次浏览
261人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务