配置AUTOSAR自适应代码生成
要从为AUTOSAR自适应平台配置的模型生成符合AUTOSAR的c++代码和ARXML组件描述:
在“配置参数”对话框中,在代码生成>AUTOSAR代码生成选项窗格,配置AUTOSAR代码生成参数。
使用AUTOSAR字典或AUTOSAR属性函数配置AUTOSAR XML导出选项。
可选地,自定义生成的c++类名和自适应模型的命名空间。
可选地,修改自适应应用程序的运行时日志行为。
构建的模型。
请注意
CMake
版本3.12或以上是AUTOSAR自适应代码生成所必需的。
选择AUTOSAR自适应模式
对于ARXML文件的导入导出和AUTOSAR兼容c++代码的生成,AUTOSAR Blockset支持以下AUTOSAR自适应平台模式版本:
R20-11 (00049)
R19-11 (00048)
R19-03 (00047)
R18-10 (00046)
第一次为模型选择AUTOSAR自适应系统目标文件将模式版本参数设置为默认值R20-11 (00049)
。
如果你将ARXML文件导入到Simulink®, ARXML导入器检测并使用模式版本。它在模型中设置模式版本参数。例如,如果您基于模式R20-11(00049)导入ARXML文件,导入器将在模型中设置匹配的模式版本。
当您构建AUTOSAR自适应模型时,代码生成器导出ARXML描述并生成符合当前AUTOSAR模式版本值的c++代码。
在导出AUTOSAR软件组件之前,请检查所选的模式版本。如果需要更改所选的模式版本,请使用模型配置参数为模式版本生成XML文件(嵌入式编码)。
请注意
将AUTOSAR模型配置参数设置为顶级模型和参考模型相同的值。本指南适用于为模式版本生成XML文件(嵌入式编码),最大字长度(嵌入式编码),传输层(嵌入式编码),IP地址(嵌入式编码),港口(嵌入式编码),详细的(嵌入式编码),使用自定义XCP Slave(嵌入式编码)。
指定Maximum SHORT-NAME Length
AUTOSAR标准规定的最大长度字
XML元素是128个字符。
指定的最大长度字
代码生成器导出的元素,设置模型配置参数最大字长度(嵌入式编码)为32到128之间的整数值,包括。默认为128个字符。
指定XCP从传输层
XCP是一种源于ASAM的网络协议,用于连接校准系统和电子控制单元。它能够在运行时对微控制器系统的变量和内存内容进行读写访问。作为一种两层协议,XCP将协议和传输层分离开来,并坚持单主/多从的概念。传输层的选择不影响XCP协议层。
目前,以下传输层被ASAM定义为标准:
的XCP可以
上的XCP Sxl
以太网上的XCP (TCP/IP或UDP/IP)
在USB的XCP
Flex Ray上的XCP
要选择AUTOSAR自适应应用程序(XCP Slave)使用的传输层,使用模型配置参数传输层(嵌入式编码)。选择一个XCP传输层可以启用其他XCP参数。
有关更多信息,请参见为运行时校准和测量配置AUTOSAR自适应数据。
指定XCP从IP地址
互联网协议(IP)是跨网络边界中继数据报的主要通信协议。互联网协议负责寻址主机接口,将数据封装到数据报中,并跨一个或多个IP网络将数据报从源主机接口路由到目标主机接口。
每个数据报有两个组件:头和有效载荷。IP头包括源IP地址、目的IP地址和路由和传递数据报所需的其他元数据。有效载荷是它所传输的数据。
要指定执行AUTOSAR自适应应用程序(XCP Slave)的机器的IP地址,请使用模型配置参数IP地址(嵌入式编码)。的IP地址参数通过选择的值启用传输层(嵌入式编码)。
有关更多信息,请参见为运行时校准和测量配置AUTOSAR自适应数据。
指定XCP Slave Port
端口号是每个使用网络或Internet进行通信的应用程序或进程的逻辑地址。端口号主要帮助网络和应用程序之间的数据传输。端口号与网络协议协同工作以实现这一点。
端口号唯一标识计算机上基于网络的应用程序。每个应用程序分配一个16位整数端口号。该端口号由操作系统分配,由用户手动设置,或者设置为默认值。
要指定AUTOSAR自适应应用程序(XCP Slave)在其上服务XCP Master命令的网口,请使用模型配置参数港口(嵌入式编码)。的港口参数通过选择的值启用传输层(嵌入式编码)。
有关更多信息,请参见为运行时校准和测量配置AUTOSAR自适应数据。
启用XCP Slave Message Verbosity
冗长是软件信息中包含的技术细节级别。详细的消息可以帮助调试和理解XCP通信。
要为AUTOSAR自适应应用程序(XCP Slave)启用详细消息,请选择模型配置参数详细的(嵌入式编码)。的详细的参数通过选择的值启用传输层(嵌入式编码)。
有关更多信息,请参见为运行时校准和测量配置AUTOSAR自适应数据。
使用自定义XCP Slave
默认情况下,MathWorks®XCP Slave用于通信。可以为以太网(TCP/IP)传输层使用自定义XCP Slave。需要一个自定义的XCP Slave实现来建立接口。在头文件中定义实现xcp_slave.h
在文件夹中
。matlabroot
/工具箱/编码器/ autosar /自适应
要启用使用自定义XCP Slave,请选择模型配置参数使用自定义XCP Slave(嵌入式编码)。的使用自定义XCP Slave参数通过选择的值启用传输层(嵌入式编码)。
有关更多信息,请参见为运行时校准和测量配置AUTOSAR自适应数据。
检查AUTOSAR自适应XML选项
检查您使用AUTOSAR Dictionary配置的XML选项。如果您还没有配置这些选项,请参见配置AUTOSAR自适应XML选项。
在生成代码中自定义类名和命名空间
如果你想自定义生成的代码,你可以以交互方式或编程方式控制生成的AUTOSAR应用程序的c++类名和命名空间。
以交互方式配置生成代码的这些方面,从一个开放模型,在AUTOSAR选项卡上,单击代码接口中,选择班级名称和命名空间,并在打开的配置对话框中自定义名称。
要以编程方式配置名称和名称空间,请使用AUTOSAR函数getClassName
,setClassName
,getClassNamespace
,setClassNamespace
。
配置Run-Time Logging Behavior
可选地,修改ara:日志
基于AUTOSAR自适应应用程序的运行时日志行为。
在AUTOSAR中定义《诊断日志与跟踪规范》
,自适应应用程序可以将事件日志信息转发到控制台、文件或网络。这允许您整理和分析来自多个应用程序的日志数据。默认情况下,应用程序将事件消息记录到本地控制台。
要修改自适应模型的默认运行时日志记录行为,可以使用AUTOSAR属性函数,包括集
。代码生成将指定的日志记录属性导出到ARXML执行清单文件。如果你构建一个Linux®可执行文件,您可以生成一个JSON执行清单文件,修改可执行文件的默认日志记录行为。有关更多信息,请参见为AUTOSAR自适应可执行程序配置运行时日志。
生成AUTOSAR Adaptive c++和XML文件
配置AUTOSAR代码生成和XML选项后,生成代码。要生成c++代码并导出XML描述,需要构建自适应组件模型。
构建过程为模型构建文件夹生成符合AUTOSAR的c++代码和AUTOSAR XML描述。导出的XML文件包括:
一个或多个
文件,根据您是否设置导出XML文件打包来modelname
* .arxml单独的文件
或模块化
。AUTOSAR可执行程序和服务实例的清单。
如果您将ARXML文件导入到Simulink中,这些文件的更新版本。
此表列出了
的值生成的文件导出XML文件打包选项在AUTOSAR字典中配置。modelname
* .arxml
导出的XML文件打包值 | 导出文件名称 | 默认的内容 |
---|---|---|
单独的文件 |
|
自适应软件组件、数据类型和接口的AUTOSAR元素。 |
|
自适应应用程序的部署相关信息,包括可执行程序、进程到机器映射集和进程。 | |
|
面向服务的通信的配置,包括服务接口部署、服务实例和服务实例到端口的映射。 | |
模块化 |
|
自适应软件组件,包括所需和提供的端口。 这是为Simulink模型导出的主要ARXML文件。除了软件组件外,组件文件还包含可打包的元素,导出器不会根据AUTOSAR元素类别将这些元素移动到数据类型或接口文件中。 |
|
数据类型和相关元素,包括:
|
|
|
自适应接口,包括具有名称空间和事件的必需和提供的服务接口。 | |
|
自适应应用程序的部署相关信息,包括可执行程序、进程到机器映射集和进程。 | |
|
面向服务的通信的配置,包括服务接口部署、服务实例和服务实例到端口的映射。 |
您可以将AUTOSAR自适应XML组件描述合并到AUTOSAR创作工具中。AUTOSAR组件信息被划分到单独的文件中,以方便合并。分区试图最小化必须进行的合并的数量。您不需要将数据类型文件合并到创作工具中,因为数据类型在设计过程的早期就定义了。您必须合并内部行为文件,因为这些信息是模型实现的一部分。
为了帮助支持AUTOSAR元素在AUTOSAR创作工具(AAT)和Simulink基于模型的设计环境之间的往返,代码生成器跨ARXML导入和导出保存了AUTOSAR元素及其通用唯一标识符(uuid)。有关更多信息,请参见AUTOSAR XML文件结构和元素信息的双向保存。
关于如何生成符合AUTOSAR的c++代码以及从Simulink模型导出AUTOSAR XML组件描述的例子,请参见生成AUTOSAR自适应c++代码和XML描述。
另请参阅
autosar.api.getSimulinkMapping
|getClassName
|setClassName
|getClassNamespace
|setClassNamespace
|为模式版本生成XML文件(嵌入式编码)|最大字长度(嵌入式编码)|传输层(嵌入式编码)|IP地址(嵌入式编码)|港口(嵌入式编码)|详细的(嵌入式编码)|使用自定义XCP Slave(嵌入式编码)