CN107885500B - 一种面向autosar软件架构的运行时环境生成方法 - Google Patents

一种面向autosar软件架构的运行时环境生成方法 Download PDF

Info

Publication number
CN107885500B
CN107885500B CN201711043788.4A CN201711043788A CN107885500B CN 107885500 B CN107885500 B CN 107885500B CN 201711043788 A CN201711043788 A CN 201711043788A CN 107885500 B CN107885500 B CN 107885500B
Authority
CN
China
Prior art keywords
calibration
parameter
data
program
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711043788.4A
Other languages
English (en)
Other versions
CN107885500A (zh
Inventor
林少青
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huizhou Blueway New Energy Technology Co Ltd
Original Assignee
Huizhou Blueway New Energy Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huizhou Blueway New Energy Technology Co Ltd filed Critical Huizhou Blueway New Energy Technology Co Ltd
Priority to CN201711043788.4A priority Critical patent/CN107885500B/zh
Publication of CN107885500A publication Critical patent/CN107885500A/zh
Application granted granted Critical
Publication of CN107885500B publication Critical patent/CN107885500B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Abstract

本发明涉及AUTOSAR技术领域,尤其公开了一种面向AUTOSAR软件架构的运行时环境生成方法,包括步骤:为每一个相互关联的程序模块建立统一的数据表格字典,根据所述程序模块在所述数据表格字典中分配输入输出变量以及对应于每个所述程序模块的标定量;建立一个程序文件、一个总头文件和与所述程序模块一一对应的子头文件;根据所有的所述数据表格字典在所述程序文件、所述总头文件和所述子头文件中做数据定义、数据声明和数据初始化;编译经过所述步骤S3的所述程序文件,所述程序文件读取所述数据表格字典,生成RTE模块代码。本发明使用非商业工具一键生成RTE模块代码,不需要专业人员操作与配置,保证了所述RTE模块代码与所述程序模块的一致性,开发效率高。

Description

一种面向AUTOSAR软件架构的运行时环境生成方法
技术领域
本发明涉及AUTOSAR技术领域,尤其涉及一种面向AUTOSAR软件架构的运行时环境生成方法。
背景技术
AUTOSAR(Automotive Open System Architecture,汽车开放系统架构)是汽车ECU(Electronic Control Unit,电子控制单元)系统采用的一种软件架构,RTE(Run-TimeEnvironment,运行时环境)是AUTOSAR架构的核心。
AUTOSAR系统中组件间所有的通信通过组件端口(port)进行,而组件端口由AUTOSAR接口(AUTOSAR Interfaces)定义,RTE能够实现通信接口,提供组件间的通信服务,因此组件间的所有通信在RTE的控制之下。
Simulink是一种基于模型开发的软件开发工具,根据系统需要,按模型中的模块进行开发,模型建好后能够自动生成C代码,通过设置Simulink,能够自动生成符合Autosar软件架构的代码,但其中的RTE模块代码不能自动生成,需要借助另外的商业工具才能实现。
目前生成RTE模块代码的通常做法是,使用Simulink把模型建好后,按其中的模块导出一份arxml文件,然后把arxml文件再导入另外一个商业工具,在该商业工具(如Davinci Developer)上进行编辑与设置,最后生成RTE模块代码。商业工具不仅价格昂贵,还需要专业人员操作与配置,不利于推广应用。同时,因为需要在不同工具中切换使用,现有技术中通过另外的商业工具生成RTE模块代码的方式开发效率低下,且开发成本高昂。
发明内容
本发明提供一种面向AUTOSAR软件架构的运行时环境生成方法,解决了现有技术中自动生成RTE模块代码的方式存在开发效率低、成本高的问题。
为解决以上技术问题,本发明提供一种面向AUTOSAR软件架构的运行时环境生成方法,包括以下步骤:
S1.为每一个相互关联的程序模块建立一个数据表格字典,根据所述程序模块在所述数据表格字典中分配输入输出变量,以及对应于每个所述程序模块的标定量;
S2.建立一个程序文件、一个总头文件和与所述程序模块一一对应的子头文件;
S3.根据所有的所述数据表格字典在所述程序文件、所述总头文件和所述子头文件中做数据定义、数据声明和数据初始化;
S4.编译经过所述步骤S3的所述程序文件,所述程序文件读取所述数据表格字典,生成RTE模块代码。
具体地,所述数据表格字典包括信号量表格、标量参数表格和表格参数表格;
所述信号量表格包含的字段有一一对应的所述程序模块的名称、信号的名称、所述信号的数据类型、所述信号的初始值、所述信号的维数;
所述标量参数表格包含的字段有一一对应的所述程序模块的名称、标定参数的名称、所述标定参数的数据类型、所述标定参数的初始值、所述标定参数的维数;
所述表格参数表格包含的字段有一一对应的所述程序模块的名称、标定参数表格的名称、所述标定参数表格的参数的名称、所述标定参数表格的参数的数据类型、所述标定参数表格的参数的初始值、所述标定参数表格的参数的维数。
进一步地,所述步骤S3包括:
S3-1.在所述总头文件中,定义与所述数据表格字典对应的所有的数据类型;
S3-2.在所述总头文件中,将所述表格参数表格中,处于相同所述标定参数表格的名称下的所述标定参数表格的参数的名称定义到第一结构体中;
S3-3.在所述程序文件中,定义与所述数据表格字典对应的所有的全局变量;
S3-4.在所述程序文件中,定义与所述数据表格字典对应的所有的数组常量,用于所述全局变量中多维数组的初始化;
S3-5.在所述总头文件中,定义与所述数据表格字典对应的所有的标定结构体;
S3-6.在与所述程序模块一一对应的所述子头文件中,宏定义与所述数据表格字典对应的所述标定量;
S3-7.在所述程序文件中,定义用于标定所述标定结构体类型的常数,并遍历所述标量参数表格中的所述标定参数的初始值、所述标定参数的维数,及所述表格参数表格中的所述标定参数表格的参数的初始值、所述标定参数表格的参数的维数,把所述常数的值依次填入;
S3-8.在与所述程序模块一一对应的所述子头文件中,宏定义接口输出与接口输入,或在所述程序文件中定义拷贝接口函数,用于组件与组件之间、组件与底层之间的通信;
S3-9.在所述程序文件中,定义变量初始化函数,用于初始化所述输入输出变量和全部标定数据。
更进一步地,所述步骤S3-1具体为:遍历所述信号量表格中的所述信号的数据类型、所述信号的维数,及所述标量参数表格中的所述标定参数的数据类型、所述标定参数的维数,及所述表格参数表格中所述标定参数表格的参数的数据类型、所述标定参数表格的参数的维数,将维数不为1的所述信号的数据类型、所述标定参数的数据类型、所述标定参数表格的参数的数据类型进行重新定义。
进一步地,所述步骤S3-3具体为:遍历所述信号量表格中所有的所述信号的名称、所述信号的初始值、所述信号的维数,将其定义为全局变量。
进一步地,所述步骤S3-4具体为:遍历所述信号量表格中除所述程序模块的名称以外所有的字段,将所述信号的维数不为1的所述信号的数据类型根据所述信号的初始值定义为第一常数数组;遍历所述标量参数表格中除所述程序模块的名称以外所有的字段,将所述标定参数的维数不为1的所述标定参数的数据类型根据所述标定参数的初始值定义为第二常数数组。
进一步地,所述步骤S3-5具体为:遍历所述标量参数表格中的标定参数的名称、所述标定参数的数据类型和所述表格参数表格中的所述标定参数表格的名称,把其中所有的所述标定量定义到标定结构体中,同时定义一个结构体标定变量。
进一步地,所述步骤S3-6具体为:遍历所述标量参数表格中的所述程序模块的名称和所述标定参数的名称,进行所述标定量的宏定义;
遍历表格参数表格中的所述程序模块的名称和所述标定参数表格的名称,进行所述标定量的宏定义。
进一步地,所述步骤S3-8具体为:遍历所述信号量表格中的所述信号的名称、所述信号的数据类型、所述信号的维数,当所述信号的维数为1时,在与所述程序模块一一对应的所述子头文件中,宏定义所述接口输出与接口输入;当所述信号的维数不为1时,在所述程序文件中,定义所述拷贝接口函数,而在生成所述拷贝接口函数的同时,在与所述程序模块一一对应的所述子头文件中生成外部函数申明。
优选地,所述步骤S1采用表格工具EXCEL设计实现;所述步骤S2~S4采用编程工具VC++、VB或MATLAB设计实现。
本发明提供的一种面向AUTOSAR软件架构的运行时环境生成方法,采用区别于现有技术的一种全新的设计理念,通过表格工具EXCEL建立与程序模块一一对应的数据表格字典,再通过编程工具VC++、VB或MATLAB来设计相关的程序文件和头文件并读取所述数据表格字典,一键生成RTE模块代码,不需要专业人员操作与配置,保证了所述RTE模块代码与所述程序模块的一致性,开发效率高;采用常见的VC++、VB或MATLAB等编程设计工具,使得开发成本大幅度降低。
附图说明
图1是本发明实施例提供的一种面向AUTOSAR软件架构的运行时环境生成方法的步骤流程图;
图2是本发明提供的图1实施例中所述数据表格字典中的信号量表格Signals的字段表格表示图;
图3是本发明提供的图1实施例中所述数据表格字典中的标量参数表格ScalarParameters的字段表格表示图;
图4是本发明提供的图1实施例中所述数据表格字典中的表格参数表格TableParameters的字段表格表示图;
图5是本发明提供的图1实施例中所述步骤S3的工作流程图;
图6是本发明实施例提供的举例说明中的程序模块A中的变量表格表示图;
图7是本发明实施例提供的举例说明中的程序模块B中的变量表格表示图。
具体实施方式
下面结合附图具体阐明本发明的实施方式,实施例的给出仅仅是为了说明目的,并不能理解为对本发明的限定,包括附图仅供参考和说明使用,不构成对本发明专利保护范围的限制,因为在不脱离本发明精神和范围基础上,可以对本发明进行许多改变。
参见图1,是本发明实施例提供的一种面向AUTOSAR软件架构的运行时环境生成方法的步骤流程图。在本实施例中,发明实施例提供的一种面向AUTOSAR软件架构的运行时环境生成方法,包括以下步骤:
S1.为每一个相互关联的程序模块SWCx建立统一的数据表格字典EXCEL,根据所述程序模块SWCx在所述数据表格字典EXCEL中分配输入输出变量,以及对应于每个所述程序模块SWCx的标定量;
S2.建立一个程序文件Rte.c、一个总头文件Rte_type.h和与所述程序模块SWCx一一对应的子头文件Rte_SWCx.h;
S3.根据所有的所述数据表格字典EXCEL在所述程序文件Rte.c、所述总头文件Rte_type.h和所述子头文件Rte_SWCx.h中做数据定义、数据声明和数据初始化;
S4.编译经过所述步骤S3的所述程序文件Rte.c,所述程序文件Rte.c读取所述数据表格字典EXCEL,生成RTE模块代码。
在所述步骤S2中,SWCx是模块名,由Signals表格中SWC字段提取,有多少个不同的SWC,对应有多少个Rte_SWCx.h。
在本实施例中,所述数据表格字典EXCEL包括信号量表格Signals、标量参数表格ScalarParameters和表格参数表格TableParameters。如图2~图4,分别是本发明提供的图1实施例中所述数据表格字典EXCEL中的信号量表格Signals、标量参数表格ScalarParameters、表格参数表格TableParameters的字段表示图。
如图2,所述信号量表格Signals包含的字段有一一对应的所述程序模块SWCx的名称SWC、信号的名称SignalName、所述信号的数据类型DataType、所述信号的初始值InitValue、所述信号的维数Dimension,用于存放模型中所述程序模块SWCx的输入输出信号量;
如图3,所述标量参数表格ScalarParameters包含的字段有一一对应的所述程序模块SWCx的名称SWC、标定参数的名称ParameterName、所述标定参数的数据类型DataType、所述标定参数的初始值Init Value、所述标定参数的维数Dimension,用于存放数据量少的标定参数;
如图4,所述表格参数表格TableParameters包含的字段有一一对应的所述程序模块SWCx的名称SWC、标定参数表格的名称TableName、所述标定参数表格的参数的名称ParameterName、所述标定参数表格的参数的数据类型DataType、所述标定参数表格的参数的初始值Init Value、所述标定参数表格的参数的维数Dimension,用于存放数据量多的标定参数。
在本实施例中,如图5,是本发明提供的图1实施例中所述步骤S3的工作流程图。所述步骤S3包括:
S3-1.在所述总头文件Rte_type.h中,定义与所述数据表格字典EXCEL对应的所有的数据类型;
S3-2.在所述总头文件Rte_type.h中,将所述表格参数表格TableParameters中,处于相同所述标定参数表格的名称TableName下的所述标定参数表格的参数的名称ParameterName定义到第一结构体中;
S3-3.在所述程序文件Rte.c中,定义与所述数据表格字典EXCEL对应的所有的全局变量;
S3-4.在所述程序文件Rte.c中,定义与所述数据表格字典EXCEL对应的所有的数组常量,用于所述全局变量中多维数组的初始化;
S3-5.在所述总头文件Rte_type.h中,定义与所述数据表格字典EXCEL对应的所有的标定结构体;
S3-6.在与所述程序模块SWCx一一对应的所述子头文件Rte_SWCx.h中,宏定义与所述数据表格字典EXCEL对应的所述标定量;
S3-7.在所述程序文件Rte.c中,定义用于标定所述标定结构体类型的常数,并遍历所述标量参数表格ScalarParameters中的所述标定参数的初始值Init Value、所述标定参数的维数Dimension,及所述表格参数表格TableParameters中的所述标定参数表格的参数的初始值Init Value、所述标定参数表格的参数的维数Dimension,把所述常数的值依次填入;
S3-8.在与所述程序模块SWCx一一对应的所述子头文件Rte_SWCx.h中,宏定义接口输出与接口输入,或在所述程序文件Rte.c中,定义拷贝接口函数,用于组件与组件之间、组件与底层之间的通信;
S3-9.在所述程序文件Rte.c中,定义变量初始化函数,用于初始化所述输入输出变量和全部标定数据。
在所述步骤S3-1~S3-中,所述步骤S3-1具体为:遍历所述信号量表格Signals中的所述信号的数据类型DataType、所述信号的维数Dimension,及所述标量参数表格ScalarParameters中的所述标定参数的数据类型DataType、所述标定参数的维数Dimension,及所述表格参数表格TableParameters中所述标定参数表格的参数的数据类型DataType、所述标定参数表格的参数的维数Dimension,将维数不为1的所述信号的数据类型DataType、所述标定参数的数据类型DataType、所述标定参数表格的参数的数据类型DataType进行重新定义。定义规则:
typedef DataType rt_Array_+DataType+_Dimension[Dimension];
在所述步骤S3-1~S3-9中,所述步骤S3-3具体为:遍历所述信号量表格Signals中所有的所述信号的名称SignalName、所述信号的初始值Init Value、所述信号的维数Dimension,将其定义为全局变量。为符合Autosar架构,变量写成如下形式:
VAR(DataType,RTE_VAR_NOINIT)Rte_+SignalName+_Val;
其中,SignalName可以从Signals表格中直接提取。当Dimension为1时,DataType直接从Signals表格中直接提取;当Dimension不为1时,DataType按所述步骤S3-1中所述的数据类型定义。在所有Rte_SWCx.h定义该变量的外部定义:
extern VAR(DataType,RTE_VAR_NOINIT)Rte_+SignalName+_Val;
在所述步骤S3-1~S3-9中,所述步骤S3-4具体为:遍历所述信号量表格Signals中除所述程序模块SWCx的名称SWC以外所有的字段,将所述信号的维数Dimension不为1的所述信号的数据类型DataType根据所述信号的初始值Init Value定义为第一常数数组;遍历所述标量参数表格ScalarParameters中除所述程序模块SWCx的名称SWC以外所有的字段,将所述标定参数的维数Dimension不为1的所述标定参数的数据类型DataType根据所述标定参数的初始值Init Value定义为第二常数数组。
在所述步骤S3-1~S3-9中,所述步骤S3-5具体为:遍历所述标量参数表格ScalarParameters中的标定参数的名称ParameterName、所述标定参数的数据类型DataType和所述表格参数表格TableParameters中的所述标定参数表格的名称TableName,把其中所有的所述标定量定义到标定结构体中,同时定义一个结构体标定变量。定义规则为:
Rte_Calprm_MyCalib_DEFAULT_RTE_CALPRM_GROUP_Type Rte_Calprm_MyCalib;
在所述步骤S3-1~S3-9中,所述步骤S3-6具体为:遍历所述标量参数表格ScalarParameters中的所述程序模块SWCx的名称SWC和所述标定参数的名称ParameterName,进行所述标定量的宏定义:
#define Rte_Prm_+ParameterName+_Val()(Rte_Calprm_MyCalib.ParameterName+_Val);
遍历表格参数表格TableParameters中的所述程序模块SWCx的名称SWC和所述标定参数表格的名称TableName,进行所述标定量的宏定义:
#define Rte_Prm_+TableName+_Val()(&Rte_Calprm_MyCalib.TableName+_Val);
具体定义到哪一个子头文件Rte_SWCx.h,由字段SWC决定。
在所述步骤S3-1~S3-9中,所述步骤S3-8具体为:遍历所述信号量表格Signals中的所述信号的名称SignalName、所述信号的数据类型DataType、所述信号的维数Dimension,当所述信号的维数Dimension为1时,在与所述程序模块SWCx一一对应的所述子头文件Rte_SWCx.h中,宏定义所述接口输出与接口输入。
其中,所述接口输出的定义规则:
#define Rte_Write_+SignalName+_Val(data)(Rte_+SignalName+_Val=(data),((Std_ReturnType)RTE_E_OK));
其中SignalName由Signals表格中的SignalName字段直接提取。
所述接口输入的定义规则:
#define Rte_Read_+SignalName+_Val(data)(*(data)=Rte_+SignalName+_Val,((Std_ReturnType)RTE_E_OK));
其中SignalName由Signals表格中的SignalName字段直接提取。
当所述信号的维数Dimension不为1时,在所述程序文件Rte.c中,定义所述拷贝接口函数,用于组件与组件之间、组件与底层之间的通信。
在所述拷贝接口函数中,所述接口输出的定义形式:
FUNC(Std_ReturnType,RTE_CODE)Rte_Write_+SignalName+_Val(P2CONST
(DataType,AUTOMATIC,RTE_+SWC+APPL_DATA)data)
{
Std_ReturnType ret=RTE_E_OK;
Rte_MemCpy(Rte_+SignalName+_Val,data,sizeof(DataType));
return ret;
}
在所述拷贝接口函数中,所述接口输出的定义形式:
FUNC(Std_ReturnType,RTE_CODE)Rte_Read_+SignalName+_Val(P2VAR
(DataType,AUTOMATIC,RTE_+SWC+APPL_DATA)data)
{
Std_ReturnType ret=RTE_E_OK;
Rte_MemCpy(data,Rte_+SWC+_Val,sizeof(DataType));
return ret;
}
其中,SignalName由Signals表格中的SignalName字段直接提取,SWC由Signals表格中的SWC字段直接提取,DataType按照所述步骤S3-1的方法生成。
而在生成所述拷贝接口函数的同时,在与所述程序模块SWCx一一对应的所述子头文件Rte_SWCx.h中生成外部函数申明。
在所述步骤S3-1~S3-9中,在所述步骤S3-9中,所述输入输出变量的初始化代码过程如下:
遍历Signals表格中所有SignalName、DataType、Dimension、Init Value字段;
当Dimension为1时,代码如下:
Rte_+SignalName+_Val=Init Value;
SignalName和Init Value由由Signals表格中的SignalName和Init Value字段直接提取。
当Dimension不为1时,代码如下:
Rte_MemCpy(Rte_+SignalName+_Val,常数数组,sizeof(DataType));
其中常数数组按所述步骤S3-3方法生成,DataType按照所述步骤S3-1的方法生成。
在所述步骤S3-9中,所述标定数据的初始化过程如下:
采用所述拷贝接口函数,把所述步骤S3-5的所述标定结构体赋值给所述步骤S3-5生成的所述结构体标定变量。
在本实施例中,所述步骤S1采用表格工具如EXCEL设计实现;所述步骤S2~S4采用编程工具VC++、VB或MATLAB等设计实现。
本发明旨在解决不同的程序模块SWCx之间的变量交互问题、标定量的问题、变量初始化的问题及预定义的问题。
举例说明:
1.变量交互的问题。
参见,图6、图7分别是本发明实施例提供的举例说明中的程序模块A、程序模块B中的变量表格表示图。甲开发程序模块A,乙开发程序模块B,使用非商业工具EXCEL及MATLAB进行开发。甲乙双方分配输入输出变量,程序模块A的部分输出给程序模块B,程序模块B的部分输出给程序模块A,而这两个模块之间的变量如何有序的交互,其解决思想在于:
①甲乙双方分别为程序模块A及程序模块B定义其数据表格字典变量,填写各自数据,等待MATLAB使用(所述步骤S2-S4);
②把程序模块A及程序模块B所用到的输入输出变量(信号)统一在一个C文件(如所述程序文件Rte.c)定义为全局变量,同时在各自的头文件中(如Rte_A.h和Rte_B.h)外部声明。比如,在Rte.c文件中统一定义变量:
int Rte_AA_Val,Rte_BB_Val[2];
char Rte_CC_Val[3],Rte_DD_Val[3];
③对图6、图7中所有变量进行宏定义赋值和取值。比如,取值:
#define Rte_Read_AA_Val(data)(*(data)=Rte_AA_Val,RTE_E_OK_Type)
赋值:
#define Rte_Write__AA_Val(data)(Rte_AA_Val=(data)RTE_E_OK_Type)
基于,MATLAB模型自动生成的代码,对输入变量的获取代码:“Rte_Read_AA_Val();”,对输出变量的代码为:“Rte_Write__AA_Val();”。
对于维数大于1的情况,需要定义一个拷贝函数,实现数组的传输,比如:Rte_Write_BB_Val(P2CONST(int,AUTOMATIC,RTE_BLCAPPL_DATA)data);
2.标定量的问题。
把所有标定量按表格先后顺序定义到FLASH(FLASH存储器又称闪存,不仅具备电子可擦除可编程的性能,还不会断电丢失数据同时可以快速读取数据)的一个结构体中,同时在RAM(RAM通常是作为操作系统或其他正在运行程序的临时存储介质,当电源关闭时RAM不能保留数据,有时也将RAM称作“可变存储器”)中定义一个相同的结构体,再定义一个拷贝函数,初始化的时候把FLASH结构体的内容拷贝到RAM的结构体中。
3.变量初始化的问题。
对于维数(如Dimension)为1的输入输出变量,直接对其赋值;
对于维数(如Dimension)大于1的输入输出变量,把初始值定义到FLASH数组中,初始化的时候把FLASH中的数组拷贝给RAM变量数组。
4.预定义的问题。
为了满足AUTOSAR的语法要求,需要作相关的预定义,定义输入输出变量:
VAR(rt_Array_uint16_8,RTE_VAR_NOINIT)Rte_V8OUTP_BalState_void_Val;
其实际效果为:
rt_Array_uint16_8Rte_V8OUTP_BalState_void_Val;
其中,“rt_Array_uint16_8”数据类型在Rte_Type.h文件中有统一定义,如:
typedef uint16rt_Array_uint16_8[8];
最后的实际效果为:
uint16Rte_V8OUTP_BalState_void_Val[8];
本发明提供的一种面向AUTOSAR软件架构的运行时环境生成方法,采用区别于现有技术的一种全新的设计理念,通过表格工具EXCEL建立与程序模块一一对应的数据表格字典,再通过编程工具VC++、VB或MATLAB来设计相关的程序文件(Rte.c)和头文件(Rte_Type.h、Rte_SWCx.h)并读取所述数据表格字典,一键生成RTE模块代码,不需要专业人员操作与配置,保证了所述RTE模块代码与所述程序模块SWC的一致性,开发效率高;采用常见的VC++、VB或MATLAB等编程设计工具,使得开发成本大幅度降低。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (9)

1.一种面向AUTOSAR软件架构的运行时环境生成方法,其特征在于,包括以下步骤:
S1.为每一个相互关联的程序模块建立统一的数据表格字典,根据所述程序模块在所述数据表格字典中分配输入输出变量,以及对应于每个所述程序模块的标定量;
S2.建立一个程序文件、一个总头文件和与所述程序模块一一对应的子头文件;
S3.根据所有的所述数据表格字典在所述程序文件、所述总头文件和所述子头文件中做数据定义、数据声明和数据初始化;
S4.编译经过所述步骤S3的所述程序文件,所述程序文件读取所述数据表格字典,生成RTE模块代码;
所述数据表格字典包括信号量表格、标量参数表格和表格参数表格;
所述信号量表格包含的字段有一一对应的所述程序模块的名称、信号的名称、所述信号的数据类型、所述信号的初始值、所述信号的维数;
所述标量参数表格包含的字段有一一对应的所述程序模块的名称、标定参数的名称、所述标定参数的数据类型、所述标定参数的初始值、所述标定参数的维数;
所述表格参数表格包含的字段有一一对应的所述程序模块的名称、标定参数表格的名称、所述标定参数表格的参数的名称、所述标定参数表格的参数的数据类型、所述标定参数表格的参数的初始值、所述标定参数表格的参数的维数。
2.如权利要求1所述的一种面向AUTOSAR软件架构的运行时环境生成方法,其特征在于,所述步骤S3包括:
S3-1.在所述总头文件中,定义与所述数据表格字典对应的所有的数据类型;
S3-2.在所述总头文件中,将所述表格参数表格中,处于相同所述标定参数表格的名称下的所述标定参数表格的参数的名称定义到第一结构体中;
S3-3.在所述程序文件中,定义与所述数据表格字典对应的所有的全局变量;
S3-4.在所述程序文件中,定义与所述数据表格字典对应的所有的数组常量,用于所述全局变量中多维数组的初始化;
S3-5.在所述总头文件中,定义与所述数据表格字典对应的所有的标定结构体;
S3-6.在与所述程序模块一一对应的所述子头文件中,宏定义与所述数据表格字典对应的所述标定量;
S3-7.在所述程序文件中,定义用于标定所述标定结构体类型的常数,并遍历所述标量参数表格中的所述标定参数的初始值、所述标定参数的维数及所述表格参数表格中的所述标定参数表格的参数的初始值、所述标定参数表格的参数的维数,把所述常数的值依次填入;
S3-8.在与所述程序模块一一对应的所述子头文件中,宏定义接口输出与接口输入,或在所述程序文件中定义拷贝接口函数,用于组件与组件之间、组件与底层之间的通信;
S3-9.在所述程序文件中,定义变量初始化函数,用于初始化所述输入输出变量和全部标定数据。
3.如权利要求2所述的一种面向AUTOSAR软件架构的运行时环境生成方法,其特征在于,所述步骤S3-1具体为:遍历所述信号量表格中的所述信号的数据类型、所述信号的维数,及所述标量参数表格中的所述标定参数的数据类型、所述标定参数的维数,及所述表格参数表格中所述标定参数表格的参数的数据类型、所述标定参数表格的参数的维数,将维数不为1的所述信号的数据类型、所述标定参数的数据类型、所述标定参数表格的参数的数据类型进行重新定义。
4.如权利要求3所述的一种面向AUTOSAR软件架构的运行时环境生成方法,其特征在于,所述步骤S3-3具体为:遍历所述信号量表格中所有的所述信号的名称、所述信号的初始值、所述信号的维数,将其定义为全局变量。
5.如权利要求4所述的一种面向AUTOSAR软件架构的运行时环境生成方法,其特征在于,所述步骤S3-4具体为:遍历所述信号量表格中除所述程序模块的名称以外所有的字段,将所述信号的维数不为1的所述信号的数据类型根据所述信号的初始值定义为第一常数数组;遍历所述标量参数表格中除所述程序模块的名称以外所有的字段,将所述标定参数的维数不为1的所述标定参数的数据类型根据所述标定参数的初始值定义为第二常数数组。
6.如权利要求5所述的一种面向AUTOSAR软件架构的运行时环境生成方法,其特征在于,所述步骤S3-5具体为:遍历所述标量参数表格中的所述标定参数的名称、所述标定参数的数据类型和所述表格参数表格中的所述标定参数表格的名称,把其中所有的所述标定量定义到标定结构体中,同时定义一个结构体标定变量。
7.如权利要求6所述的一种面向AUTOSAR软件架构的运行时环境生成方法,其特征在于,所述步骤S3-6具体为:遍历所述标量参数表格中的所述程序模块的名称和所述标定参数的名称,进行所述标定量的宏定义;
遍历表格参数表格中的所述程序模块的名称和所述标定参数表格的名称,进行所述标定量的宏定义。
8.如权利要求7所述的一种面向AUTOSAR软件架构的运行时环境生成方法,其特征在于,所述步骤S3-8具体为:遍历所述信号量表格中的所述信号的名称、所述信号的数据类型、所述信号的维数,当所述信号的维数为1时,在与所述程序模块一一对应的所述子头文件中,宏定义所述接口输出与接口输入;当所述信号的维数不为1时,在所述程序文件中,定义所述拷贝接口函数,而在生成所述拷贝接口函数的同时,在与所述程序模块一一对应的所述子头文件中生成外部函数申明。
9.如权利要求1所述的一种面向AUTOSAR软件架构的运行时环境生成方法,其特征在于:所述步骤S1采用表格工具EXCEL设计实现;所述步骤S2~S4采用编程工具VC++、VB或MATLAB设计实现。
CN201711043788.4A 2017-10-31 2017-10-31 一种面向autosar软件架构的运行时环境生成方法 Active CN107885500B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711043788.4A CN107885500B (zh) 2017-10-31 2017-10-31 一种面向autosar软件架构的运行时环境生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711043788.4A CN107885500B (zh) 2017-10-31 2017-10-31 一种面向autosar软件架构的运行时环境生成方法

Publications (2)

Publication Number Publication Date
CN107885500A CN107885500A (zh) 2018-04-06
CN107885500B true CN107885500B (zh) 2021-05-18

Family

ID=61783026

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711043788.4A Active CN107885500B (zh) 2017-10-31 2017-10-31 一种面向autosar软件架构的运行时环境生成方法

Country Status (1)

Country Link
CN (1) CN107885500B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117121B (zh) * 2018-05-08 2022-05-27 宁波央腾汽车电子有限公司 一种autosar软件架构实现方法
CN112988145A (zh) * 2019-12-02 2021-06-18 中国航发商用航空发动机有限责任公司 生成航空发动机软件架构的方法及航空发动机控制装置
CN113687814A (zh) * 2021-08-05 2021-11-23 东风汽车集团股份有限公司 基于autosar架构的模型框架和接口文件的自动化实现方法
CN114285831B (zh) * 2021-12-23 2024-03-08 中汽创智科技有限公司 一种汽车开放架构的数据传输方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214099A (zh) * 2011-06-16 2011-10-12 浙江大学 用于autosar的rte代码自动生成方法
CN102253975A (zh) * 2011-06-16 2011-11-23 上海博康智能网络科技有限公司 一种数据库自动转换系统及方法
US20150067148A1 (en) * 2013-08-27 2015-03-05 Electronics And Telecommunications Research Institute Automotive open system architecture (autosar)-based communication method and communication apparatus thereof
CN105915389A (zh) * 2016-06-02 2016-08-31 苏州乐麟无线信息科技有限公司 一种数据配置及加载的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214099A (zh) * 2011-06-16 2011-10-12 浙江大学 用于autosar的rte代码自动生成方法
CN102253975A (zh) * 2011-06-16 2011-11-23 上海博康智能网络科技有限公司 一种数据库自动转换系统及方法
US20150067148A1 (en) * 2013-08-27 2015-03-05 Electronics And Telecommunications Research Institute Automotive open system architecture (autosar)-based communication method and communication apparatus thereof
CN105915389A (zh) * 2016-06-02 2016-08-31 苏州乐麟无线信息科技有限公司 一种数据配置及加载的方法及装置

Also Published As

Publication number Publication date
CN107885500A (zh) 2018-04-06

Similar Documents

Publication Publication Date Title
CN107885500B (zh) 一种面向autosar软件架构的运行时环境生成方法
Blochwitz et al. The functional mockup interface for tool independent exchange of simulation models
Bjerkander et al. Architecting systems with UML 2.0
CN111538488B (zh) 一种单片机驱动程序生成方法及装置
CA2539433A1 (en) Systems and methods for dynamically linking application software into a running operating system kernel
JP2014216031A (ja) ハードウェアコンポーネントのi/oチャネルのフレキシブルな分配方法
CN116737117A (zh) 基于Autosar架构的模型开发方法
CN113434131A (zh) 编写程序方法、装置、计算机设备和存储介质
Di Natale et al. An MDA approach for the generation of communication adapters integrating SW and FW components from Simulink
Hansen et al. HAZOP analysis of UML-based software architecture descriptions of safety-critical systems
Heinzemann et al. Simulating self-adaptive component-based systems using MATLAB/Simulink
Centomo et al. Using systemc cyber models in an fmi co-simulation environment: Results and proposed fmi enhancements
CN101196848A (zh) 运行日志获取方法
de Boer et al. Computer-aided specification and verification of annotated object-oriented programs
CN115237390A (zh) 一种继电保护装置逻辑图生成代码方法、装置及存储介质
CN110333870B (zh) Simulink模型变量分配的处理方法、装置及设备
CN114792058A (zh) 一种新能源电磁暂态封装模型统一接口方法及系统
Delic et al. Validation of a SIL3 middleware for safety-related system-on-chips
CN112306539A (zh) 一种单片机应用层开发方法、系统、终端及介质
CN109388406A (zh) 转换java代码的方法及装置、存储介质、电子装置
Fabregat et al. Embedded system modeling and synthesis in OO environments. A smart-sensor case study
CN116362060B (zh) 一种系统仿真模型自动生成方法、装置及设备
CN116107669B (zh) 深度学习框架的算子注册方法、装置、设备及存储介质
Andreassen Modular Electrical Simulation Framework
CN105022653A (zh) 一种关于模板库编程约定的检查方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant