十一讲bootloader技术-read.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

zhuwo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档