〈新〉第五章 嵌入式Linux系统引导装载程序建立.doc

〈新〉第五章 嵌入式Linux系统引导装载程序建立.doc

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章 嵌入式Linux系统bootloader开发移植 教学目标:掌握嵌入式Linux系统各种bootloader定义,了解bootloader基本功能以及bootloader来源。了解U-boot移植方法。 主要内容: 9.1 bootloader概述 9.2 常见第三方bootloader类型 9.3 U-boot移植 9.4 vivi移植 教学难点: 1.bootloader功能 2.U-boot和bootloader关系。 3.U-boot移植方法 9-1. Bootloader概述 为了了解bootloader是什么,先分析嵌入式系统从上电复位启动到最后开始工作提供服务的整个工作过程。大多数嵌入式系统启动过程如下图9-1所示, (1)上电复位和板级初始化,板级初始化具有完全的硬件依赖性,一般采用汇编语言实现,不同的嵌入式系统板级初始化要完成的工作具有一定的特殊性,但以下工作必须完成。 CPU初始化 堆栈指针寄存器初始化 中断控制器初始化 内存初始化 (2)系统引导或者系统升级 将系统软件从NORflash中读取出来加载到RAM中运行,这种方式可以解决FLASH比RAM慢的问题,软件可压缩存储在flash中。 直接在FLASH上运行程序,进入系统初始化。 将软件从外存如nand flash,CF卡,SD卡,MMC等中读取出来,加载到RAM运行。 进入系统升级阶段后可通过远程网络或者本地串口等进行系统升级,远程升级一般支持RFTP,FTP,HTTP等方式。 (3)系统初始化 在该阶段主要进行操作系统等系统软件个功能部分的初始化工作,如根据系统配置初始化数据空间,系统所需外设接口等。 (4)应用初始化 将各种应用程序配置启动,带到一个合适的状态,等待用户使用。 (5)多任务应用 至此,用户才可以开始使用系统完成相关功能。 1.Bootloader概念 系统上电复位启动的以及系统引导升级的工作主要是由称为Bootloader软件来完成.简单地说,BootLoader 就是在操作系统内核运行之前运行的一段小程序初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 由于BootLoader 是严重地依赖于硬件而实现的嵌入式世界建立一个通用的 BootLoader。除了依赖于 CPU 的体系结构外,实际上也依赖于具体的嵌入式板级设备的配置。这也就是说,对于两块不同的嵌入式板而言,即使它们是基于同一种 CPU 而构建的,要想让运行在一块板子上的 BootLoader 程序也能运行在另一块板子上,通常也都需要修改 Boot Loader 的源程序。 Boot Loader 的系统加电或复位后,所有的 CPU 通常都从某个由 CPU 制造商预先安排的地址上取指令。比如,基于 ARM7TDMI core 的 CPU 在复位时通常都从地址 0取它的第一条指令。而基于 CPU 构建的嵌入式系统通常都有某种类型的固态存储设备(比如:ROM、EEPROM 或 FLASH 等)被映射到这个预先安排的地址上。因此在系统加电后,CPU 将首先执行 Boot Loader 程序。 下图就是一个同时装有 BooLoader、内核的启动参数、内核映像和根文件系统映像的固态存储设备的典型空间分配结构图。 图9-2 嵌入式Linux系统软件在固态存储器上分配 Bootloader启动过程通常有两种方法,多阶段和单阶段,通常多阶段的 Boot Loader 能提供更为复杂的功能,以及更好的可移植性。从固态存储设备上启动的 Boot Loader 大多都是 2 阶段的启动过程,也即启动过程可以分为 stage 1 和 stage 2 两部分。而至于在 stage 1 和 stage 2 具体完成哪些任务将在下面讨论。 大多数 BootLoader 模式:启动加载模式和下载模式,这种区别仅对于开发人员才有意义。但从最终用户的角度看,Boot Loader 的作用就是加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别。 启动加载(Boot loading)模式:这种模式也称为自主(Autonomous)模式。也即 BootLoader从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。这种模式是 Boot Loader 的正常工作模式,因此在嵌入式产品发布的时侯,Boot Loader 显然必须工作在这种模式下。 下载(Downloading)模式:在这种模式下,目标机上的 Boot Loader 将通过串口连接或网

文档评论(0)

xiaofei2001128 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档