嵌入式OSEK配置器的设计与实现
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语言解析器。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码