3.5.1 ORTI文件结构
ORTI文件包含版本信息部分、声明部分和信息部分。版本信息部分描述了KOIL和内核的版本。对于ORTI来讲,内核的版本是ORTI标准的版本号。声明部分声明ORTI实现中使用的内核类型,相当于C语言中的结构声明。它描述了访问内核对象所包含数据的方法。该部分详细说明了给定属性的显示名称。信息部分包含了所有给定系统声明部分所声明的方法,描述了计算或引用所需属性的方法。信息部分还提供了所需属性的静态值和表达式。
3.5.2 标准的ORTI对象及属性
OS对象,包含正在运行的任务、正在运行的优先级、正在运行的中断处理程序、操作系统服务、最近的错误、当前应用的模式等属性。
任务对象,包含优先级、状态、堆栈、活动状态、上下文等属性。
上下文对象,包含地址、大小等两个属性。
堆栈对象,包含大小、基地址、堆栈方向、填充模式等四个属性。
报警器对象,包含报警时间、周期、状态、动作、记数器等五个属性。
资源对象,包含状态、资源锁、优先级等三个属性。
消息容器对象,包含消息名称、类型、队列大小、队列记数器、当前消息地址等五个属性。
4 车控电子产品的开发流程
车控电子产品是软硬件结合的嵌入式系统。为了节约资源,缩短产品开发周期,一般应采取软硬件同步开发的方案,如图5所示。车控电子产品的开发工具对软硬件的同步开发、调试提供了很好的支持。车控电子产品的软件开发分为功能描述、软件设计、代码生成、操作系统环境下高级调试等步骤。车控电子产品的硬件开发分为硬件描述、硬件设计、硬件调试等步骤。当软件设计完成后,通过使用相应的工具,完成在虚拟ECU平台上的验证。当硬件设计完成后,与硬件一起进行软硬件集成调试。通过这种开发方式,缩短了产品上市的时间。
图5 软硬件并行的开发方案
目前,汽车车控电子产品软件开发流程是“V”形开发流程,如图6所示。“V”形开发流程分为五个阶段,即功能设计、原型仿真、代码生成、硬件在回路仿真——HIL、标定。
图6 车控电子产品软件开发流程
在功能设计阶段使用的主要工具是MATLAB。通过使用MATLAB提供的Simulink、Stateflow等工具,完成控制方案的设计、功能模块的设计、控制算法的设计等任务,并进行初步的仿真模拟工作。在原型仿真阶段使用的主要工具是DSPACE。使用dSPACE提供的快速控制原型 ——RCP工具完成离线的仿真工作。在开始该阶段之前,需要使用Real Time Workshop、Targetlink等工具完成由Simulink、Stateflow等产生的代码向标准 C代码的转换工作。在进行向标准 C代码的转换过程中,可以根据需要加入符合OSEK规范的嵌入式实时操作系统。在代码生产阶段使用的主要工具是CodeWarrior。通过使用 CodeWarrior提供的编译器、调试器等工具,完成从标准C代码向目标硬件平台上的产品代码的转换工作。图7表示了车控电子产品的代码生成过程。
图7 车控电子产品代码生成过程
结语
我国自主发展汽车车控产品尚处于起步阶段。本文简要介绍了车控产品的系统平台——OSEK/VDX规范,并给出了一个基于OSEK/VDX规范的简单的车控电子开发模型。在这个模型中,要求开发者熟练使用国际上主流的开发工具,以提高开发效率,缩短开发时间。