Main Content

使用 Embedded Coder 快速向导生成 C++ 代码

使用 Embedded Coder® 快速向导工具为嵌入式代码生成准备 CppClassWorkflowKeyIgnition 模型。快速向导工具根据您的目标和应用选择基本的代码生成设置。

在本教程的此步骤中,您将为 CppClassWorkflowKeyIgnition 模型生成代码,然后检查生成的文件。CppClassWorkflowKeyIgnition 模型表示车辆的点火系统。

使用快速向导工具生成 C++ 代码

  1. 打开模型 CppClassWorkflowKeyIgnition

    openExample('CppClassWorkflowKeyIgnition.slx')

    View of the CppClassWorkflowKeyIgnition model

  2. 将模型的副本保存到 MATLAB 搜索路径中的一个可写位置。

  3. 如果 C++ 代码选项卡尚未打开,请在 App 选项卡的 App 库中,在代码生成下,点击 Embedded Coder

  4. C++ 代码选项卡上,点击设定并选择 C/C++ 代码生成设置

    “配置参数”对话框将打开。

  5. 在 “配置参数”对话框中,打开代码生成窗格,在目标选择下,验证语言参数是否设置为 C++。点击确定以关闭对话框。

  6. C++ 代码选项卡上,点击快速向导

    View of the System display in the Embedded Coder Quick Start tool for the CppClassWorkflowKeyIgnition model

  7. 在每个步骤中点击下一步以逐步执行快速向导的所有步骤。

    每个步骤都会询问有关您要生成的代码的问题。对于本教程,请使用默认设置。该工具根据模型验证您的选择,并显示生成代码所需的参数更改。

  8. 生成代码步骤中,点击下一步应用建议的更改并从 CppClassWorkflowKeyIgnition 生成代码。

  9. 点击完成,然后返回到 C++ 代码选项卡。

View of the CppClassWorkflowKeyIgnition model in Simulink. The toolstrip is at the top. The Simulink model is in the middle. The Code view pane is on the right.

检查生成的 C++ 代码

代码生成器将 CppClassWorkflowKeyIgnition 模型转换为 C++ 类,您可以从您的应用程序代码中访问该类。模型数据元素作为类成员出现。Simulink® 函数显示为类方法。

CppClassWorkflowKeyIgnition 模型合并了基于速率的建模和导出函数建模的元素。对于基于速率的建模,从应用程序代码中调用的入口函数类方法包括一个初始化方法、一个执行方法、一个终止方法和(可选)一个重置方法。为了与外部代码或接口要求集成,您可以自定义生成的类接口。

本教程中通过快速向导工具生成的代码将使用类元素的默认设置。C++ 类的默认名称是模型名称 CppClassWorkflowKeyIgnition

要检查为模型生成的 C++ 类信息,请执行下列步骤:

  1. 在 Simulink 编辑器窗口右侧的“代码视图”窗格中,找到搜索栏。

  2. 在搜索栏中,键入模型类名称 CppClassWorkflowKeyIgnition,在生成的代码中查找出该类名称的每个实例,然后点击突出显示的搜索建议。

    Use the search functionality in the Code view pane

  3. 使用搜索栏下方右侧的箭头逐一查看每个实例,包括 CppClassWorkflowKeyIgnition.h 中的类定义和 ert_main.cpp 中的类实例化。

    您还可以通过左上角的文件菜单查看每个文件中的搜索结果的数目。

    Use the search functionality in the Code view pane to view search hits in each file

  4. 审核数据和函数代码映射。

    在 Simulink 编辑器窗口中,点击代码生成,并选择代码映射以打开代码映射编辑器。

    View of the CppClassWorkflowKeyIgnition model in Simulink. The toolstrip is at the top. The Simulink model is in the middle. The Code Mappings pane is at the bottom. The Data tab in the Code Mappings pane is selected. The Code view pane is on the right.

  5. 点击数据选项卡,查看类成员的可见性和访问方法。

    Simulink 数据元素分为以下几个类别的建模元素:

    • 输入端口:模型的根级数据输入端口。

    • 输出端口:模型的根级数据输出端口。

    • 模型参数参量:作为实例(非静态)类数据成员出现的工作区变量。

    • 模型参数:在作为静态类数据成员生成的模型类的实例之间共享的工作区变量。

    • 信号、状态和内部数据:模型内部的数据元素,如模块输出信号、离散模块状态、数据存储和过零信号。

  6. 点击函数选项卡以查看类方法。

    生成的类方法是入口方法,也是代码中发生程序控制权转移的位置。

    View of the Code Mappings - Component Interface pane for the CppClassWorkflowKeyIgnition model in Simulink. The Functions tab in the Code Mappings pane is selected

    初始化类方法的默认名称是 initialize,执行(单步)方法的默认名称是 step0,终止方法的默认名称是 terminate

  7. 重复搜索步骤,以在生成的代码中找到类方法 initializestep0terminate

接下来,为代码生成配置自定义的类接口,并查看生成的代码。