嵌入式王丹华第四次实验.docVIP

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

185****7617 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档