主要内容

仿真 AUTOSAR Adaptive 软件组件并可选择生成代码(需要 Embedded Coder

当您配置 AUTOSAR Adaptive 软件组件模型以在 Simulink® 环境中使用后,您需要对您在Configure Elements of AUTOSAR Adaptive Software Component for Simulink Modeling Environment中配置的模型 my_autosar_LaneGuidance 进行仿真。

  1. 如果尚未打开您配置的模型 my_autosar_LaneGuidance 版本,请将其打开。

  2. Simulink Coder™ 编辑器中,点击“仿真”按钮

如果您有权访问 Simulink Coder 和 Embedded Coder® 软件,则可以编译 AUTOSAR Adaptive 模型。编译 AUTOSAR Adaptive 模型时,代码生成器会生成符合 Adaptive 平台 AUTOSAR 标准的 C++ 代码和 ARXML 描述。

  1. 如果尚未打开您配置的模型 my_autosar_LaneGuidance 版本,请将其打开。

  2. 通过按 Ctrl+B 启动代码生成。代码生成器会生成 C++ 代码和 ARXML 文件。生成的代码符合 AUTOSAR 标准,因此您可以在 AUTOSAR 运行时环境中调度这些代码。

    代码生成器还生成并显示代码生成报告。

  3. 在代码生成报告中,查看生成的代码。在您的当前 MATLAB® 文件夹中,my_autosar_LaneGuidance_autosar_adaptive 文件夹包含下表中列出的主要文件。

    生成的代码文件

    文件描述
    my_autosar_LaneGuidance.cpp包含实现模型算法的代码的入口函数。此文件包含速率调度代码。
    my_autosar_LaneGuidance.h声明模型数据结构体和对接模型入口函数和数据结构体的公共接口。
    my_autosar_LaneGuidance.arxml
    my_autosar_LaneGuidance_ExecutionManifest.arxml
    my_autosar_LaneGuidance_ServiceInstanceManifest.arxml
    主 ARXML 文件包含表示 AUTOSAR 软件组件、端口、接口、数据类型和包的元素和对象。清单文件提供部署相关的信息和服务配置信息。您需要将 ARXML 文件集成到 AUTOSAR 运行时环境中。您可以使用 AUTOSAR ARXML 导入器工具将 ARXML 文件导入 Simulink 环境。
    main.cpp提供用于运行自适应软件组件服务代码的框架。

    默认情况下,AUTOSAR Blockset 代码生成直接在生成代码中使用平台类型。如果需要支持传统实现,您可以使用数据类型替换配置参数来指定代码生成器根据 Simulink 数据类型头文件 rtwtypes.h 中的类型定义通过中间层定义平台类型。 (自 R2023b 起)

    在 R2023b 之前的版本中: AUTOSAR Blockset 代码生成已创建并需要支持文件 rtwtypes.h

  4. 打开并查看代码接口报告。此信息捕获并存放在 ARXML 文件中。运行时环境生成器使用 ARXML 描述将代码对接到 AUTOSAR 运行时环境。

    入口函数

    • 初始化入口函数 - void my_autosar_LaneGuidanceModelClass::initialize()。在启动时,调用一次此函数。

    • 输出入口函数 - void my_autosar_LaneGuidanceModelClass::step()。每 0.1 秒周期性调用此函数。

    • 终止入口函数 - void my_autosar_LaneGuidanceModelClass::terminate()。关闭时,调用一次此函数。

    输入端口:

    • 模块 leftLaneDistance - 需型端口、接口:一维实时类型的发送方-接收方

    • 模块 leftTurnIndicator - 需型端口、接口:一维实时类型的发送方-接收方

    • 模块 rightLaneDistance - 需型端口、接口:一维实时类型的发送方-接收方

    • 模块 rightTurnIndicator - 需型端口、接口:一维实时类型的发送方-接收方

    • 模块 leftCarInBlindSpot - 需型端口、接口:一维实时类型的发送方-接收方

    • 模块 rightCarInBlindSpot - 需型端口、接口:一维实时类型的发送方-接收方

    输出端口:

    • 模块 leftHazardIndicator - 外部定义的端口,类型为 real-T,维度为 1

    • 模块 rightHazardIndicator - 外部定义的端口,类型为 real-T,维度为 1

  5. 通过使用代码透视中的“代码”面板检查您所做的配置更改是否出现在生成代码中。要打开“代码”面板,请在 AUTOSAR 选项卡上,点击查看代码。“代码”面板在模型右侧打开。

    在选中文件 my_autosar_LaneGuidance.cpp 的情况下,在搜索字段中键入 company(您为服务接口定义的命名空间值之一)。代码视图会突出显示 company 的实例,展示命名空间符号如何在代码中应用。

    Code generation report for my_autosar_LaneGuidance.cpp, company is entered in the search field and all instances of company are highlighted in the open file.

  6. 使用代码透视中的“代码”面板浏览生成代码的其他方面。例如,如果您选择文件 my_autosar_LaneGuidance.cpp,然后点击搜索字段,则会出现代码元素链接的列表。使用链接可快速导航到生成的代码的关键代码区域。

另请参阅

主题