基于μCosII的OSEK_VDX实时操作系统任务管理实现.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:4 大小:272KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

基于μCosII的OSEK_VDX实时操作系统任务管理实现.pdf

基于μCosII的OSEK_VDX实时操作系统任务管理实现.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

万方数据藏Highest暖霹暮曩酉基于uI醚jOSEK/VDX实时操作系统任务管理实现Cowords:OSEK/、慨:uI93脚黜3艘麓sT_rpin附dexs摘要提出了一种满足OSEK/VDX操作系统规范的任务管理机制,通过修改u季力,张宏杰(z浙江机电职业技术学院电气系浙江杭州,31(2浙江大学信电系CosII的任务调度算法,在Freescale2系列芯片上成功进行了移植,实现了同优先级多任务的调度。关键词:0SEK;HI;多任务调度;实时操作系统中图分类号:TP31文献标识码:B文章编号:1oo卜9227(2010)0卜01OSEK/VDX简介OSEK,是德国的汽车电子类开放系统和对应接口标准electroniCS),是应用在模块和静态实时操作系统上的标准,由主要的汽车制造商和供应商,研究机构以及软件开发商发起而制定的行业标准。VX则是汽车分布式执行标准(vehicle初是由法国独自发起的,后来加入了0SEK团体。两者的名字都反映出OSEK/VDx的目的是为汽车电子制定标准化接口。OSEK/VDX规范提供了一系列服务和处理机制。操作系统作为并发程序的受控实时执行基础,并且提供应用程序在处理器上的开发环境。OSEK/VDX操作系统得结构区分了3种处理级:中断级、操作系统行为逻辑级和任务级。其中中断级别高于任务级,除了处理级别管理之外,操作系统还提供了任务管理、调度、事件管理(如用于任务问通讯的邮箱、消息队列等)、内存资源管理、报警和出错处理等诸多功能。在0SEK/VDX系统中,每个就绪态的进程被放入到其相应优先级的FIF0队列,不同优先级的FIF0队列构成‘个队列组,该就绪队列组就是调度的基础。调度器首先搜索该队列组,找出包含就绪进程的优先级最高的队列,然后找到该队列中等待时间最长的进程,最后完成上下文切uCosII的任务调度机理在uCoSII操作系统中以一一个OS—TCB{}结构来表示。个任务,存0STCB{)中定义了和任务相关的任务链表(以OSTCBNext矛HOSTCBPrev表示指向在任务链表当中的前一个任务和后一个任务),代表任务占用的堆栈的0Size、代表任务优先级的OSTCBPri0等。在uCosII操作系统中为了方便用位图的方式来实现,用一个OSTCBPr[]来管理多个任务的优先级别。这就是说在uSII中同一个优先级的任务只有‘个,而这个限制恰好不符合0S操作系统规范,该规范要求操作系统能够处理同1优先级的多个任务,并对同一优先级的任务按F度。所以对uI的任务管理数据结构加以修改是实现新的调度机制的核心。I的任务管理机制中,使任务进入就绪态的r=OSMapTbl[prio&Ox07]:0SRdyGrp中的每‘位表玎÷8组任务中每一组中是否有进入就绪态的任务。任务进入就绪态时,就绪表0SRdyTb[]中的相应元素的相应位也置位,如图4所示。的MC9MC9S12executive),最换。作者简介:季力(12一),男,四川夹江县人,硕士,讲师,主要研究方向为嵌入式系统,智能仪表。0原则进行调an刚d函数为|=OSMapTbl[prio>>3]:OSRdyTbl[prio>>3]03)027)S1COSAbstract:Thisarticleintroducesnewtaskmanagement,meetingthedemandofOSEK/VDXoperationsystem.ItrepotsCosl/OSFreescale’SCPUthroughchangingschedulemethod,whichmulti-taskwithpriority.KeyCod];multi-taskschedule;Realtime6.234—03(openandcorrespondinginterfacesforiveDdistributed2收稿日期:2134CBkioTbC0EKFSIl图lCoslI的就绪队列OSRdyGrp5tosystemsautomot9—09—19TT_n■mt■yalacansaine7tTbilOSLOWEsT—PRIO/8+li。nltouBitpositionPriorityTaskinOSRdy万方数据《自动化与仪器仪表》2010年第1期(总第147期)从就绪表中删除任务的函数是ntcb一>0STCBEqu=ptcb:/木把任务加到同优先级列以上代码将就绪任务表数组OSRdYTb“]中相应元素的相应位清零,而对于0SRdYGrp,只有当被删除任务所在任务组中全组任务一个都没有进入就绪态时,才将相应位清零。那么我们可以根据OSRdyGrp和OSRdyTbl[]求出当前最高优先级的任务,然后在切换时让最高优先级的任务进入运行状态。对pCosII任务调度规则的修改我们在原先uSII