嵌入式Linux系统开发教程 教学课件 作者 978 7 302 22520 1 第七章.pptVIP

嵌入式Linux系统开发教程 教学课件 作者 978 7 302 22520 1 第七章.ppt

  1. 1、本文档共31页,可阅读全部内容。
  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文档。上传文档
查看更多
但对于嵌入式系统而言,出于经济性、价格方面的考虑,虽然一些嵌入式CPU中会嵌入一段短小的启动程序,但是通常并没有像BIOS那样的固件程序,所以相对于PC机上的OS Bootloader所做的工作,嵌入式系统的Bootloader不仅要完成将内核映象从硬盘上读到RAM中,然后引导启动操作系统内核,还需要BIOS所做的硬件检测和资源分配工作。可见,嵌入式系统中的Bootloader比起PC机中的Bootloader更强大,功能更多。 例如,在一个基于ARM920T Core的嵌入式系统中(如S3C2440),系统在上电或复位时通常都从地址0开始执行,而以处理器为核心的嵌入式系统,通常都有某种类型的固态存储设备(如EEPROM、FLASH等)被映射到这个预先设置好的地址上。在系统加电复位后,处理器将首先处理Bootloader程序。因此Bootloader是系统加电后、操作系统内核或用户应用程序运行之前,首先运行的一段代码,通过这段代码,可以初始化硬件设备,建立内存空间的映射图(有的CPU没有内存映射功能),从而将系统的软硬件环境设定在一个合适的状态,为最终调用操作系统内核,运行用户程序准备好正确的环境。 通常一个嵌入式系统软件架构可以分为四个层次:用户应用程序,文件系统,嵌入式操作系统内核和引导加载程序(即Bootloader)。从底往上各层次完成的主要功能如下如图: 引导加载程序:固化在硬件Flash上的一段引导代码,用于完成硬件的一些基本配置,引导嵌入式操作系统内核启动; 嵌入式操作系统内核:包括特定于某嵌入式硬件平台的定制操作系统内核以及内核的启动参数等; 文件系统:包括根文件系统和建立于Flash内存设备之上文件系统。通常用ram disk或yaffs来作为文件系统,包括固化在固件(firmware)中的boot代码(可选),和Boot Loader两大部分; 用户应用程序:特定于用户的应用程序,有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式GUI有:MicroWindows、MiniGUI、QT/ Embeded等。 一般Bootloader包含两种不同的操作模式:启动加载模式(Bootloading)和下载模式(Downloading)。其实对于开发人员这种区分是非常重要的,但是对于最终的用户来说,就不需要那么区分了。我们只需知道Bootloader的作用是用来加载操作系统而已,当然就不会存在所谓的启动加载模式和下载工作模式的区别了。 启动加载模式(Bootloading)又称自主模式,是指Bootloader从目标机上的某个固件存储设备上将操作系统加载到RAM中运行,整个过程没有用户的介入。这种模式是Bootloader的正常工作模式。当嵌入式产品最终发布时,Bootloader就被默认在这种模式下。 Bootloader的主要功能是引导操作系统启动,它的启动方式一般有网络启动、磁盘启动和Flash三种启动方式。 在网络启动方式下,Bootloader通过以太网接口远程下载Linux内核映像或者文件系统。这种方式开发板不需要配置较大的存储介质,跟无盘工作站有点类似。但是使用这种启动方式之前,需要把Bootloader安装到板上的EPROM或者Flash中。交叉开发环境就是以网络启动方式建立的。这种方式对于嵌入式系统开发来说非常重要。 磁盘启动方式主要在PC机中的BIOS中经常使用,比如传统的Linux系统运行在台式机或者服务器上,这些计算机一般都使用BIOS引导,并且使用磁盘作为存储介质。如果进入BIOS设置菜单,可以探测处理器、内存、硬盘等设备,可以设置BIOS从软盘、光盘或者某块硬盘启动。但BIOS并不直接引导操作系统。那么在硬盘的主引导区,还需要一个Bootloader。这个Bootloader可以通过磁盘启动方式从磁盘文件系统中把操作系统引导起来。 Flash启动方式通常有两种方式,一种是可以直接从Flash启动,另一种是可以将压缩的内存映像文件从Flash(为节省Flash资源、提高速度)中复制、解压到RAM,再从RAM启动。Flash存储介质有很多类型,包括NOR flash、NAND flash 等。其中NOR flash使用最为普遍。 当电源打开时,系统会去执行ROM(较多的是Flash)里面的Bootloader启动代码。启动代码是用来初始化电路以及用来为高级语言写的软件做好运行前准备的一小段汇编语言,在商业实时操作系统中,启动代码部分一般被称为板级支持包,英文缩写为BSP。 跟其它的Bootloader一样,Vivi也有两种工作模式:启动加载模式和下载模式。启动加载模式可以在一段时间后自行启动linux内核,这段时间可以自行设定,

您可能关注的文档

文档评论(0)

时间加速器 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档