- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
十一讲bootloader技术-read
十一讲:Bootloader技术
段勃 duanbo@
嵌入式软件系统
嵌入式操作系统已经得到广泛应用
带操作系统的嵌入式软件体系一般分为:
引导加载程序
操作系统内核
文件系统(可选)
用户应用程序
PC 机的引导加载程序
BIOS+MBR
BIOS的本质是一段固件程序(Firmware)
MBR是磁盘上的一段分区,位于磁盘的第一个扇区,
大小为512B,包含了磁盘的分区信息以及系统引导代
码,比如Lilo、Grub
PC 机的Linux 引导加载过程
启动过程
BIOS完成硬件检测、资源分配,然后将引导代码(512B)读
入内存0x7c00中,然后跳转到0x7c00运行(将CPU控制权交
给引导程序)
引导代码将自己搬移到0x90000,再跳转到该地址执行,然
后将磁盘上的setup和内核映像读入内存0x90200,并跳转
到setup运行
在setup中完成处理器设置、解压缩等操作,将内核解压到一
个固定地址,然后跳转到此地址运行,从而进入到内核初始化
过程
嵌入式系统中的引导程序
一般嵌入式系统没有BIOS
引导程序被称为Bootloader
引导程序完成硬件检测、资源分配和操作系统内
核的引导(拷贝+跳转)
Bootloader还需要完成映像下载、flash烧写、
代码调试等功能
常用的开源Bootloader有u-boot、Blob、
redboot、vivi等
Bootloader 的特点(1)
与硬件关系密切
与具体CPU类型有关
与系统的具体硬件实现(电路板)有关
与具体操作系统无关
通常保存在某种被映射到CPU某个指定地址(一
般为0x00,reset的入口地址)的固态存储器中
一旦系统开始运行,Bootloader便不再起作用
Bootloader 的特点(2 )
Bootloader启动可以是单阶段或多阶段,代码可
以都在flash中运行,或者一部分在flash中运
行,另一部分在ram中运行;
一般bootloader至少有一部分在flash中运行,
但有少数例外(需要处理器支持)
一般bootloader有“引导”和“下载”两种工作模式
还需要支持与主机(Host)之间的通信,一般为
串口
采用两级启动方式的Bootloader (1)
Stage1:主要完成一些依赖于处理器体系结构的
任务,通常用汇编语言完成
硬件设备初始化
为加载stage2准备RAM空间
将stage2代码复制到RAM空间,并设置堆栈
跳转到stage2的代码入口
采用两级启动方式的Bootloader (2 )
Stage2:完成诸如命令处理等更加复杂的功能,
通常用C语言完成
初始化本阶段需要用到的其他硬件设备
准备系统内存映射
将操作系统内核从Flash中搬移到RAM中
为内核设置启动参数
调用内核入口函数
Bootloader结构
处理器启动初始化代码及中断向量表
必要的设备管理机制和驱动函数
对传输协议的支持
由于需要完成“下载”功能,需要同主机之间进行文件传
输,所以需要支持至少某种文件传输协议和相应的驱
动程序,一般通过串口,需要支持
xmodem/ymodem/zmodem等,当然通过网络是一
个更好的选择
Bootloader结构
由于bootloader在工作过程中(尤其是调试阶
段)需要与开发者进行交互,所以提供一个用户
界面是必要的,通常通过串口终端的方式来完成
有些bootloader支持压缩格式,也就是说可以在
拷贝代码的过程中进行解压操作
Bootloader代码结构
一般的Bootloa
您可能关注的文档
最近下载
- 个人开通天然气委托书范本 .pdf VIP
- 2025-2026学年人教版(2024)小学体育与健康二年级(全一册)教学设计(附教材目录).docx
- MG-WD系列采煤机说明书.doc
- 2025年河南省高考物理试卷(含答案解析).docx
- 学堂在线网课《生活英语读写》课后作业单元考核答案.docx VIP
- 2025年第42届全国中学生物理竞赛预赛试题(学生版+解析版) .pdf VIP
- 安全牛:API安全技术应用指南(2024版).pdf VIP
- 2024年浙江省中考统考科学试卷试题真题(含答案解析).pdf VIP
- 《吴门验方》学习笔记.docx VIP
- 新目标大学英语-《综合教学教程》第四册(WELearn答案解析).DOC VIP
文档评论(0)