仿真和(可选)生成 AUTOSAR 软件组件代码(需要 Embedded Coder)
当您配置 AUTOSAR 软件组件模型以在 Simulink® 环境中使用后,您需要对您在为 Simulink 建模环境配置 AUTOSAR 软件组件元素中配置的模型 my_autosar_swc 进行仿真。
如果尚未打开您配置的模型
my_autosar_swc版本,请将其打开。在 Simulink 编辑器中,点击“仿真”按钮
。
如果您有权访问 Simulink Coder™ 和 Embedded Coder® 软件,则接下来可以为 AUTOSAR 模型生成代码。
如果尚未打开您配置的模型
my_autosar_swc版本,请将其打开。通过按 Ctrl+B 启动代码生成。代码生成器会生成 C 代码和 ARXML 文件。生成的代码符合 AUTOSAR 标准,因此您可以在 AUTOSAR 运行时环境中调度这些代码。
代码生成器还生成并显示代码生成报告。
在代码生成报告中,查看生成的代码。在您的当前 MATLAB® 文件夹中,
my_autosar_swc_autosar_rtw文件夹包含下表中列出的主要文件。生成的代码文件
文件 描述 my_autosar_swc.c包含实现模型算法的代码的入口函数。此文件包括速率调度代码。 my_autosar_swc.h声明模型数据结构体和对接模型入口函数和数据结构体的公共接口。 my_autosar_swc_component.arxml
my_autosar_swc_datatype.arxml
my_autosar_swc_implementation.arxml
my_autosar_swc_interface.arxml
包含表示 AUTOSAR 软件组件、端口、接口、数据类型和包的元素和对象。您需要将 ARXML 文件集成到 AUTOSAR 运行时环境中。您可以使用 AUTOSAR ARXML 导入器工具将 ARXML 文件导入 Simulink 环境。 默认情况下,AUTOSAR Blockset 代码生成在生成代码中使用 AUTOSAR 平台类型,并在
Platform_Types.h中定义平台类型。如果需要支持传统实现,您可以使用数据类型替换配置参数来指定代码生成器创建 Simulink 数据类型头文件rtwtypes.h,并在生成代码中使用它来根据代码生成器类型定义描述 AUTOSAR 平台类型。 (自 R2023b 起)在 R2023b 之前的版本中: AUTOSAR Blockset 代码生成已创建并需要支持文件
rtwtypes.h。打开并查看代码接口报告。此信息捕获并存放在 ARXML 文件中。运行时环境生成器使用 ARXML 描述将代码对接到 AUTOSAR 运行时环境。
入口函数:
初始化入口函数 -
void my_autosar_swc_Init(void)。在启动时,调用一次此函数。输出和更新入口函数 -
void my_autosar_swc_Step(void)。以模型中最快的速率定期调用此函数。对于此模型,每秒调用一次该函数。要实现实时执行,请将此函数附加到计时器。输出和更新入口函数 -
void my_autosar_swc_Step1(void)。以模型中次最快的速率定期调用此函数。对于此模型,每 2 秒调用一次该函数。要实现实时执行,请将此函数附加到计时器。
也可在代码映射编辑器的函数选项卡中访问入口函数。您可以从外部代码或您修改的生成主函数的版本调用这些生成的函数。如果需要,您可以更改函数的名称。对于基于速率的模型的基本速率单步函数和导出函数模型的单步函数,您可以自定义函数名称和参量。
输入端口:
模块 In1_1s - 需型端口、接口:一维实时类型的发送方-接收方
模块 In2_2s - 需型端口、接口:一维实时类型的发送方-接收方
输出端口:
模块 Out1 - 供型端口、接口:一维实时类型的发送方-接收方
模块 Out2 - 供型端口、接口:一维实时类型的发送方-接收方
通过使用代码透视中的“代码”面板检查您所做的配置更改是否出现在生成代码中。要打开“代码”面板,请在 AUTOSAR 选项卡上,点击查看代码。“代码”面板在模型右侧打开。在搜索字段中,键入
In1_1s_SS1,即 AUTOSAR 软件组件端口In1_1s的新名称。然后,点击箭头按钮前进到 ARXML 文件my_autosar_swc_component.arxml中该名称的实例。验证您为 AUTOSAR 软件组件端口修改的通信属性设置是否正确显示。
使用代码透视中的“代码”面板浏览生成代码的其他方面。例如,如果您选择文件
my_autosar_swc.c,然后点击搜索字段,则会出现代码元素链接的列表,包括入口函数。使用链接可快速导航到生成的 C 代码的关键代码区域。