- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Boot_Loader启动过车奶
7.1 Boot Loader 概述;图7.1 Boot Loader的主要任务;7.2 Boot Loader与嵌入式系统的关系;图7.2 存储设备典型空间分配结构;7.2.1 Boot loader的操作模式
大多数Boot loader都包含启动加载模式及下载模式两种不同的操作模式,但这种区别仅对于开发人员才有意义。从最终用户的角度开,Boot Loader的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。
1.启动加载模式(Boot Loading)
启动加载模式也称为自主(Autonomous)模式,即Boot Loader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。这种模式是Boot Loader的正常工作模式。
2.下载(Down Loading)模式
当采用下载模式时,目标机上的Boot Loader将通过串口连接或网络连接等通信手段从主机下载文件,如应用程序、数据文件、内核映像等。从主机下载的文件通常首先被Boot Loader保存到目标机的RAM中,然后再被Boot Loader写到目标机上的固态存储设备中。下载模式要求在Boot Loader中完成对串口或以太网口的初始化,定义相关的命令,向其终端提供相应简单的命令接口。Boot Loader的这种模式通常在系统更新时使用。 ;7.2.2 Boot Loader的总体设计
1.阶段设计
Boot Loader的启动可以是分阶段的,因此在设计时也可将Boot Loader分为阶段1和阶段2。将Boot Loader分为2个阶段的原因如下。
(1) 基于编程语言的考虑
阶段1主要用汇编语言编写,这是因为它主要行进与CPU核心及存储设备密切相关的处理工作,进行一些必要的初始化工作,是依赖于CPU体系结构的代码,为了增加效率以及因为涉及协处理器的设置,只能用汇编语言编写,这部分直接在FLASH中执行;阶段2可以用一般的C语言编写,用于实现一般的流程以及对板级的一些驱动支持,这部分会被复制到RAM中执行。
(2) 代码具有更好的可读性与移植性
若对于相同的CPU以及存储设备,要增加外设支持,阶段1的代码可以维护不变,只对阶段2 的代码进行修改;若要支持不同的CPU,则基础代码只需在阶段1中修改。; 2.地址规划设计
当Boot Loader阶段设计好之后,需要考虑的是镜像存储的地址分配:如总镜像保存在什么地方,阶段2对应的镜像会被复制到什么地方,内核镜像原先存放在什么地方,Boot Loader会把它又重新加载到什么地方;如何进行准确的地址规划以保证没有相互冲突等。
3. 模式设计
对于普通用户来说只需要Boot Loader的启动加载模式,但是对于开发者来说,则需要下载模式,因为他们需要时时刻刻地进行一些镜像的更新。为了在两者之间做到兼顾,这里介绍一个既支持启动加载模式又支持下载模式的具体思路:在Boot Loader做完一些硬件初始化的工作之后,而在加载内核镜像之前,先在一定的时间内等待有没有用户有键盘输入。如果没有,则为启动加载模式,直接加载内核镜像进行启动;如果有,则进入命令行格式,这时开发者就可以根据自己的需要以及Boot Loader的支持情况,做一些其他的工作。模式的转换设计主要在阶段2中实现。 ;7.3 Boot Loader的主要功能及典型结构;图7.3 Boot Loader在Flash和RAM中的系统布局;7.3.2 Boot Loader的阶段2
阶段2的代码通常用C语言来实现,以便于实现更复杂的功能和取得更好的代码可读性和可移植性。
1. 初始化阶段2要使用的硬件设备:通常包括初始化一个串行口,初始化计时器等。
2. 检测系统内存映射:所谓内存映射就是指在整个物理地址空间中有哪些地址范围被分配用来寻址系统的RAM单元。在S3C44B0x处理器中,从0x0C000000到0间的64MB地址空间被用作系统的RAM地址空间。
3.加载内核映像和根文件系统映像:(1)规划内存占用的布局;(2)从Flash上复制。
4.调用内核:完成了所有硬件的设置后,就可以跳转到内核,开始运行内核了。; 从Flash设备上拷贝映像的工作,程序代码如下:
/*拷贝Flash地址0x10000内核到RAM 0xC300000中*/
ldr r0, =0x10000
ldr
您可能关注的文档
- ad转换电路设计的.doc
- AIS(船舶自动识别系的统)原理及应用.doc
- aix系统备份与恢复驳慕骤.ppt
- AIX 操作系统恢复文的档.doc
- AIX+小型机操作系统的学习指南——01系统管理概述.ppt
- AI转CDR问题---如何的把AI文件完美导入CDR使用方法.doc
- AL-7480大型总线制钡抹警主机说明书.pdf
- Allegro约束规则设值拿.doc
- AllExperiments__《的数学建模实验》上机实验作业.pdf
- Altium Designer Ge的rber CAD 导出方法.doc
- 小学数学教学中的思维评价模式创新与实践教学研究课题报告.docx
- 2025年防潮防锈纸项目可行性研究报告.docx
- 高中化学实验设计与家乡特色美食制作工艺的关联教学研究课题报告.docx
- 小学生物实验中昆虫生态系统对生态平衡维持的重要性研究教学研究课题报告.docx
- 小学科学探究自然界中物质的变化规律与应用研究教学研究课题报告.docx
- 初中数学教学中数学竞赛训练软件的应用与数学思维拓展教学研究课题报告.docx
- 初中生特殊家庭心理危机干预的心理健康教育师资培训体系研究教学研究课题报告.docx
- 初中物理教学中概念学习的个体差异研究教学研究课题报告.docx
- 《高校公共艺术课程审美能力培养与艺术专业教育的融合研究》教学研究课题报告.docx
- 细胞因子制剂项目审查报告.docx
文档评论(0)