首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
北京
暂无评论,快来抢首评~
相关推荐
04-02 23:21
广西大学 算法工程师
懂车帝 AI Agent开发 一面
1. 讲一下你做过的一个 Agent 项目,重点说业务背景、流程和你负责的部分2. 如果你的系统里也有高并发场景,你会怎么设计限流、降级和幂等高并发下最怕的不是平均请求慢,而是少数慢请求把整条链路拖死。Agent 系统一般调用链长,请求里既有模型推理,也有工具 I/O 和数据库操作,所以不能只靠一个网关限流就完事。我会把限流拆成几层:入口做用户级和租户级限流,任务编排层做任务队列隔离,工具层做并发池控制,模型层再做 token 预算和超时回收。这样某一个工具服务出问题时,不至于把整个系统打爆。幂等也很关键,尤其是有写操作的时候。像发通知、写审批、更新状态、创建工单这种动作,必须给每次执行一个 ...
AI-Agent面试实战...
点赞
评论
收藏
分享
03-31 22:05
广西大学 算法工程师
吉利科技 大模型应用开发 二面
感觉面试官自己也不是很熟 没怎么招过1. 你挑一个最熟悉的项目详细讲一下,重点说业务背景、数据形态和你负责的部分2. 如果大模型输出格式和你预期不一致,你一般怎么处理这个问题如果只回答“加强 prompt 约束”会显得太浅。真实场景里,输出格式不一致通常有三层原因:第一层是模型没理解任务边界,第二层是格式本身太脆弱,第三层是生成阶段没有约束。我的做法一般是先把格式要求拆成字段级约束,尽量避免开放式自然语言和结构化字段混在一起;然后再根据场景决定是用 schema 校验、函数调用、受限解码,还是生成后重排修复。如果业务要求严格,比如必须产出合法 JSON,我不会只依赖 prompt。我会让模型先...
AI-Agent面试实战...
点赞
评论
收藏
分享
03-24 23:51
门头沟学院 测试开发
我自己为是的实习终究比不上学历
双非本科,靠着字节、百度、蔚来三段实习一路撑到春招,到现在才真正认清现实。一封封感谢信砸过来,慢慢明白,学历和学校带来的门槛,远比几段光鲜实习要重得多。最让人无力的,莫过于拼尽全力刷实习、攒经历,最后却连一个入场机会都换不来,那种落差感真的太磨人。总自以为是地觉得,有大厂实习就够了,一定能挤进心仪的公司,可现实一次又一次把幻想击碎。现在的我,早已没了春招初期的锐气,只剩下满心的迷茫和惆怅。不知道是该坦然接受现实,还是继续抱着不切实际的期待,在大厂的梦里不肯醒。
绮玉大王:
哎秋招就看透了,92一段小厂实习中大厂一样给面,双非大厂实习也难给面,双非现在不走转正就纯粹是运气的比拼,很无奈但是又只能接受,只能调整心态
学历对求职的影响
点赞
评论
收藏
分享
03-23 20:49
网易游戏雷火_游戏服务器开发实习生(实习员工)
腾讯状态
刚看到到了初试,还没面就流程结束,有没有知道什么情况的
点赞
评论
收藏
分享
04-02 14:24
上海理工大学 产品经理
从产品经理视角看ClaudeCode源码
Claude Code 51万行源码泄露后,技术圈都在拆架构、看代码。但对产品经理来说,这份源码里藏着的不是技术细节——是一整套"如何让用户信任 AI 去做真实工作"的产品方法论。 一、Prompt 不是文案,是产品规则引擎 大多数 PM 理解的 prompt = "写一段好的提示词"。Claude Code 的做法完全不同: 7 层动态拼装:静态宪法(行为准则)+ 动态政策(环境/记忆/会话状态) 每个工具配独立使用手册(prompt.ts),不是一段通用说明 缓存边界精确划分:静态部分走缓存省钱,动态部分按需注入 PM 启发:如果你在做 AI ...
Claude Code泄...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
春招面了四十多场,焚绝在此
2.7W
2
...
AIcoding上线了!你确定不来刷刷?
1.8W
3
...
双非春秋招3月总结与收获
4511
4
...
4.2字节后端一面
4184
5
...
美团暑期二面,横向挂
3510
6
...
恒生电子笔试已燃尽
3423
7
...
面试连挂3家后,我终于学会了"不会"的正确说法
2846
8
...
26年最值得冲的产品项目是什么?一个过来人的大实话
2601
9
...
恒生电子笔试
2518
10
...
2026 产品岗春招|这种「稀缺管培生」该怎么准备?
2415
创作者周榜
更多
正在热议
更多
#
面试被问到不会的问题,你怎么应对?
#
21248次浏览
523人参与
#
学历VS实习,哪个更重要?
#
859次浏览
31人参与
#
招商银行数字金融训练营
#
106169次浏览
916人参与
#
你见过哪些招聘隐形歧视?
#
21815次浏览
186人参与
#
设计人的面试记录
#
205012次浏览
1630人参与
#
你觉得大几开始实习最合适?
#
24666次浏览
245人参与
#
厦门银行科技岗值不值得投
#
15267次浏览
352人参与
#
uu们,春招你还来吗?
#
59828次浏览
641人参与
#
面试中,你被问过哪些奇葩问题?
#
94680次浏览
1179人参与
#
哔哩哔哩笔试
#
34712次浏览
140人参与
#
影石Insta360求职进展汇总
#
183994次浏览
1377人参与
#
国企/银行/研究所公司爆料
#
203385次浏览
913人参与
#
你都用vibe coding做过什么?
#
18277次浏览
725人参与
#
供应链/物流校招攻略
#
12400次浏览
218人参与
#
虹软科技求职进展汇总
#
16623次浏览
138人参与
#
AI Coding实战技巧
#
13062次浏览
277人参与
#
机械人还在等华为开奖吗?
#
325200次浏览
1599人参与
#
做完笔试后你收到面试了吗?
#
23981次浏览
210人参与
#
恒生电子笔试
#
19955次浏览
156人参与
#
你现在一天AI几次?
#
11120次浏览
118人参与
#
Vibe Coding 会干掉初级岗位吗?
#
20008次浏览
211人参与
#
如果人生可以debug你会改哪一行?
#
9744次浏览
140人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务