




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式嵌入式 OSEK 配置器的设计与实现配置器的设计与实现 随着汽车工业的快速发展 汽车对控制 通信 网络管理等方面的要求越来越高 基 于 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 处理器 定义转换的输出方式为文本格式 转换 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 代码和头文件中 从而完成整个代码生成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025水泥采购合同
- 2025短期工劳动合同
- 2025安置房买卖合同
- 工商银行成都市青羊区2025秋招笔试英语完形填空题专练30题及答案
- 2025合同范本汽车买卖合同书样本
- 中国银行济宁市邹城市2025秋招英文面试20问及高分答案
- 中国银行沧州市青县2025秋招笔试管理营销专练及答案
- 2025年中国建设银行年度借款合同
- 中国银行惠州市惠城区2025秋招笔试英语阅读理解题专练30题及答案
- 邮储银行西宁市城北区2025秋招笔试英语阅读选词题专练30题及答案
- 《红星照耀中国》
- 国务院便民服务管理办法
- 《中国高血压防治指南(2024年修订版)》解读课件
- DIEP乳房重建术后的护理指南
- 艺术漆涂料施工合同协议
- 陈皮种植转让合同协议
- 预防青少年药物滥用-主题班会课件
- 2025年度建筑公司分公司市场拓展合作合同
- 《林氏木业供应链管理现状、问题及优化建议》14000字(论文)
- 八年级英语组工作总结
- 《船用格栅》规范
评论
0/150
提交评论