AutoOSEK操作系统PPT.ppt
《AutoOSEK操作系统PPT.ppt》由会员分享,可在线阅读,更多相关《AutoOSEK操作系统PPT.ppt(157页珍藏版)》请在咨信网上搜索。
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,嵌入式系统及应用,第八讲 嵌入式实时操作系统设计,本节提要,1,3,2,5,4,OSEK,标准介绍,OSEK OS,标准,AutoOSEK,内核设计,OSEK COM,标准,OSEK OIL,标准,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,为监视网络的流量提供了一组标准的功能函数,以保证网络的安全性和可靠性。,本节提要,1,3,2,5,4,OSEK,标准介绍,OSEK OS,标准,AutoOSEK,内核设计,OSEK COM,标准,OSEK OIL,标准,OSEK OS,标准主要包括:,操作系统构架,任务管理,应用模式,中断处理,事件机制,资源管理,警报,消息机制,错误处理,OSEK OS,标准,1,OSEK/VDX,操作系统的构架,处理级,Processing levels,一致类,Conformance classes,处理级,OSEK,操作系统是基于静态优先级的一种构架。,每个任务可以是基本任务或扩展任务,基本任务和扩展任务的区别在于扩展任务支持外部异步事件。,每个任务被分配一个静态优先级,调度器总是从就绪队列中选择最高优先级任务。,ISR,可以抢占运行任务(除了运行任务正在使用资源)。,OSEK,操作系统提供了用户接口,这些接口主要通过实体来使用。操作系统提供了两类实体:,中断服务例程,任务,(,基本任务和扩展任务),OSEK,定义了三类处理级别:,中断级,调度逻辑级,任务级,OSEK,操作系统处理级,优先级规则:,中断优先级高于任务优先级,中断处理级由一个或多个中断优先级组成,中断服务例程具有指定的中断优先级,ISR,的优先级与具体的硬件相关,资源天花板优先级与较高优先级任务相关。,任务优先级被用户静态分配,为了提供的不同应用需求,操作系统提供了,4,种一致类选择。一致类为在不改变应用任务情况下,按照预先规定对功能较少的类到功能较多的一致类提供了升级途径。,一致类主要包括下列属性规定:,多请求任务激活(一个任务激活或多个任务激活),任务类型(基本任务或基本任务,+,扩展任务),每个优先级对应的任务数(一个优先级对应一个任务或多个任务),一致类,下面是一致类的定义:,BCC1,:每个任务只有一个激活请求,一个任务只有一个优先级,所有任务优先级必须保持不同,BCC2,:在,BCC1,的基础上,每个任务可以有多个激活请求和一个优先级可以对应多个任务。,ECC1,:在,BCC1,基础上,增加了扩展任务,即支持事件机制。,ECC2,:在,ECC1,基础上,每个任务可以有多个激活请求和一个优先级可以对应多个任务。,一致类,Conformance classes,栈分开与分类,BCC1,:在无中断情况下发生上下文切换仅有两种情况,被高优先级任务抢占,自己结束,当前任务,高优先级任务,1,高优先级任务,2,被高优先级任务抢占,被高优先级任务抢占,自己结束,自己结束,结论:,BCC1,下,任务、中断的栈的使用可以为同一个,不会相互干扰,即不需要每个任务使用独立的栈空间,ECC1,:多了等待状态,每个就必须使用独立的栈空间,而且为了提高任务栈大小的可估算性和使用率,将中断统一使用系统栈。,栈,2,任务管理,在,OSEK OS,中,任务提供了并发,/,异步执行功能。调度器负责根据定义的调度算法调度任务。,OSEK OS,提供两种任务:基本任务和扩展任务。它们不同之处在于,扩展任务允许调用,WaitEvent(),,即允许扩展任务在等待异步事件时,不终止当前例程释放,CPU,。,每个任务分配了一个固定的优先级(,0,被分配给最低优先级任务),可以是抢占式或非抢占式。如果是抢占式,该任务可以在任何时候被抢占,否则必须等到任务结束时才产生调度。一个抢占式任务可以变为非抢占任务通过使用加锁资源,RES_SCHEDULER,。,OSEK,标准定义了,4,个任务状态:,就绪,等待,挂起,运行,基本任务没有等待状态:基本任务只有在任务的开始和结束才是同步点。,基本任务,基本任务在下列三种情况下释放,CPU,自己结束,被高优先级任务抢占,中断产生,基本任务常常用来完成那些激活后就必须完整执行的工作,基本任务状态转换,扩展任务,扩展任务和基本任务的主要区别在于:允许调用系统服务,WaitEvent,(),该系统调用使任务进入等待状态。等待状态允许任务在不结束任务的情况下释放,CPU,调用优先级更低的任务运行,。,扩展任务的状态转换,任务比较,基本任务没有等待状态,因而同步点在任务开始和结束的地方,所以其需要的资源少。基本任务需求的资源必须独享直至整个任务结束。任务实时性较差。,扩展任务的优点是可以在单个任务中处理连贯的工作而不管同步请求是否有效。当需求事件未产生时就进入等待状态,直到事件产生。可以在任何点进行同步。,激活一个任务,操作系统通过系统调用,ActivateTask,或,ChainTask,激活一个任务。任务被激活后从最开始状态开始运行。,任务的多请求激活,根据一致类的定义,一个基本任务能被激活一次或多次。任务激活的多请求意味着操作系统必须接收和记录已经激活的任务激活次数。,任务激活请求次数在基本任务的属性配置时进行设置。如果最大的请求次数没达到,请求被排队。每个优先级的基本任务的请求按激活顺序排队。,任务切换机制,操作系统中用于决定哪个任务应该被启动的实体称为调度器。无论任务什么时候按照调度策略进行切换时都会调用调度器。调度器可以作为一个任务资源被任务独享和释放。因此一个任务可以独占调度器直到任务完成来避免被切换。,任务优先级,调度器按照任务优先级来决定下一个将要运行的任务。,0,被设计为最低优先级,一般留给空闲任务。优先级高低和优先级的数字相对应,数字越大,优先级越高。,动态优先级在,OSEK,中不支持,除了在使用资源时,根据天花板协议,任务优先级可动态变为资源优先级。,一个被抢占的任务优先级被认为是最先进入就绪队列的任务,一个等待任务进入就绪态被认为是最后进入就绪队列的任务。,调度器,:,就绪任务的执行顺序,依据以下的准则决定下一个被执行的任务:,调度器在“就绪态”队列中搜索所有的任务。,调度器在处于“就绪态”的任务集中,选出优先级最高的任务集。,调度器在上一个步骤中选出同一个优先级的任务中找出最先进入就绪态的任务。,调度器按照任务优先级决定下一个就绪任务进入运行状态。具有相同优先级的任务按照它们的激活顺序启动。,OSEK,标准提供,4,种静态优先级调度,如下所述:,全抢占调度:,运行任务可以被高优先级任务抢占。,非抢占调度:,任务的切换只有通过明确的系统调度来实现。如任务结束,Termination,,事件触发,POSTEvent,等。,调度策略,调度方式,全抢占式调度,在全抢占式调度下,用户应该总是期望,“,运行态,”,任务的抢占。但是,如果希望一个任务片段不会被抢占,那么可以通过系统服务,GetResource,临时阻塞调度器。,在以下情况会出现重新调度:,任务的成功终结,TerminateTask,。,任务的成功终结,并且成功地激活接下来要执行的任务(,ChainTask,)。,在任务层次激活一个任务(例如:系统服务,ActivateTask,)。,如果出现了任务转换为,“,等待态,”,的情况,,WaitEvent,会被调用。,在任务层次为一个,“,等待态,”,的任务设置一个事件(例如:系统服务,SetEvent,)。,在任务层次释放资源(系统服务,ReleaseResource,),从中断返回到任务层次。,非抢占式调度,非抢占式策略,就是就有通过精确定义的系统服务的选择才会导致任务切换。,非抢占式调度对任务可能的时序请求有着特别要求。特别地,正在运行的低优先级任务的不,非抢占(比如,任务有一些不可分割的代码段,或者有些不可分割的操作)会延迟一个高优先级任务的调度,只能等到下一个调度时刻。,非抢占调度,在非抢占式任务的情况下,在以下的情况定会导致重新调度的出现:,任务顺利的终止(系统服务,TerminateTask,),任务的成功终止,并且准确激活接下来要执行的任务(,ChainTask,),调度器的外部调用(系统服务,Schedule,)。,到,“,等待态,”,转变的发生(系统服务,WaitEvent,)。,混合调度:,由于抢占权是任务的属性,抢占式任务和非抢占式任务在系统中混合使用时,运行任务的调度受到实际使用的调度策略影响。,任务使用内部资源:,这种调度策略非常类似于抢占阈值技术,采用天花板和内部资源的在任务启动加锁与和结束解锁来实现阈值。,如果在同一个系统上混合使用抢占式和非抢占式任务,那么这个策略就叫做“混合抢占式”,调度。在这种情况下,调度策略取决于运行的任务的“抢占式属性”。如果,正在运行的任务是非抢占式的,那么就采取非抢占式调度;如果正在运行的任务是抢占式的,那么就采取抢占式调度。,选择调度策略,软件开发者或者系统集成人员通过设置任务的优先级和安排任务的抢占属性,决定任务的执行序列。,一个任务的类型(基础类型或者扩展类型)和任务的调度类型(抢占式或者是非抢占式)是独立的。,一个纯抢占式系统可能包含有基本任务,而一个非抢占式系统可以包含扩展任务。如果一个操作系统服务正在运行,任务的抢占和任务切换都有可能延迟。,很多应用程序是由极少的执行时间较长的任务和许多定义了执行时间的短任务组成,对于长时间的任务而言,纯抢占式操作系统较为合适;对时间较短的任务而言,采用非抢占式调度则更有效率。因此,混合式抢占式调度策略可以看作是一个折衷。,在以下情况,在一个抢占式操作系统中定义非抢占式任务是有意义的:,如果一个任务的执行时间和该任务的切换时间是在同一个数量级上的时候;,或者,,RAM,的使用十分经济,为了保存任务的上下文环境;,或者,该任务不应该被抢占。,结束任务,在,OSEK,中,任务只能自己结束自己。,操作系统提供,ChainTask,函数来实现指定的任务在结束自己后激活运行。,ChainTask,使得最新被激活的任务加入优先级队列的最后。,每个任务必须在代码结尾通过调用,TerminateTask,或,ChainTask,结束自己。,3,操作系统应用模式,OSEK,操作系统提供应用模式的支持。在实际的应用中,一个操作系统可能执行几种互斥的应用(比如,正常模式,厂家测试模式等)。这些应用模式为不同运行条件而构建不同的软件运行构架提供了的一种手段。一旦操作系统启动就不允许改变系统的应用模式。每种应用模式使用自己定义的任务、中断、报警和定时条件和一些不同模式共享的,部分,。,系统启动,正常操作时有可能产生复位的情况,因此启动性能是在嵌入式系统在汽车应用中是另一个安全指标。例如,一个传动系应用应该能在几微秒内重启整个系统,因为系统必须安全控制发动机气缸中电火花。在正常情况下,应避免长时间复杂的启动过程。,4,中断处理,标准规定操作系统应该适用于不同的处理器,因此,操作系统的中断处理提供一种通用处理方法,而与硬件无关。,因此,在,OSEK,中,标准提供了两种中断处理:,1,类中断处理,此类,ISR,不调用操作系统的系统服务。在中断服务例程完成后,将继续处理中断发生的地方的指令,例如:中断不会影响任务的管理。此类的,ISR,所需要的花费最少。,中断服务程序不用操作系统服务。实际上,操作系统不处理这类中断,设计者可以自由编写这类中断处理代码,只是不能调用系统服务代码。通常这类中断是最高优先级中断。,2,类中断处理,中断被操作系统处理,因此操作系统服务能被中断处理程序调用。,中断管理,一类中断服务程序,二类中断服务程序,快速开启,/,禁止,API,(应用程序接口)功能,OSEK,提供了快速禁止所有中断(,EnableAllInterrupts,,,DisableAllInterrupts,,,ResumeAllInterrupts,,,SuspendAllInterrupts,)和禁止所有第二类中断(,ResumeOSInterrupts,,,SuspendOSInterrupts,)的功能。典型的用法是保护短暂的临界区域。在受保护的临界区域内不允许中断返回,例如:,“,suspend/disable,”,与,“,resume/enable,”,必须配对使用。,中断服务程序,(ISR),可以通过以下方式和任务进行通信:,ISR,激活一个任务;,ISR,发送,/,接收一个非队列消息;,ISR,触发一个计数器;,ISR,获取,Task ID,;,ISR,获取任务状态;,ISR,设置一个事件;,ISR,获取任务事件的屏蔽码;,ISR,使用报警。,在,2,类中断中可以使用的系统函数,注意:非屏蔽中断(,NMI),不能被分配到,2,类中断。这类中断操作系统不能保护其临界区。,ISR Stack,ISR,堆栈的目的是为了节省空间。当中断产生时,每个任务必须设置一个足够大的堆栈来保护任务和中断的变量。为了避免堆栈空间的重复,,OSEKTurbo,将,ISR,中的堆栈独立出来。这类堆栈在,2,类中断中使用。在,BCC1,中,,ISR,使用共用一个堆栈。在一些编译器中通过关键字来产生堆栈构架,如,“,interrupt,”,。,5,事件机制,事件机制,实现同步的方法,只支持扩展任务,可以初始化任务的转换状态,以便转换至等待态,或者以便从等待态转换,事件机制仅在扩展一致类中才支持。用来实现任务的同步和通信,可以通过,2,类中断或任务来触发。,扩展任务的典型行为是等待异步事件调用,WaitEvent,。在事件产生后,认为可以重新调用,WaitEvent,来等待其它事件。,事件只有当任务处于非挂起状态时设置。即扩展任务不能处于挂起状态。,有多个可选项用于操控事件,这取决于该任务是否是该事件的拥有者,或者另外的任务是否是一个扩展任务。所有的任务都可以为非挂起的任务设置事件。只有事件的拥有者才可以清除它自己的事件,并且等待自己的事件的设置。,在任何情况之下,事件的接受者都是扩展任务。因此,中断服务例程和基本任务是不可能等待一个事件的。,如果扩展任务等待的事件发生了,那么该扩展任务将会从等待态切换为就绪态。如果一个运行态的任务在等待某事件的发生,并且该事件已经发生了,那么该任务仍会在运行态。,抢占式扩展任务的同步,非抢占式扩展任务的同步,事件相关的函数,6.,资源管理,资源管理用于调整不同优先级的任务对共享的资源的访问,例如:管理实体(调度器)、程序片段、内存或者硬件区域。,对于所有的一致性类而言,资源管理是强制要求的。资源管理可以选择性地扩展,用于协调任务和中断服务例程的并发访问。,资源管理需要确保:,两个任务不能同时占用同一资源,不能够发生优先权倒置,在使用这些资源时,不允许死锁的发生,访问资源不允许导致等待态,如果在中断的层次扩展资源管理,还必须确保两个任务或者中断例程不能同时占用同一资源,在以下的情况中,资源管理的功能是非常有用的:,抢占式任务,在非抢占式任务的环境中,如果用户计划在其它的调度策略下,执行应用程序代码,在任务或者中断服务例程之间实现资源共享,在中断服务例程中实现资源共享,该标准提供能用于临界区的二进制资源。优先级反转和死锁通过称之为,OSEK,优先级天花板协议来避免。,该协议在实际上采用的静态优先级:,每个资源被分配一个天花板,它是使用该资源的所有任务(包括,ISR,)中最高优先级任务的优先级。,当一个任务请求一个资源时,他的当前优先级升为资源的天花板。,当任务释放一个资源,该任务的优先级被重新设置为资源请求以前的优先级。,采用该协议,优先级反转、链路阻塞、死锁被避免。而且,由于一个任务只有所有的资源被释放时才能被调度,因此不需要等待队列。,资源仅被任务使用。在,OSEK,标准中,资源可以被任务或,2,类中断服务例程使用。当一个中断使用资源时被视为是最高优先级任务:它的执行能被延迟当更低优先级中断服务例程或任务采用天花板的高于或等于该中断例程优先级访问该资源时。,资源使用时的限制,当资源被占用时,,TerminateTask,ChainTask,Schedule,WaitEvent,不能调用。使用被占用的资源的中断服务程序将不能完成。,当一个任务占用多个资源时,应按后进先出(,LIFO,)的原则释放资源。,调度器作为资源,标准还提供特殊的资源,调度器成为,RES_SCHEDULER,,它能使抢占不能产生。当抢占式任务在处理某段程序时要求连续运行,可以通过获取资源,RES_SCHEDULER,锁住调度器。实际上,该资源的天花板等于系统最高优先级。一个非抢占任务可以认为是使用了,RES_SCHEDULER,资源的任务。,此时,中断同样会被响应和处理,但不会产生调度。,同步机制产生的问题,优先级反转,死锁,外部资源:需要通过显示调用,API,进行占有,优先级置顶,抢占式任务和中断服务程序之间的资源分配,在中断服务程序之间的资源分配,内部资源,一个内部资源是一个简单的资源,当一个任务启动时,它被加锁,当这个任务结束时才被解锁。内部资源的天花板可被视为任务的优先权。,内部资源:任务一运行就占有,报警(,Alarm,),两级报警,报警动作,激活任务,设置事件,调用回调函数,根据配置,当该报警有效时,回调例程被调用或任务被激活,或者一个事件被设置。在报警回调函数运行时,,2,类中断被禁止。,7,报警,计数器,一个计数器通过硬件提供的节拍来实现计数。,OSEK,不支持标准,API,直接操作计数器。,操作系统关心的是怎样管理报警。,OSEK,操作系统提供至少一个计数器(硬件或者软件定时器)。,报警管理,操作系统在报警产生时提供任务激活、设置事件或调用一个报警回调例程。报警回调例程是由应用程序提供一个简短的函数。,当与报警关联的计数器计数达到设定值时,产生报警。可以通过相对值或绝对值来设置报警关联的计数器。,报警可以定义为单次报警或周期报警。,操作系统还提供取消报警和获取报警值函数。,报警管理的分层模型,报警回调例程,一个报警回调例程可以无参数或返回值。,回调例程应按下面格式定义,:,ALARMCALLBACK(AlarmCallbackRoutineName);,例如,:,ALARMCALLBACK(BrakePedalStroke),/*do application processing*/,8,消息,消息主要用于处理器内部和处理器之间进行通信。,OSEK COM,对消息进行了详细说明。,本节提要,1,3,2,5,4,OSEK,标准介绍,OSEK OS,标准,AutoOSEK,内核设计,OSEK COM,标准,OSEK OIL,标准,OSEK COM,OSEK,标准也包含了车辆内部通信的接口和协议的规定,称为,OSEK COM,。通信条款规定了整个车辆中两个结点之间的通信和一个结点的内部的通信。基本思想是为应用层提供一个易于实现不同硬件之间通信的独立于具体通信介质的标准的通信接口。,COM,规范给内部通信和外部通信定义了公共的软件通信接口和服务,这些接口和服务独立于所采用的通信协议。通过这些,就增加了应用程序软件模块的可移植性。,OSEK COM,提供了在任务间、,ISR,间以及任务和,ISR,之间传输数据的服务。这些任务可以在一个,ECU,里面也可以在不同的,ECU,里面。只能通过指定的,API,函数访问,OSEK COM,服务。这些,API,函数隐藏了内部通信和外部通信的不同之处,同时也隐藏了不同的通信协议、总线系统和网络类型。,COM,的概念模型,OSEK COM,包括,:,一个交互层:为消息的传输提供通信服务,一个网络层:为不同的消息和分段传输提供服务。,一个数据链路层接口:为上层不同数据包的网络传输提供服务。,OSEK COM,提供丰富的通信工具集,但许多应用只会用到其中的一个子集。正因为此,该标准定义了一个一致类集合,使,OSEK COM,能够按照不同的要求进行集成,为不同的汽车供应商提供不同集成软件需求。,OSEK COM,按照通信一致类(,CCCs,Communication Conformance Classes),定义这些分层。一致类的主要目的是根据不同应用需要和,CPU,特征定义不同功能的通信组成。,OSEK COM,定义了,4,个通信一致类来为,ECU,的内部通信到外部通信提供支持。,通信一致类,CCCA:,CCCA,定义最少的特征用于支持内部通信。非队列消息被支持。,CCCB:,CCCB,定义的特征用于支持内部通信。除了,CCCA,支持以外,还包括消息状态信息和队列消息。,CCC0:,CCC0,定义最少的特征支持内部通信和外部通信,所有的,CCCA,和,2,类通知,字节顺序转换,直接传输模式。,CCC1:,支持所用,OSEK COM,定义的特征。,消息传送和接收模型,外部接收模型,外部传送模型,外部消息的传送模式,直接传送,消息根据应用层调用直接发送。,周期传送,IPDU,中的消息按照设置的周期进行传送。,混合传送,消息采用直接和周期混合模式进行发送。,OSEK COM,只支持静态长度消息,一个消息被定义成固定长度,或者定义一个消息可以变化的最大长度。,OSEK COM,提供超时监测(死限)机制。,OSEK COM,提供过滤机制。,在发送方,采用过滤算法,如果不满足要求,,IPDU,数据不会被更新。,在发送方,内部消息不需要过滤。,在接收方,内部消息和外部消息都可以采用过滤。,直接传输,周期传输,混合传输,网络字节顺序转换,小端模式,大端模式,消息配置,配置主要包括,:,消息传送属性的配置,,IPDU,传输模式的配置。,消息的打包。,Packing of the messages to I-PDUs(see section 2.4 for details).,接收是否采用队列及队列的大小,内部通信基于消息对象的进程通信,符合,OSEK COM,标准的,CCCA,、,CCCB,一致类,发送消息对象,接受消息对象,队列接受,非队列接受,消息通知机制,消息通知机制提供四种通知,接收通知,发送通知,接收错误通知,发送错误通知,接受到消息,触发通知机制,激活任务,设置事件,设置标志,调用回调函数,通知机制,消息过滤,过滤主要用于判断消息是否符合设定的发送或接收条件,如果不满足就不发送或接收。,提供非负整数的,13,种过滤算法,例如,根据接收到的消息数据值进行过滤,根据消息数据变化趋势进行过滤,根据消息传输次数进行过滤,零长度和动态长度消息,没有过滤发生,死限监测,接收死限监测,必须在规定的时间间隔内接收数据,否则丢弃数据。,接收死限监测仅限于外部通信。,发送死限监测,是否采用发送死限,每个消息可以根据自己要求进行配置。,本节提要,1,3,2,5,4,OSEK,标准介绍,OSEK OS,标准,AutoOSEK,内核设计,OSEK COM,标准,OSEK OIL,标准,OSEK OIL,标准,OS Definition,Task Definition,ISR Definition,Resource Definition,Event Definition,Counter Definition,Alarm Definition,Message Definition,Application Modes Definition,COM Definition,NM Definition,OSEKturbo Performance Dependency,配置步骤,1.,设计应用程序配置情况,设计好用户程序中需要的任务数量,任务属性,堆栈大小,事件数量,告警数量,告警相关任务,消息数量,消息相关任务和事件情况,2.,利用,OSEKBuilder,生成,oil,文件和,gen,文件夹中的,c,语言配置文件,用,OSEKBulider,根据自己应用程序情况配置相关的,OIL,文件。,OIL,文件里任务等定义顺序是配置时的创建顺序。,配置步骤,1.,设计应用程序配置情况,设计好用户程序中需要的任务数量,任务属性,堆栈大小,事件数量,告警数量,告警相关任务,消息数量,消息相关任务和事件情况等配置需求。,2.,利用,OSEKBuilder,生成,oil,文件和,gen,文件夹中的,c,语言配置文件,用,OSEKBulider,根据自己应用程序情况配置相关的,OIL,文件。,OIL,文件里任务等定义顺序是配置时的创建顺序。,设计应用程序配置情况,设计好用户程序中需要的任务数量,任务属性,堆栈大小,事件数量,告警数量,告警相关任务,消息数量,消息相关任务和事件情况,举例:,8,个任务,,名字是,TASK1,TASK8,,,1,个事件,,名字是,event1,3,个消息,,名字是,mess1,mess3,2,个告警,,名字是,alarm1,和,alarm2,,,1,个资源,,名字是,res1,任务,8,用到告警,1,、事件,1,和任务,6,实现一个自我延时,利用消息,3,实现对任务,4,的激活,任务,4,和任务,5,都要用到互斥访问的资源,1,。,希望达到的效果是系统启动后任务,8,自动就绪,在设置了一个告警,自我延时一段时间后激活任务,4,,并发送消息,3,给任务,4,。任务,4,运行时能使用互斥资源,res1,,之后任务,5,被激活并也使用资源,res1,,两者之间能互斥访问资源不会发生优先级翻转现象。最后回到任务,8,,重复上述流程循环。,设计应用程序配置情况,TASK8,TASK6,TASK4,TASK5,event1,mess3,alarm1,res1,OIL,文件结构,单,CPU,配置的,oil,文件基本模式必须遵循以下结构。,OIL_VERSION=;,oil,版本,IMPLEMENTATION,/Implementation definition,.list of implementation specific object attributes.,;,.,;,执行模式标准,即配置对象的模式定义,CPU,/Definition of the application on CPU,/System object definition,=;,=;,.list of object attributes and references.,;,.list of objects.,;,具体配置对象的配置描述列表,配置对象的语法结构,所有的对象都用同样的语法结构,.,如下所示:,;,OS Definition,OS,对象描述一个操作系统的配置。,该类对象类型用关键字,OS,来定义,一个配置应用中只能有一个,OS,对象。,OS,对象的语法结构如下所示,:,OS,;,OS,定义,全局属性,STATUS=;,OS,的调式状态,CC=;,OSEK,的一致类定义,DEBUG_LEVEL=;,OS,中对,ORTI,的支持情况,BuildNumber=;,编译,ASCII,型,Number,是否编进,OS,的二进制镜像文件(,ROM,代码),MessageCopyAllocation=;,由,SG,默认指定或由用户指定的消息拷贝,ResourceScheduler=;,是否将调度器作为资源,Global System Attributes,STATUS(ENUM),,,CC(ENUM or AUTO),,,OS,调试状态的标准属性,一致类型等,EXTENDED,,,ECC1,,,CPU Related Attributes,TargetMCU,,,HCBasePage,,,相关于硬件的属性,S12DP256,,,Stack Related Attributes,IsrStackSize,,,系统中栈支持情况,integer,Task Related Attribute,TimeScale,,,ScalePeriod,,,操作系统中的任务属性,TRUE/FALSE,Interrupt Related Properties,UnorderedException,,,ISR,执行的参数定义,TRUE/FALSE,Hook Routines Related Attribute,STARUPHOOK,系统启动回调函数,TRUE/FALSE,SHUTDOWNHOOK,系统关闭回调函数,TRUE/FALSE,PRETASKHOOK,进入任务上下文前回调函数,TRUE/FALSE,POSTTASKHOOK,退出任务上下文后回调函数,TRUE/FALSE,ERRORHOOK,当返回状态不为,E_OK,时的回调函数,TRUE/FALSE,USEGETSERVICEID,获得错误回调函数中服务号的函数,TRUE/FALSE,USEPARAMETERACCESS,获得错误回调函数中上下文信息的函数,TRUE/FALSE,IdleLoopHOOK,空闲任务回调函数,TRUE/FALSE,OS,对象属性,OS,ENUM STANDARD,EXTENDED STATUS;,BOOLEAN STARTUPHOOK;,BOOLEAN ERRORHOOK;,BOOLEAN SHUTDOWNHOOK;,BOOLEAN PRETASKHOOK;,BOOLEAN POSTTASKHOOK;,BOOLEAN USEGETSERVICEID;,BOOLEAN USEPARAMETERACCESS;,BOOLEAN USERESSCHEDULER=TRUE;,;,OSEKBuilder,中名字为,OS,的,OS,对象标志为,点击 或在,OIL Object,窗口右键添加,OS,对象,双击属性关键字,在弹出的,Edit Value,窗口中输入该属性的参数值或属性值,OSEKBuilderOS,Task Definition,OIL,中一个任务对象描述一个任务的配置定义,通过属性参数的配置实现任务对象和系统的其他对象之间的间接连接。,该类对象类型用关键字,TASK,来定义,TASK,对象的语法结构如下所示,:,TASK ,PRIORITY=;,SCHEDULE=;,AUTOSTART=APPMODE=;,ACTIVATION=;,STACKSIZE=;,RESOURCE=;,EVENT=;,ACCESSOR=MESSAGE=;,WITHOUTCOPY=;,ACCESSNAME=;,;,PRIORITY,0,63,优先级大小,SCHEDULE,FULL/NON,任务调度方式,AUTOSTAR,TRUE/FALSE,自动调用模式,APPMODE,Name,应用模式,ACTIVATION,1,激活状态,RESOURCE,Name,任务中使用的资源,ACCESSOR,SENT/RECEIVE,消息使用模式,EVENT,name,任务中运行的事件,STACKSIZE,integer,任务堆栈大小,MESSAGE,name,任务发送或接受的消息,WITHOUTCOPY,TRUE/FALSE,是否允许消息复制,ACCESSNAME,string,消息数据参数定义包括,message,,,event,,,withoutcopy,三项,Task,对象属性,TASK,BOOLEAN,TRUE ,APPMODE_TYPE APPMODE;,FALSE,AUTOSTART;,UINT32 PRIORITY;,UINT32 ACTIVATION;,ENUM NON,FULL SCHEDULE;,EVENT_TYPE EVENT;,RESOURCE_TYPE RESOURCE;,MESSAGE_TYPE MESSAGE;,;,Task,对象属性,TASK name,Priority,Schedule,Autostart,Appmode,Activation,Stacksize,Resource,Event,Accessor,Accessname,Withoutcopy,Message,指针,OSEKBuilder,中名字为,TASK8,的,TASK,对象标志为,点击 或在,OIL Object,窗口右键添加,TASK,对象,双击属性关键字,在弹出的,Edit Value,窗口中输入该属性的参数值或属性值,OSEKBuilderTASK,ISR Definition,该类对象类型用关键字,ISR,来定义,对应同名的中断程序配置。,ISR,对象的语法结构如下所示,:,ISR ,CATEGORY=;,PRIORITY=0;,RESOURCE=;,ACCESSOR=,MESSAGE=;,ACCESSNAME=;,;,;,ISR,对象属性,CATEGORY,1,2,中断类型,RESOURCE,name,ACCESSOR,SENT/,RECEIVED,访问器,MESSAGE,name,ACCESSNAME,string,PRIORITY,0,ISR,UINT32 1,2 CATEGORY;,RESOURCE_TYPE RESOURCE;,MESSAGE_TYPE MESSAGE ;,;,ISR,对象默认属性标准,ISR name,CATEGORY,RESOURCE,ACCESSOR,MESSAGE,PRIORITY,ACCESSNAME,OSEKBuilder,中名字为,isr1,的,ISR,对象标志为,点击 或在,OIL Object,窗口右键添加,ISR,对象,双击属性关键字,在弹出的,Edit Value,窗口中输入该属性的参数值或属性值,OSEKBuilderISR,Resource Definition,该类对象类型用关键字,RESOURCE,来定义。天花板协议根据相关资源的任务优先级信息配置时自动被执行。,RESOURCE,对象的语法结构如下所示,:,RESOURCE ,RESOURCEPROPERTY=,LINKEDRESOURCE=,;,;,Resource,对象默认属性标准,RESEOURCE name,RESOURCEPROPERTY,LINKEDRESOURCE,RESOURCE sci_res,RESOURCEPROPERTY=STANDARD;,;,OSEKBuilder,中名字为,res1,的,RESOURCE,对象标志为,点击 或在,OIL Object,窗口右键添加,RESOURCE,对象,双击属性关键字,在弹出的,Edit Value,窗口中输入该属性的参数值或属性值,OSEKBuilder,Resource,Event Definition,该类对象类型用关键字,EVENT,来定义。事件对象没有参数。,事件对象的语法结构如下所示,:,EVENT ,MASK=;,;,Event,对象默认属性标准,EVENT name,MASK,EVENT delay_expire,MAS- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AutoOSEK 操作系统 PPT
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文