- 1、本文档共157页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章AutoOSEK操作系统讲解
1. OSEK标准介绍 OSEK OS OSEK COM OSEK NM OSEK OIL 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标准 OSEK OS标准主要包括: 操作系统构架 任务管理 应用模式 中断处理 事件机制 资源管理 警报 消息机制 错误处理 1.OSEK/VDX操作系统的构架 处理级——Processing levels 一致类——Conformance classes 处理级 OSEK操作系统是基于静态优先级的一种构架。 每个任务可以是基本任务或扩展任务,基本任务和扩展任务的区别在于扩展任务支持外部异步事件。 每个任务被分配一个静态优先级,调度器总是从就绪队列中选择最高优先级任务。ISR可以抢占运行任务(除了运行任务正在使用资源)。 OSEK操作系统提供了用户接口,这些接口主要通过实体来使用。操作系统提供了两类实体: 中断服务例程 任务 (基本任务和扩展任务) OSEK操作系统处理级 优先级规则: 中断优先级高于任务优先级 中断处理级由一个或多个中断优先级组成 中断服务例程具有指定的中断优先级 ISR的优先级与具体的硬件相关 资源天花板优先级与较高优先级任务相关。 任务优先级被用户静态分配 一致类 为了提供的不同应用需求,操作系统提供了4种一致类选择。一致类为在不改变应用任务情况下,按照预先规定对功能较少的类到功能较多的一致类提供了升级途径。 一致类主要包括下列属性规定: 多请求任务激活(一个任务激活或多个任务激活) 任务类型(基本任务或基本任务+扩展任务) 每个优先级对应的任务数(一个优先级对应一个任务或多个任务) 下面是一致类的定义: BCC1 :每个任务只有一个激活请求,一个任务只有一个优先级,所有任务优先级必须保持不同 BCC2 :在BCC1的基础上,每个任务可以有多个激活请求和一个优先级可以对应多个任务。 ECC1 :在BCC1基础上,增加了扩展任务,即支持事件机制。 ECC2 :在ECC1基础上,每个任务可以有多个激活请求和一个优先级可以对应多个任务。 一致类Conformance classes 2.任务管理 在OSEK OS中,任务提供了并发/异步执行功能。调度器负责根据定义的调度算法调度任务。 OSEK OS 提供两种任务:基本任务和扩展任务。它们不同之处在于,扩展任务允许调用WaitEvent(),即允许扩展任务在等待异步事件时,不终止当前例程释放CPU。 每个任务分配了一个固定的优先级(0被分配给最低优先级任务),可以是抢占式或非抢占式。如果是抢占式,该任务可以在任何时候被抢占,否则必须等到任务结束时才产生调度。一个抢占式任务可以变为非抢占任务通过使用加锁资源RES_SCHEDULER。 OSEK标准定义了4个任务状态: 就绪 等待 挂起 运行 基本任务没有等待状态:基本任务只有在任务的开始和结束才是同步点。 基本任务 基本任务在下列三种情况下释放CPU 自己结束 被高优先级任务抢占 中断产生 基本任务状态转换 扩展任务 扩展任务的状态转换 激活一个任务 操作系统通过系统调用ActivateTask或 ChainTask 激活一个任务。任务被激活后从最开始状态开始运行。 任务的多请求激活 根据一致类的定义,一个基本任务能被激活一次或多次。任务激活的多请求意味着操作系统必须接收和记录已经激活的任务激活次数。 任务激活请求次数在
文档评论(0)