- 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的介绍及应用研究.doc
BootLoader的介绍及应用研究
摘要:BootLoader是嵌入式系统在最初运行时需要启动的一小段程序,同时,在系统复位时,也要运行。它主要包括装载与启动两个功能。本文分析了BootLoader在执行过程中发挥的几个功能,并介绍它的操作模式。
关键词:BootLoader 嵌入式系统 应用研究
中图分类号:TP368 文献标识码:A 文章编号:1007-9416(2013)05-0132-01
嵌入式系统最初运行的一小段程序是BootLoader,系统进行复位时,这段程序就会被运用。这段程序在执行过程主要发挥装载和启动两个功能。
1 BootLoader的功能介绍
存在于Linux操作系统中BootLoader程序不但要完成装载和启动两个功能,还会完成以下几个功能。
1.1 实现处理器和外设硬件的初使化操作
一般来讲,嵌入式处理器在重新恢复后,所有的外部引脚都是会保持为输入的状态,处理器相关设备资源也要重新进行配置。而BootLoader就是完成这些初使化操作的。例如只有SDRAM控制器被恢复后,它才会空间供计算机运行使用,才能保证其他程序的正常载入。
1.2 构建完整的内存空间映射图
系统在工作时,软件与硬件会处于不同的状态,而BootLoader具有一个功能就是将软硬件进入最佳的工作状态。一般来讲,BootLoader大多矮小,易于实现,因此不需要复杂的虚伪地址映射。但是,对于含有MMU的处理器的系统来说,一般分为两种情况,第一种情况就是同样不需要虚拟地址映射,另一种情况则是由于为了加速系统的启动过程,需要开启对DCache 的支持,这时就需要利用平板映射完成MMU的启动。BootLoader采用什么样的映射,采用哪种类型的MMU根据BootLoader的处理方式来确定。
1.3 将操作系统内核的映像装载到内存中
操作系统就是被BootLoader程序装载到内核之中,才开始系统的启动工作,这也是BootLoader完成的最重要功能之一。常用的装载方式主要有从串口装载系统、从网络装载系统、从Flash中装载系统三种形式。
1.4 实现闪存(Flash)的编程
实现对Flash的编程是指BootLoader会将下载完成的操作系统的映像数据存入其中,如果需要再次启动系统时,无需再次下载操作系统数据,只要直接装载Flash的数据即可。这种启动方式使用嵌入式系统实现了产品化。
1.5 实现操作系统的运行
实现操作系统的运行主要经历三个步骤:第一,完成寄存器和其他硬件资源的设置;第二,将数据载入到操作系统可以使用的专属空间;第三,实现操作系统的引导,完成启动程序。
1.6 完成系统启动参数的传送
很多操作系统在启动时,会向内核传递一些命令行,命令行的输入决定选择什么样的启动模式。例如Linux系统就会利用命令参数选定控制台、根文件系统以及用户的环境变量等。如何让系统知晓如何实现与BootLoader的沟通,简言知,第一个命令参数代表着什么意思,这BootLoader程序与内核约定好的,命令行会被安放在特别的专用内存空间中。
1.7 解析命令行实现对输入/输出设备的控制
BootLoader程序大多是采用串口作为终端控制方式的,既通过串口进行命令的转入,以此实现多种功能,或是通过串口输出菜单选择的模式。但是BootLoader的控制功能相对较弱一些。
BootLoader是与操作系统的启动程序,一般而言,针对一个操作系统,会有一个引导杨增渝,要想让其完成多个操作系统的引导,就要对BootLoader的进行修改,使其实现引导多个操作系统的功能。
2 BootLoader的两个阶段和操作模式
2.1 BootLoader的两个阶段
BootLoader由第一阶段(stage1)和第二阶段(stage2)两大部分组成。第一阶段由处理器体系结构和板级初始化代码组成,是由汇编语言实现,运行步骤主要包括初始化硬件设备、为第二阶段的启动准备内存空间;将第二阶段代码复制到内存中;设置好堆栈,跳转到第二阶段的入口。第二阶段则会实现一些更加复杂的功能,代码的可读性和可移植性比较好,一般是由C 语言来实现的,运行步骤主要包括完成本阶段涉及到的硬件设备的初始化;保证系统内存映射的正确;将内核映像和根文件系统映像从 Flash 读到 RAM 中;完成内核启动参数的设定;调用内核。
2.2 BootLoader 的操作模式
BootLoader的操作模式可以分启动加载(Bootloading)模式和下载(Downloading)模式。启动加载模式是BootLoader的正常工作模式,嵌入式系统的开
文档评论(0)