使用 Embedded Coder 快速向导生成 C++ 代码
使用 Embedded Coder® 快速向导工具为嵌入式代码生成准备 CppClassWorkflowKeyIgnition
模型。快速向导工具根据您的目标和应用选择基本的代码生成设置。
在本教程的此步骤中,您将为 CppClassWorkflowKeyIgnition
模型生成代码,然后检查生成的文件。CppClassWorkflowKeyIgnition
模型表示车辆的点火系统。
使用快速向导工具生成 C++ 代码
打开模型
CppClassWorkflowKeyIgnition
。openExample('CppClassWorkflowKeyIgnition.slx')
将模型的副本保存到 MATLAB 搜索路径中的一个可写位置。
如果 C++ 代码选项卡尚未打开,请在 App 选项卡的 App 库中,在代码生成下,点击 Embedded Coder。
在 C++ 代码选项卡上,点击设定并选择 C/C++ 代码生成设置。
“配置参数”对话框将打开。
在 “配置参数”对话框中,打开代码生成窗格,在目标选择下,验证语言参数是否设置为 C++。点击确定以关闭对话框。
在 C++ 代码选项卡上,点击快速向导。
在每个步骤中点击下一步以逐步执行快速向导的所有步骤。
每个步骤都会询问有关您要生成的代码的问题。对于本教程,请使用默认设置。该工具根据模型验证您的选择,并显示生成代码所需的参数更改。
在生成代码步骤中,点击下一步应用建议的更改并从
CppClassWorkflowKeyIgnition
生成代码。点击完成,然后返回到 C++ 代码选项卡。
检查生成的 C++ 代码
代码生成器将 CppClassWorkflowKeyIgnition
模型转换为 C++ 类,您可以从您的应用程序代码中访问该类。模型数据元素作为类成员出现。Simulink® 函数显示为类方法。
CppClassWorkflowKeyIgnition
模型合并了基于速率的建模和导出函数建模的元素。对于基于速率的建模,从应用程序代码中调用的入口函数类方法包括一个初始化方法、一个执行方法、一个终止方法和(可选)一个重置方法。为了与外部代码或接口要求集成,您可以自定义生成的类接口。
本教程中通过快速向导工具生成的代码将使用类元素的默认设置。C++ 类的默认名称是模型名称 CppClassWorkflowKeyIgnition
。
要检查为模型生成的 C++ 类信息,请执行下列步骤:
在 Simulink 编辑器窗口右侧的“代码视图”窗格中,找到搜索栏。
在搜索栏中,键入模型类名称
CppClassWorkflowKeyIgnition
,在生成的代码中查找出该类名称的每个实例,然后点击突出显示的搜索建议。使用搜索栏下方右侧的箭头逐一查看每个实例,包括
CppClassWorkflowKeyIgnition.h
中的类定义和ert_main.cpp
中的类实例化。您还可以通过左上角的文件菜单查看每个文件中的搜索结果的数目。
审核数据和函数代码映射。
在 Simulink 编辑器窗口中,点击代码生成,并选择代码映射以打开代码映射编辑器。
点击数据选项卡,查看类成员的可见性和访问方法。
Simulink 数据元素分为以下几个类别的建模元素:
输入端口:模型的根级数据输入端口。
输出端口:模型的根级数据输出端口。
模型参数参量:作为实例(非静态)类数据成员出现的工作区变量。
模型参数:在作为静态类数据成员生成的模型类的实例之间共享的工作区变量。
信号、状态和内部数据:模型内部的数据元素,如模块输出信号、离散模块状态、数据存储和过零信号。
点击函数选项卡以查看类方法。
生成的类方法是入口方法,也是代码中发生程序控制权转移的位置。
初始化类方法的默认名称是
initialize
,执行(单步)方法的默认名称是step0
,终止方法的默认名称是terminate
。重复搜索步骤,以在生成的代码中找到类方法
initialize
、step0
和terminate
。
接下来,为代码生成配置自定义的类接口,并查看生成的代码。