- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式系统实验报告
Linux BootLoader实验
学 院 电子与信息学院
专 业 信息工程2班
学生姓名 王丹华
实验台号 23
指导教师 高学
提交日期 2010年5月20日
实验目的
了解BootLoader的基本概念和框架结构
了解BootLoader引导操作系统的过程
掌握bootloader程序的编译方法
掌握BootLoader程序的使用方法
实验内容
熟悉嵌入式linux环境下的开发工具,包括make、gcc、超级终端等
bootLoader程序的编译和下载
内核和文件系统的编译和下载
实验分析bootLoader程序的实现原理和结构
观察程序运行情况
完成实验手册题2和题5
实验原理
BootLoader的功能与结构
嵌入式Linux系统软件结构如图1所示:
图1 嵌入式Linux系统软件结构
什么是BootLoader?
简单地说,BootLoader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
由于硬件结构差别较大,不同的目标板需要不同的BootLoader。
BootLoader 的主要功能
初始化系统在启动阶段必需的硬件设备;
准备后续软件系统(如操作系统)运行所需的软件环境,如复制操作系统内核代码到RAM中等;
向内核传递启动参数;
[可选] 配置系统各种参数;
[可选] 支持各种协议来下载BootLoader、内核、文件系统等;
[可选] 在线烧写系统firmware(固件),如启动参数、BootLoader、内核、文件系统等;
[可选] 支持在线调试;
引导内核启动。
固态存储设备的空间分配
在固态存储设备中的典型空间分配情况如图2所示:
图2 固态存储设备中的典型空间分配情况
典型BootLoader的启动流程
典型的BootLoader启动流程如图3所示
图3 典型的BootLoader启动流程
BootLoader的工作模式
功能完善的BootLoader一般包含2种工作模式:
启动加载模式(loading)
从最终用户的角度看,BootLoader的功能就是加载操作系统。
下载更新模式(downloading)
主要用于嵌入式系统开发人员。
启动加载模式(loading)
这种模式也称为“自主”(Autonomous)模式;
BootLoader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入;
BootLoader的正常工作模式,在嵌入式产品发布的时侯,BootLoader 必须工作在该模式下。
下载更新(Downloading)模式
该模式下,目标机上的 BootLoader将通过串口或USB、网络连接等从主机(Host)下载文件,比如:下载内核映像和根文件系统映像等。
下载的文件通常被BootLoader保存到目标机的 RAM 中,然后再被写到目标机上的FLASH 类固态存储设备中。
该模式在第一次安装内核与根文件系统时会被使用;系统更新也会用到。
该模式下的 BootLoader通常都会为用户提供一个简单的命令行接口。
此次实验过程中即使用下载模式。
BootLoader的典型结构框架
大多数Bootloader的执行分为两个阶段:
第一阶段/也称FlashLoader
--运行于Flash的一段BootLoader代码
特点:
代码量小,往往不会超过256B;
汇编写成;
运行于Flash;
由于加载BootLoader后,需要运行BootLoader,因此最后往往是一条跳转语句。
主要操作步骤:
硬件设备初始化。
为加载BootLoader准备RAM空间。
拷贝BootLoader到RAM空间中。
设置好堆栈。
跳转到BootLoader的C语言入口点。
第二阶段/也称BootLoader
--运行于RAM中的BootLoader主要代码
特点:
BootLoader是操作系统内核运行前的核心程序,它具有如下特点:
代码量大;
由C语言写成,大多数时候需要嵌入式汇编语言;
运行于SDRAM等随机存储器
由于它是启动内核前运行的最后一个程序,它必须把控制权交给内核,因此它最后是一条跳转到系统内核的语句。
主要操作步骤:
初始化本阶段要使用到的硬件设备。
检测系统内存映射(mem
文档评论(0)