- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
BootLoader的设计与实现 重定位问题?? 定义 1. 当编译器或汇编器编译一个单独的模块时,它不知道这个模块会被加载到内存的何处,这时编译器输出代码时就遵循一个惯例,编译每个模块都是从地址0开始。当这个模块真正装入内存时,他一般不可能从0开始,这时就要一个地址转换的过程,称之为重定位 重地位 分类 1)静态重定位 在程序被加载到内存之前已经知道了它将要加载到内存的开始地址,这样就可以事先进行地址转换,把相对地址转换成绝对地址。 2)动态重地位 作业装入内存后所有的地址仍然是相对地址,将相对地址转换成绝对地址的过程被推迟到程序指令要真正执行时进行。动态重定位要硬件--重定位寄存器支持 1 BootLoader概述 1.1 BootLoader的概念 1.2 BootLoader的操作模式 1.3 嵌入式系统的引导模式 1.4 BootLoader的功能特性 ★2 BootLoader的体系结构 2.1 BooterLoader 的架构 2.2 BooterLoader 的支持库 3 BootLoader的代码的组件和执行流程 3.1 BooterLoader代码组件 3.2 BooterLoader代码的执行流程 4 BootLoader开发前的硬件考虑 4.1 考虑的原因 4.2 考虑的因素 4.3 基于s3c2440的开发板 ★5 BootLoader的设计与实现 5.1 构建创建环境 5.2 startup函数的设计与实现 5.3 主函数main的设计与实现 5.4 控制流函数的设计与实现 5.5 调试函数的设计与实现 5.6 以太网控制器相关的函数 5.7 写FLASH函数的设计与实现 5.8 镜像下载函数的设计与实现 5.9 时间相关函数的设计与实现 5.10 配置文件 1 BootLoader概述 1.1 BootLoader的概念 ◆ BootLoader的描述 操作系统内核运行前运行地一段小程序 。初始化硬件、建立内存空间映射图,为OS的运行准备好正确的环境。带有BootLoader的固态存储介质典型空间分配如图1所示 ◆ BootLoader的功能 ● 引导系统 ● 加载操作系统 1.2 BootLoader的操作模式 ◆ 启动加载模式 又叫自主模式,BootLoader将预先存储在永久固态介质上 的OS镜像加载到RAM中运行。 ◆ 下载模式 目标机通过串口、网口或者USB从主机端下载镜像到目标机端点RAM中,然后再被 BootLoader 写到目标机上的FLASH 类固态存储设备中 1.3 嵌入式系统的引导模式 ◆ BootLoader引导模式 优点:可以轻松实现内核升级 ◆ 非BootLoader引导模式?? 操作系统事先写入到CPU开始执行的地址位置,或者在CPU开始执行的地址位置写入一个RESETVECTOR变量,由它来定义一个跳转地址,指向操作系统的起始位置 1.4 BootLoader的功能特性 并非所有平台都支持下面列出的功能特性,但大部分特性对所有平台来说都是有用的 ◆ BootLoader典型特性 ● BootLoader应驻留在FLASH等永久存储介质里 ● BootLoader应提供消息反馈机 ● 尽量使用微软提供的支持库开发BootLoader ● BootLoader要能加载BootLoader镜像和OS镜像,对OS镜像要既能从RAM加载,也能从FLASH加载 ● 提供数据正确性保障 ● 要和OAL共享相同的硬件初始化代码 ◆ BootLoader的附加功能特性 ● 在BootLoader的输出信息中,应包含版本、开发者和构建日期等信息 ● 设计一个序列化的功能选项菜单,为用户开发提供便利 ● 支持自更新 ● 与PB协调工作,实现复位下载,复位跳转和自更新 ● 提供一种监视和反馈机制,监控下载过程 ● 在其中尽肯能的包含以太网调试驱动 2 BootLoader的体系结构 2.1 BooterLoader 的架构 BooterLoader的结构如图2所是: ◆ 五个组成部分 BLCommon库,OEM代码,Eboot库,EDBG驱动,以及存储管理 ● OEM代码必须由用户自己编写 ● EDBG驱动,以及存储管理可能需要修改,视具体情况 ● BLCommon库和Eboot库完全不用改 ◆ OEM代码 用户根据自己的平台特点编写或修改的代码 ● 存放路径为: %_WINCEROOT%\Platform\Hardw
您可能关注的文档
最近下载
- PDCA循环在降低采集血标本不合格率中的应用.pptx VIP
- 山东兖矿集团委培试卷.pdf VIP
- 胸痛三联征的影像学检查.pptx VIP
- 2025上半年中级软件水平考试《软件设计师(综合知识)》新版真题卷(含详细解析).docx VIP
- 亨德尔 咏叹调 我亲爱的恋人 mio caro bene罗德琳达钢琴伴奏正谱.pdf VIP
- 2025广西百色工业投资发展集团有限公司招聘27人备考题库及答案解析.docx VIP
- 许昌学院鲲鹏产业学院实训室项目.doc VIP
- 2025广西百色工业投资发展集团有限公司招聘27人笔试备考题库附答案解析.docx VIP
- 数字经济产业学院建设方案.pptx VIP
- ME8206系列_C2.0微盟原厂规格书.pdf VIP
文档评论(0)