QNX实时操作系统学习笔记之嵌入式系统.docVIP

QNX实时操作系统学习笔记之嵌入式系统.doc

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

QNX实时操作系统学习笔记之嵌入式系统(一) (2011-03-21 08:31:28) 转载 一、开发嵌入式系统概述 1.简介 本节将从整体的角度来介绍开发一个完整的基于Neutrino嵌入式系统的步骤,首先,将会看运行一个Neutrino系统所需要的部件。接下来会看这些部件和他们如何操作,最后,将会学习配置某些部分时要完成的步骤。 从软件的角度,当系统启动时下列流程将会发生: (1)处理器开始从复位向量执行代码。初始化程序装载(IPL)会将OS镜像装载并传递控制到镜像中的startup程序。 (2)startup程序配置系统并传送控制到neutrino 微内核和进程管理器(procnto)。 (3)procnto模块装载附加的驱动和应用程序。 2.IPL的角色 软件执行的第一步便是装载OS镜像。这是由IPL来完成的。 IPL的初始化工作是以最简的方式配置硬件来产生一个允许startup,进而是neutrino微内核程序执行的环境。特别地,这个工作至少包含以下几步: (1)从复位向量开始执行; (2)配置存储控制器,这可能会包含配置芯片选择和(或)PCI控制器(Peripheral Component Interconnect,一种由英特尔(Intel)公司1991年推出的用于定义局部总线的标准)。 (3)配置时钟。 (4)设置一个堆栈来允许IPL库执行OS认证和启动(镜像下载、扫描、启动、jump) 3.IPL的热启动和冷启动 IPL有两种类型:热启动和冷启动。热启动IPL是由ROM监视器或BIOS激活,硬件和处理器配置的某些部分已经被启动。 另一方面,冷启动IPL则是在任何部分都没有被配置或初始化——CPU和硬件刚刚被复位。一般来说,在热启动中需要完成的工作都是在冷启动IPL中的子集。 在最后我们将讨论IPL的责任,并描述在镜像的第一个部件启动前全部就绪的状态。根据目标的设计,要完成的步骤可能从0(例如,在一个带有ROM监视器或BIOS的标准平台上运行,并且已经通过disk或network boot完成了IPL热启动;引导ROM已经完成了下面描述的工作)到很多步(例如,一个不带有firmware[泛指直接控制硬件的软件,也指固化在硬件中用来控制硬件的软件,比如BIOS]的嵌入式系统,镜像是在一个特定的硬件中存储)。 最后的状态(镜像的第一个部件开始运行前)具有以下的特性: (1)存储控制器已经配置为允许系统中的存储进入。 (2)最基本的硬件配置已经完成(例如,芯片选择EPROM的信息已经被程序化) (3)整个镜像已经被放在线性可寻址的存储空间。 (4)镜像的第一部分,startup,现在应该在RAM中(注意到startup代码相对很小,当startup代码完成后RAM区域将被重新声明) 不管是IPL或BIOS/ROM监控器代码都负责将镜像传送到线性可寻址存储空间。OS镜像必须以一种IPL或ROM监视器代码能够理解的方式开发,以使它能知道该把镜像放在哪里,镜像装载之后应该把控制送到什么地址。 例如,一个IBM PC BIOS系统通常装载一个原始的二进制,然后跳转到第一个地址。其他的系统可能接受ELF格式【 Executable and Linkable Format,可执行连接格式,是UNIX系统实验室(USL)作为应用程序二进制接口(Application Binary Interface,ABI)而开发和发布的。扩展名为elf。】的镜像,用ELF头文件信息来决定镜像和启动地址放置的位置。参考你的硬件资料确定IPL可以接受的镜像格式。 一旦IPL已经装载了镜像,整个镜像已经处于线性可寻址存储空间,控制也被传送到startup程序。此时,IPL已经完成了使命。 4.startup程序的角色: 软件执行的第二步是配置处理器和硬件,检测系统资源,启动OS。这些是由startup程序完成的。 当IPL完成了基本的最小配置,使系统到一个startup程序可以运行的状态,startup程序的任务是结束配置。如果IPL检测到不同的资源,它可能与startup程序交流这个信息(这样它就不会重复检测相同的资源)。 为了使neutrino能够尽量可配置,我们已经使startup程序可以编写基本定时器、中断控制器、缓存控制器等等程序。它也可以提供kernel callouts,它们是内核可以调用来执行硬件具体化功能的代码片段。例如,当一个硬件中断被激发,代码的一些片段必须决定中断源,而另一些代码片段则必须能清除中断源。 注意到startup程序不会配置串口波特率之类的东西。它也不会初始化标准周边设备,例如以太网控制器或EIDE硬件disk控制器——这些都留给驱动稍后启动以后来完成。 一旦startup代码初始化了系统,并把系统信息放在系统

文档评论(0)

cgtk187 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档