总想小便是什么原因| 肝火旺盛吃什么食物好| 儿童中暑吃什么药| 蒲公英的花是什么颜色| 化疗是什么样的过程| 内推是什么意思| 刺猬的刺有什么作用| 阿胶适合什么人吃| 前列腺炎是什么意思| 什么梳子梳头最好| 今天突然拉稀拉出血什么原因| 什么是格局| 人几读什么| 为什么会一直拉肚子| 改名字需要什么手续| babies是什么意思| 脑白质脱髓鞘改变是什么意思| 凉拌菜用什么醋最好| 脘腹胀满是什么意思| 减肥晚上可以吃什么| 今年高温什么时候结束| 双侧胸膜增厚是什么意思| 九九年属什么| 胆结石能吃什么水果| 618是什么节日| 百福骈臻是什么意思| 什么的手| 卡拉胶是什么| 大便不正常是什么原因造成的| 荷花五行属什么| 护肝养肝吃什么药| 属蛇的是什么命| 早上尿黄是什么原因| 常喝枸杞泡水有什么好处| 大腿内侧疼痛什么原因| 月经不调有什么症状| 男士175是什么码| 冷暖自知是什么意思| 橘子什么季节成熟| 生孩子大出血是什么原因造成的| 马甲线是什么| pcl是什么材料| 胃炎不能吃什么| 陈旧性心梗是什么意思| 平台期是什么意思| 肠道长息肉是什么原因造成的| 舌尖发麻是什么问题| junior什么意思| 人得猫癣用什么药| 自变量是什么| 负荆请罪是什么意思| 对数是什么| 什么是陈皮| 总是困是什么原因| 奶油是什么做的| 吃金针菇有什么好处| 唐僧成了什么佛| pku是什么意思| 两点水的字和什么有关| 梦见死了人是什么征兆| 风声鹤唳的意思是什么| 蛇蛋长什么样子| 早上尿黄是什么原因| 肝胃郁热吃什么中成药| 黄皮是什么| 拔智齿后要注意什么| 滞留针是什么| 什么是气溶胶| 提溜是什么意思| 7号来的月经什么时候是排卵期| 锻炼pc肌有什么好处| 上日下文念什么| 什么防晒霜防晒效果好| 十二生肖分别是什么| 什么是理疗| 十岁小孩尿床是什么原因| 甲炎是什么病| 梦见别人装修房子是什么预兆| 梦见战争是什么兆头| 畏寒肢冷是什么意思| 芒果像什么比喻句| 感恩节吃什么| 家里为什么有蜈蚣| 胃湿热吃什么中成药| 葡萄打什么药| 怕金病帕金森是什么症状| 璋字五行属什么| 6月10日什么星座| 7月28日是什么星座| 肩袖损伤吃什么药效果最好| 二大爷是什么意思| 痛什么什么痛| 经期适合喝什么茶| 捉虫是什么意思| 为什么会得肠胃炎| 女生什么时候容易怀孕| 翻什么覆什么| 夕阳无限好只是近黄昏是什么意思| 黄芪泡水有什么好处| 寿终正寝是什么意思| 补充b族维生素有什么好处| 敏五行属什么| 方脸适合什么发型| 男性阴囊瘙痒用什么药膏| 百思不得其解是什么意思| 你太low了是什么意思| 牙龈肿痛吃什么消炎药| 心律不齐吃什么药好| 凌五行属性是什么| 大便发黑是什么原因| 大将军衔相当于什么官| 什么的舞蹈| 佛历是什么意思| 肛门瘙痒用什么药膏| 北面是什么档次的牌子| 什么是鼻窦炎| 亚麻籽油是什么植物的籽榨出来的| 真空是什么意思| 复方对乙酰氨基酚片是什么药| ABB式的词语有什么| 龙涎香是什么东西| 精力旺盛是什么意思| 梦见卖衣服是什么意思| 楚国什么时候灭亡的| ce是什么元素| 男人少一个睾丸有什么影响| 毛很长的狗是什么品种| 什么是善| 宫颈炎是什么原因引起的| 克汀病是什么病| 什么是有限公司| 痤疮是什么| 肺部条索影是什么意思| 利郎男装是什么档次的| 吃什么食物补钙最快| 什么胆什么心| 膘是什么意思| 白细胞减少吃什么药| 婴儿为什么喜欢趴着睡| 琼脂是什么东西| 喉炎吃什么药好得快| 生酮是什么意思| 第一次见家长送什么礼物好| 手心发烫是什么原因| 什么子孙| 脖子下面的骨头叫什么| 皮肤发痒用什么药| crayon什么意思| 棚户区改造和拆迁有什么区别| 甜醋是什么醋| 腰间盘突出有什么症状| 什么是生化妊娠| 孩子打喷嚏流鼻涕吃什么药| ts是什么品牌| hospital是什么意思| 心心相印是什么生肖| 什么的街道| 吕布的马叫什么| 上尉军衔是什么级别| 刘邦和项羽是什么关系| 茶叶含有什么成分| 看见乌鸦有什么预兆| infp是什么意思| 咳黄痰吃什么药好得快| 小孩肠胃感冒吃什么药| 4pcs是什么意思| 得过且过什么意思| 冷宫是什么意思| 抗原体阳性是什么意思| 耳朵有回音是什么原因| 蓝色配什么色好看| 为什么腋下老是出汗| 不全纵隔子宫是什么意思| 俄罗斯什么东西值得买| 肝有问题会出现什么症状| 看见蛇有什么预兆| 王大治与董洁什么关系| 李思思为什么离开央视| 梦见拔牙是什么预兆| 词讼是什么意思| 无菌性前列腺炎吃什么药效果好| 缺陷的陷是什么意思| 花胶和什么煲汤最适合| 心无什么用| 先天性一个肾对人有什么影响| 手指甲上有白点是什么原因| 挫伤是什么意思| 胃穿孔有什么症状| 治飞蚊症用什么眼药水| 泌尿感染是什么原因引起的| 庚是什么意思| 明胶是什么做的| 怀孕后吃避孕药有什么后果| 天天喝牛奶有什么好处| 什么是尿失禁| 月子里能吃什么水果| 血稠是什么原因引起的| 斤加一笔是什么字| 东华帝君的真身是什么| 绘本是什么意思| 牛肉炖什么菜好吃| 紫荆花什么时候开| 膝盖痛什么原因| 鲁米那又叫什么| 75年的兔是什么命| 脾胃虚吃什么好| 中元节是什么节日| 欧金金什么意思| 仙鹤代表什么生肖| 总胆汁酸高是什么原因| 头部紧绷感是什么原因| 肩周炎贴什么膏药效果最好| uma是什么意思| 脖子红是什么原因| 心电图窦性心动过速是什么意思| 狡黠什么意思| 善太息是什么意思| 水洗真丝是什么面料| 蚊子讨厌什么气味| 什么什么不什么| 哀转久绝的绝什么意思| 阳痿是什么原因引起的| 正法是什么意思| 贫血吃什么| 四级军士长是什么级别| 贫血会出现什么症状| 手突然抖动是什么原因| 折叠胆囊是什么意思| 渡劫什么意思| 什么是疣图片| 病毒性疣是什么病| 血型o型rh阳性是什么意思| 身上有红色的小红点是什么原因| 水手是什么意思| 眼睛发黄是什么原因引起的| 决明子有什么作用| 什么水不能喝| 焦虑症是什么原因引起的| 补液盐是什么| 浛是什么意思| 肚子咕咕叫放屁多是什么原因| 保肝护肝吃什么药好| 痛风发作吃什么药| 甲子年是什么意思| 大三阳吃什么药好| 环切手术是什么| 健脾丸和归脾丸有什么区别| 血糖高适合吃什么蔬菜| 做鸡蛋饼用什么面粉好| 男性尿路感染有什么症状| 包是什么结构| 条索影是什么意思| 花木兰代表什么生肖| 指腹脱皮是什么原因| 对偶句是什么意思| 甘地是什么种姓| 割痔疮后吃什么恢复快| 梦见生了个孩子是什么意思| 送同学什么毕业礼物好| 召力念什么| 巾失念什么| latex是什么| 白带多是为什么| cold是什么意思| 百度
关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 汽车电子OSEK配置器的设计与实现

台军募兵困难原因:军人地位待遇不如清洁队员

作者: 时间:2025-08-04 来源:网络 收藏
摘要 介绍在集成开发环境中,通过OIL语言配置实时操作系统厦应用程序的过程,包括使用图形化的用户界面进行读取、编辑、保存OIL文件以及自动生成代码等功能的实现;利用XML技术和OIL语言解析器保证了OIL文件的可移植性、可扩展性和可重用性。
关键词 /VDX规范 OIL XML 图形用户接口(GUI) 解析器 百度 这些技术创新产品,大多都是该所青年党员主动担当苦干创新的成果。


随着汽车工业的快速发展,汽车对控制、通信、网络管理等方面的要求越来越高,基于32位微控制器的硬件平台、基于嵌入式实时操作系统的软件平台和基于CAN总线的网络通信平台逐渐成为当今业的主流。

1 /VDX规范简介
在嵌入式实时操作系统方面,为了满足日益庞大、复杂的控制软件的开发需要,实现应用软件的可移植性和不同厂商控制模块间的可兼容性,1993年德国汽车工业界联合推出了汽车电子的开放式系统及接口――OS-EK/VDX规范(以下简称“OSFK规范”),旨在为汽车上的分布控制单元提供一个开放结构的工业标准。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实时操作系统中具有重要的意义。



关键词: OSEK 汽车电子

评论


相关推荐

技术专区

关闭
围子是什么动物 女人戴什么招财又旺夫 更年期什么时候开始 老虎的祖先是什么动物 neo什么意思
离苦得乐什么意思 一月7日是什么星座 p2是什么意思 今年农历是什么年 冬天有什么水果
性激素是查什么 氨水是什么 甲沟炎看什么科室 女孩第一次来月经需要注意什么 止血芳酸又叫什么
74年属什么 兰桂坊是什么地方 扎心是什么意思 活好的女人有什么表现 肾囊肿有什么症状表现
冰箱什么品牌最好hcv9jop4ns9r.cn 一什么桌子hcv9jop0ns2r.cn 辣椒有什么营养价值travellingsim.com 非萎缩性胃窦炎是什么意思adwl56.com 孔雀的尾巴像什么hcv9jop5ns4r.cn
抑郁症是什么意思tiangongnft.com 一月来两次月经是什么原因hcv9jop2ns7r.cn 一见如什么hcv7jop6ns2r.cn 射不出来是什么原因hcv8jop5ns8r.cn 膝关节积液吃什么药hcv8jop4ns8r.cn
柠檬泡水喝有什么功效hcv8jop8ns4r.cn 体贴是什么意思youbangsi.com 玉兰花什么时候开hcv7jop9ns9r.cn 海明威为什么自杀hcv8jop2ns0r.cn 2月2号什么星座hcv8jop9ns9r.cn
角是什么结构hcv9jop1ns8r.cn 遗传物质的载体是什么weuuu.com 准者是什么牌子hcv9jop5ns2r.cn fw什么意思hcv9jop2ns0r.cn 9岁属什么生肖hcv8jop5ns5r.cn
百度