一种autosar软件组件的内部行为对象代码生成方法
【专利摘要】本发明公开了一种AUTOSAR软件组件的内部行为对象代码生成方法,包括:根据需求确定需要的参数,并设计配置界面;利用基于模板的代码生成技术设计代码模板;根据相应的配置参数生成内部行为对象代码,并将这些参数进行持久化保存。本发明内部行为对象代码生成方法与现有的基于Matlab/Simulink组件的代码生成方法相比,具有以下优点:软件不需要依赖于Matlab/Simulink组件,减少了用户学习使用成本;内部行为对象参数配置工具可以定制,能满足不同用户的需求;用户可以将原有的代码与生成代码连接起来使用,增强了代码的复用性。
【专利说明】
一种AUTOSAR软件组件的内部行为对象代码生成方法
技术领域
[0001] 本发明属于汽车电子软件开发技术领域,具体涉及一种AUTOSAR软件组件的内部 行为对象代码生成方法。
【背景技术】
[0002] AUTOSAR(AUTomotive Open System ARchitecture)是一个汽车电子软件标准,该 标准定义一套汽车电子软件的开发方法,利用该方法开发的汽车电子软件具有良好的可移 植性,可应用于不同的汽车平台。使用AUTOSAR开发包括软件组件建模、系统配置、ECU抽取、 ECU配置、代码生成等过程。软件组件建模的作用是提供系统架构的功能,让用户快速搭建 一个汽车电子系统的软件原型,包括对软件组件、端口、接口、数据类型、内部行为、实现的 建模,这些元素组成了一个完整汽车电子软件系统的抽象。MATLAB是一种应用广泛的系统 设计工具,在汽车电子领域中MATLAB/Simulink工具可以用来设计单个原子软件组件的内 部逻辑算法,并生成实现代码,汽车电子领域很多遗留的系统都采取MATLAB/Simul ink进行 设计的。
[0003] 方法论规定软件系统开发设计过程分为系统配置阶段和ECU配置两阶段,其中系 统配置阶段的目的是将软件系统的具体需求利用AUTOSAR的基本组件进行建模,并最终将 这些需求映射到具体的ECU(Electronic Control Unit)上。在系统配置阶段对软件系统建 模时,首先需要利用AUTOSAR提供的软件组件将系统描述出来,然后利用内部系统建模工 具,实现每个软件组件的功能。
[0004] 目前很多基于AUTOSAR标准实现的汽车电子开发集成开发环境利用Matlab/ Simulink组件进行软件组件内部行为(Internal Behavior)建模,即这些工具需要依赖于 Mat lab/Simul ink工具。因为Matlab软件功能复杂、版本众多,便给这些集成开发环境的使 用带来诸多不便。
【发明内容】
[0005] 为了解除集成开发环境工具对Matlab/Simulink的依赖,本发明提供了一种 AUTOSAR软件组件的内部行为对象代码生成方法,利用该方法可以在集成开发环境内部实 现软件组件的内部建模。
[0006] -种AUTOSAR软件组件的内部行为对象代码生成方法,包括如下步骤:
[0007] (1)根据软件组件的功能需求,确定生成内部行为对象代码所需的参数,进而设计 实现内部行为的配置界面;
[0008] (2)设计并手动编写内部行为组件的代码模板,从而将内部行为对象代码模板化;
[0009] (3)从所述的配置界面中读取内部行为的对象名称及相关参数,依据所述的代码 模板生成对应的XML配置文件,并进行持久化操作,以便软件工具重新启动后能够再次获取 这些配置参数;
[0010] (4)根据代码模板所使用到的内部行为导入对应函数实体,即在链接库文件界面 中选中所需导入的函数库或已有的.C或.h源文件,以便后续代码成功编译;
[0011] (5)根据所述的XML配置文件使代码模板与配置界面中的对象名称及相关参数建 立映射关系,选中对应的软件组件或软件组件所在的工程并进行代码生成,最终在所在工 程的对应目录下生成与所述代码模板文件名所对应的.c或.h源代码文件。
[0012] 所述的步骤(1)中内部行为对象的名称及内部行为对象所需的参数名称满足 AITT0SAR标准的要求。
[0013]所述代码模板的文件后缀名为.vm。
[0014] 所述的代码模板调用RTE (Run-Time Envir〇nment)标准中规定的函数接口读写参 数。
[0015] 所述的RTE是AUT0SAR系统中ECU架构的核心,其实现了通信接口,提供组件间的通 信服务,因此组件间的所有通信均在RTE控制下完成。
[0016] 所述的代码模板只提供AUT0SAR软件组件端口参数的读取和写入操作,未对端口 参数进行其他复杂的操作。
[0017] 若要对端口参数进行其他复杂的处理,则可自行修改内部行为对象生成后的代 码,或通过链接库文件界面从静态链接库中将逻辑处理代码链接到最终生成的代码中。
[0018] 所述的步骤(3)中利用Velocity技术从配置界面中读取内部行为的对象名称及相 关参数。
[0019] 本发明利用基于模板的代码生成技术,设计内部行为对象代码生成模板,然后结 合用户配置的内部行为对象的参数,最终自动生成内部行为对象的代码。与现有技术相比, 本发明具有以下优点:(1)AUT0SAR开发环境不必依赖于Matlab/Simulink工具来生成内部 行为对象的代码;(2)本发明方法生成内部行为对象的代码时,其配置参数是可定制的;(3) 用户可使用原有的逻辑代码,不必完全重新设计内部行为对象的逻辑功能代码。
【附图说明】
[0020] 图1为本发明内部行为对象代码生成方法的流程示意图。
[0021] 图2为本发明具体实施例中内部行为对象需要配置参数的示意图。
【具体实施方式】
[0022] 为了更为具体地描述本发明,下面结合附图及【具体实施方式】对本发明的技术方案 进行详细说明。
[0023] 为解决对Matlab/Simul ink工具的依赖,如图1所示,本发明提出了一种AUT0SAR软 件组件的内部行为对象代码生成方法,具体步骤如下:
[0024] (1)根据软件组件的功能需求,确定生成内部行为对象代码需要的参数,进而设计 实现内部行为配置界面;其中内部行为对象名称和所需参数名称满足AUT0SAR标准的要求。
[0025] (2)设计并手动编写后缀名为.vm的内部行为组件的代码模板文件,将内部行为对 象代码模板化。其中,代码模板需要调用AUT0SAR的RTE标准中规定的函数接口读写参数;代 码模板只提供AUT0SAR软件组件Port参数的读取和写入操作,未对参数进行其他复杂的操 作。如果想要对这些参数进行更复杂的处理,本发明支持自行修改内部行为对象生成后的 代码,或通过Link Runnable File界面从静态链接库中将逻辑处理代码链接到最终的代码 中。
[0026] (3)利用Velocity技术从配置界面中读取内部行为的名称和相关参数,依据S20中 的模板文件生成对应的XML配置文件,进行持久化操作,以便软件工具重新启动,能够再次 加载这些配置参数。
[0027] (4)根据步骤(2)中生成的对象代码中所使用到的内部行为至此只是一个函数对 象声明,导入函数实体,需在Link Runnable File配置界面中,选中所需要导入的函数库或 已有的.c和.h源文件,以便在后续代码的编译成功。
[0028] (5)以上各步骤完成后,需选中对应的软件组件或者软件组件所在的工程,进行代 码生成,最终在工程的对应目录下生成模板文件名所对应的.c和.h源代码文件。
[0029] 以下实施例,基于浙江大学ESE工程中心研发的SmartSAR Studio汽车电子集成开 发环境,完成内部行为对象代码生成工具的设计与实现。SmartSAR Studio由四个工具组 成,即软件架构设计工具、系统配置工具、E⑶配置工具、RTE生成工具。在软件架构设计工具 中需要完成内部行为对象代码的生成,因此本实施案例主要在软件架构设计工具的基础 上,实施内部行为对象代码生成方法,其具体的实施过程如下:
[0030] S1:确定内部行为对象需要的配置的参数。本实施案例中,需要配置的参数有: Runnable Entity对象、RteEvent对象、内部行为对象引用的Component信息,根据软件组件 的功能需求,确定生成内部行为对象代码需要的参数,在内部行为配置界面进行配置,如图 2所示;其中内部行为对象名称和所需参数名称满足AUT0SAR标准的要求。
[0031] S2:根据需求制作内部行为对象代码生成模板文件。本实施案例中,手动撰写并制 定了六个代码模板文件,并使用Velocity技术解析;设计的代码模板见表1。本实施方式在 设计Velocity代码模板时,只是简单的获取每个软件组件(Component)的端口(Port)信息, 并进行简单的从界面读入,并写出到生成的.c和.h源代码文件。
[0032] 表 1
[0035] S3 :本实施案例中,提供S20代码模板中的参数包括:Runnable Enti ty的名称、 Runnable Entity的个数、PPort的名称及个数、RPort的名称及个数、端口发送的数据类型 等。
[0036] 在完成上述步骤之后,只需要在软件组件视图中触发内部行为对象配置,在完成 参数配置后,保存并触发代码生成操作,即可完成内部行为对象的代码生成。
[0037] 上述的对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发 明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的 一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例, 本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护 范围之内。
【主权项】
1. 一种AUTOSAR软件组件的内部行为对象代码生成方法,包括如下步骤: (1) 根据软件组件的功能需求,确定生成内部行为对象代码所需的参数,进而设计实现 内部行为的配置界面; (2) 设计并手动编写内部行为组件的代码模板,从而将内部行为对象代码模板化; (3) 从所述的配置界面中读取内部行为的对象名称及相关参数,依据所述的代码模板 生成对应的XML配置文件,并进行持久化操作,以便软件工具重新启动后能够再次获取这些 配置参数; (4) 根据代码模板所使用到的内部行为导入对应函数实体,即在链接库文件界面中选 中所需导入的函数库或已有的.c或.h源文件,以便后续代码成功编译; (5) 根据所述的XML配置文件使代码模板与配置界面中的对象名称及相关参数建立映 射关系,选中对应的软件组件或软件组件所在的工程并进行代码生成,最终在所在工程的 对应目录下生成与所述代码模板文件名所对应的.c或.h源代码文件。2. 根据权利要求1所述的内部行为对象代码生成方法,其特征在于:所述的步骤(1)中 内部行为对象的名称及内部行为对象所需的参数名称满足AUTOSAR标准的要求。3. 根据权利要求1所述的内部行为对象代码生成方法,其特征在于:所述代码模板的文 件后缀名为·νπι〇4. 根据权利要求1所述的内部行为对象代码生成方法,其特征在于:所述的代码模板调 用RTE标准中规定的函数接口读写参数;所述的RTE是AUTOSAR系统中ECU架构的核心,其实 现了通信接口,提供组件间的通信服务,因此组件间的所有通信均在RTE控制下完成。5. 根据权利要求1所述的内部行为对象代码生成方法,其特征在于:所述的代码模板只 提供AUTOSAR软件组件端口参数的读取和写入操作,未对端口参数进行其他复杂的操作。6. 根据权利要求5所述的内部行为对象代码生成方法,其特征在于:若要对端口参数进 行其他复杂的处理,则可自行修改内部行为对象生成后的代码,或通过链接库文件界面从 静态链接库中将逻辑处理代码链接到最终生成的代码中。7. 根据权利要求1所述的内部行为对象代码生成方法,其特征在于:所述的步骤(3)中 利用Velocity技术从配置界面中读取内部行为的对象名称及相关参数。
【文档编号】G06F9/44GK105912334SQ201610221094
【公开日】2016年8月31日
【申请日】2016年4月8日
【发明人】李红, 杨国青, 段岳姣, 刘继周, 陈坤, 吴朝晖
【申请人】浙江大学