您的位置 首页 开关

嵌入式开发轿车电子OSEK装备器的规划与完成

介绍在集成开发环境中,通过OIL语言配置OSEK实时操作系统厦应用程序的过程,包括使用图形化的用户界面进行读取、编辑、保存OIL文件以及自动生成代码等功能的实现;利用XML技术和OIL语言解析器保证了

跟着轿车工业的快速开展,轿车对操控、通讯、网络办理等方面的要求越来越高,依据32位微操控器的硬件渠道、依据嵌入式实时操作体系的软件渠道和依据CAN总线的网络通讯渠道逐步成为当今轿车电子业的干流。

1 OSEK/VDX标准简介

在嵌入式实时操作体系方面,为了满意日益巨大、杂乱的轿车电子操控软件的开发需求,完结运用软件的可移植性和不同厂商操控模块间的可兼容性,1993年德国轿车工业界联合推出了轿车电子的敞开式体系及接口——OSEK/VDX标准(以下简称“OSEK标准”),旨在为轿车上的散布操控单元供给一个敞开结构的工业标准。OSEK标准从实时操作体系(RTOS)、软件接口、通讯和网络办理等方面对轿车电子操控软件开发渠道作了较为全面的界说与规矩。虽然该标准还处在不断完善中,但它所提出的一整套解决方案将是未来轿车电子软件开发的开展方向。

为了到达OSEK软件可移植的方针,OSEK标准中界说了装备运用OSEK运用程序的办法——通用完结言语OIL。OSEK装备器便是运用图形化的用户接口,依据用户需求装备OIL文件,并终究生成OSEK实时操作体系初始化代码的东西。它是开发契合OSEK标准的实时操作体系的重要组成部分。

2 OSEK装备器的首要功用

OSEK运用程序的开发流程如图1所示。用户经过OSEK装备器依据软硬件的需求,对操作体系的特点和一切体系方针进行静态装备。装备完结后,OSEK装备器生成契合OSEK标准的OIL装备文件,并进一步生成与操作体系相关的C代码和头文件,以供给OSEK实时操作体系初始化时必备的体系参数。为确保软件的兼容性,OSEK装备器还能够从外部直接读取契合OSEK标准的OIL文件,完结生成OS静态体系文件的进程。

用户完结运用程序代码编写和OIL文件装备后,OSEK装备器所发生的代码、操作体系的部分内核和运用程序一同穿插编译,而其他操作体系内核代码作为一个库,被链接器整合在一同。本文首要研讨经过OSEK装备器生成契合OSEK标准的OIL装备文件及静态体系文件的进程(如图1中虚线部分所示)。

3 OSEK装备器的完结

3.1 图形用户接口GUI的完结

OSEK运用程序的OIL言语描绘包括一组OIL方针描绘,分别是CPU、OS(操作体系)、APPMODE(运用程序方式)、ISR(中止服务)、RESOURCE(资源)、TASK(使命)、COUNTER(计数器)、EVENT(事情)、ALarm(警报)、COM(通讯子体系)、MESSAGE(音讯)、IPDU(外部通讯)和NM(网络办理)。其间,CPU是其他OIL方针的容器。OIL为它的方针界说了标准类型,每一个方针都能够用一些特点和参数来描绘。

关于不同的OSEK完结,生成OIL装备文件的办法是不同的。因为用户自己编写OIL文件具有必定的杂乱性,因而,在集成开发环境中带有一个上下文相关协助的、可视的图形用户接口GUI是十分必要的。在集成开发环境中,一个包括GUI的OSEK装备器需求包括以下组件:

◇一张遵从Windows Explorer格局的OSEK方针清单,用户能够依据需求增加和删去DIL方针;

◇一个图表,用于显现每个方针的特点(包括标准特点和与完结有关的特点),用户可更改方针的特点而且实时更新OIL文件;

◇一个用于记载和显现的窗口。

集成开发环境的OSEK装备器作业界面如图2所示,其数据的办理和显现选用XML技能来完结。

XML以一种敞开的自我描绘方法界说了数据结构,在描绘数据内容的一起能杰出对结构的描绘,然后体现出数据之间的联系。它相当于一个容器,可用来存储OSEK标准中OIL界说的各个方针。对每个OIL方针来说,其特点和子特点都包括不同的数据结构,能够经过XML树型结构便利地表明出来;而关于同一类方针又包括相同的特点和子特点,可用相同的XML模板来表明。

因为XML技能能够很便利地存储、描绘和办理结构化的数据,而且有效地将数据和数据的显现相别离,因而,在OSEK装备器中选用XML技能来完结OIL文件图形用户接口的装备,是十分便利和高效的。

3.2 运用XML技能装备OIL方针

依据XML的OSEK装备器,将OIL文件界说的特点存放在初始化的XML模板文件中,并指定其默认值。当用户增加、删去OIL方针或许修正方针的特点和参数时,可经过KML解析器完结用户装备界面与XML文件的同步。其进程如图3中虚线部分所示。

例如,用户在装备一个OIL方针ALarm时,需求指定其3个特点,分别是警报依靠计时器COUNTER、警报动作ACTION以及是否主动发动AU-TOSTART。其间,ACTION和AU-TOSTART又包括各自的子特点,运用XML技能能够很便利地办理和修正这些数据。

经过GUI装备一个报警器的特点如下:警报依靠计时器counterA,选用主动发动方法,且其初度呼应时刻和周期呼应时刻分别为30ms和20 ms。OS-EK装备器经过XML解析器将这些特点值读取出来,并保存在XML源文件alarm.xml中。以下是此XML文件的源代码;

3.3 运用XSLT技能生成OIL文件

用户装备的OIL信息经过GUI保存为XML文件后,运用XSLT技能生成契合OSEK标准的OIL装备文件。XSLT文档自身是一个良掏的XML文档,它被链接到需求转化的XML文档上,经过XSLT处理器完结对XML文档的解析和转化进程。XSLT转化的进程如图4中虚线部分所示。

例如3.2节中保存ALARM装备信息的文件alarm.xml,经过界说XSL样式表文件xml20il.xsl将其转化为标准的OIL文件。为了确保XSL文件的通用性,对输入XML文档每个层次的节点都规划一个结构模板tem-plate,即为OIL方针的每个特点和部分子特点界说结构模板。这样,当OIL方针增加和删去时,XSL文件都能够快速地完结转化而不需求做任何修正。运用Microsoftmsxml 4.o作为:XSLT处理器,xsl:output method=”text”indent=”no”/>界说转化的输出方法为文本格局。

转化3.2节中。KML文件的部分要害源代码如下:

3.4 读取OIL装备文件和生成代码

为了完结OIL文件的可移植性和可重用性,OSEK装备器还需求完结从外部直接读取OIL文件(可由用户手动编写或其他OSEK完结生成),并经过GUI显现和修正特点装备的功用。这个进程需求一个OIL言语解析器,经过解析器将OIL文件转化成XML文件供给给GUI,而且生成与操作体系相关的C代码和头文件。本组件经过LEX和YACC言语开发OIL言语解析器。

3.4.1 运用ALEX和AYAGO结构解析器

Parser Generator是Windows环境下运用LEX和YACC言语开发编译器的集成开发东西,包括了编译程序结构东西ALEX和AYACC。ALEX和AYACC不只可将LEX和YACC源程序转化成C言语词法和语法剖析程序,还能够依据用户需求发生C++和Java代码的词法和语法剖析程序。

OIL言语解析器的解析进程包括词法剖析、语法剖析、过错处理和方针代码的生成。首要依据OIL文件标准中的方针和特点值、语法规矩编写LEX和YACC源文件,经过ALEX和AYACC主动生成以C++言语为代码的词法剖析类OilLexer和语法剖析类OilParser,而且重载和增加一砦类成员函数;然后将这两个类加入到VC工程中,完结程序的过错处理和主动代码生成部分,然后开宣布OIL言语解析器。整个解析器规划原理如图5所示。

3.4.2 词法剖析类和语法剖析类的规划

在词法剖析阶段,扫描程序将OIL文件中的字符序列分化,去掉空格、换行等自字符,并把辨认出来的各个单词符号收集到记号(token)单元中。若在剖析进程中发现词法过错,则转入过错处理程序。ALEX的输入规矩文档Lexer.l包括以下3部分:

声明部分。包括所需的头文件及词法剖析类的界说。
◆规矩部分。界说正则表达式和OIL方针的要害字,然后增加对相应方式处理的C++言语源代码,最终将token送给语法剖析类OiiParser。例如:

◆程序部分。规划OIL扫描器时无需其他额定功用,因而为空。

在语法剖析阶段,语法剖析程序从词法剖析类中获取记号方式的源代码,并完结界说OIL言语结构的语法剖析。AYACC输入标准文档Parser.y也包括3部分:声明部分、规矩部分和程序部分。在声明部分,包括OilParser类所需的头文件以及声明从词法剖析器回来的token记号。规矩部分剖析OIL文件的语法规矩。OIL文件的语法遵从Backus-Naur范式(BNF),关于每个OIL方针特点的界说,其OIL完结类似于一个C结构界说。一个OIL文件由3个模块组成:版别、履行界说和运用程序界说。用BNF范式可表明为:

履行界说包括了一个OSEK完结的一切特点,这些特点的数据类型和取值规模可能是受限制的。因而在语义规矩部分设置过错处理句子,对OIL方针特点的数据类型和取值规模进行检查。ALEX和AYACC的特性,可使过错检测简略、直观地完结,而且很简单和过错处理类集成,这关于从外部读取OIL文件时进行语义判别,确保OSEK装备器的兼容性有着重要的含义。

运用程序界说包括了一系列方针以及这些方针特点的赋值,除了OS、COM和NM方针外,运用程序能够界说多个同一类型的方针。依据运用程序界说规矩,完结方式文法规矩以及对每条规矩进行语义处理的C++句子。在处理句子中,依据GUI部分界说的XMI.模板格局(如图4中的MPC.xml),将得到的方针及其特点值一一对应到XML的树型结构中,然后完结OIL文件转化为XML文件的进程。相同,在处理句子中,依据操作体系中界说的接口将OIL方针及其特点值提取出来,生成契合OSEK实时操作体系的API函数和数据结构,放在C代码和头文件中,然后完结整个代码生成的进程。

4 定论

OSEK装备器的开发是OSEK实时操作体系中的重要组成部分。在开发进程中,运用XML技能便利办理和存储数据的功用,完结了从可视化的GUI生成OIL文件的进程;运用OIL言语解析器的高教性和强壮的犯错处理功用,完结了GUI从外部读取OIL文件及代码生成的进程,然后确保了OIL文件的可移植性、可扩展性和可重用性。此组件在集成开发环境中运转安稳,这在开发具有自主知识产权的OSEK实时操作体系中具有重要的含义。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/kaiguan/192088.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部