第八章_AutoOSEK操作系统.ppt

  1. 1、本文档共157页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统及应用 第八讲 嵌入式实时操作系统设计 ;本节提要;1. OSEK标准介绍;OSEK/VDX是应用在模块和静态实时操作系统上的标准,由主要的汽车制造商和供应商,研究机构以及软件开发商发起。 OSEK,是指德国的汽车电子类开放系统和对应接口标准(open systems and the corresponding interfaces for automotive electronics),而VDX则是汽车分布式执行标准(vehicle distributed executive),后者最初是由法国独自发起的,后来加入了OSEK团体。两者的名字都反映出OSEK/VDX的目的是为汽车电子制定标准化接口。该标准完全独立,对目标系统只限制了少量的条件。 ;其中OSEK OS是针对汽车应用特点而专门制定的一个小型RTOS规范,着重以下几个方面: ①可移植性,所有API都是标准化的并且在功能上都有明确的定义; ②可扩展性,OSEKOS旨在通用于任何类型的 ECU,因此一方面系统要高度的模块化,另一方面又要能进行灵活的配置; ③汽车应用的特定需求,诸如可靠性、实用性和代价敏感性等。 相应的,OSEK OS静态配置可以通过OSEK OIL语言实现,用户在系统生成时静态制定任务的个数、需要的资源和系统服务。OSEK COM为通信网络中的数据交换提供了标准的接口和协议。OSEK NM为监视网络的流量提供了一组标准的功能函数,以保证网络的安全性和可靠性。 ;本节提要;OSEK OS标准主要包括: 操作系统构架 任务管理 应用模式 中断处理 事件机制 资源管理 警报 消息机制 错误处理;1.OSEK/VDX操作系统的构架;处理级;OSEK操作系统提供了用户接口,这些接口主要通过实体来使用。操作系统提供了两类实体: 中断服务例程 任务 (基本任务和扩展任务);;优先级规则: 中断优先级高于任务优先级 中断处理级由一个或多个中断优先级组成 中断服务例程具有指定的中断优先级 ISR的优先级与具体的硬件相关 资源天花板优先级与较高优先级任务相关。 任务优先级被用户静态分配 ;为了提供的不同应用需求,操作系统提供了4种一致类选择。一致类为在不改变应用任务情况下,按照预先规定对功能较少的类到功能较多的一致类提供了升级途径。 一致类主要包括下列属性规定: 多请求任务激活(一个任务激活或多个任务激活) 任务类型(基本任务或基本任务+扩展任务) 每个优先级对应的任务数(一个优先级对应一个任务或多个任务) ;下面是一致类的定义: BCC1 :每个任务只有一个激活请求,一个任务只有一个优先级,所有任务优先级必须保持不同 BCC2 :在BCC1的基础上,每个任务可以有多个激活请求和一个优先级可以对应多个任务。 ECC1 :在BCC1基础上,增加了扩展任务,即支持事件机制。 ECC2 :在ECC1基础上,每个任务可以有多个激活请求和一个优先级可以对应多个任务。;一致类Conformance classes;; ;2.任务管理 ;每个任务分配了一个固定的优先级(0被分配给最低优先级任务),可以是抢占式或非抢占式。如果是抢占式,该任务可以在任何时候被抢占,否则必须等到任务结束时才产生调度。一个抢占式任务可以变为非抢占任务通过使用加锁资源RES_SCHEDULER。;OSEK标准定义了4个任务状态: 就绪 等待 挂起 运行 基本任务没有等待状态:基本任务只有在任务的开始和结束才是同步点。 ;基本任务;基本任务状态转换;扩展任务;扩展任务的状态转换;任务比较;激活一个任务;任务切换机制;任务优先级;调度器: 就绪任务的执行顺序;依据以下的准则决定下一个被执行的任务: ●调度器在“就绪态”队列中搜索所有的任务。 ●调度器在处于“就绪态” 的任务集中,选出优先级最高的任务集。 ●调度器在上一个步骤中选出同一个优先级的任务中找出最先进入就绪态的任务。;调度器按照任务优先级决定下一个就绪任务进入运行状态。具有相同优先级的任务按照它们的激活顺序启动。 OSEK标准提供4种静态优先级调度,如下所述: 全抢占调度: 运行任务可以被高优先级任务抢占。 非抢占调度: 任务的切换只有通过明确的系统调度来实现。如任务结束Termination ,事件触发POSTEvent等。 ;调度方式;全抢占式调度; 在全抢占式调度下,用户应该总是期望“运行态”任务的抢占。但是,如果希望一个任务片段不会被抢占,那么可以通过系统服务GetResource临时阻塞调度器。 在以下情况会出现重新调度: 任务的成功终结TerminateTask 。 任务的成功终结,并且成功地激活接下来要执行的任务(ChainTask)。 在任务层次激活一个任务(例如:系统服务ActivateTask)

文档评论(0)

勤能补拙 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档