使用 Simulink Coder 快速向导工具生成 C 代码
使用 Simulink® Coder™ 快速向导工具,为代码生成准备模型 SecondOrderSystem
,并生成符合 C89/C90 的 C 代码。然后,检查生成的代码。
使用快速向导工具生成代码
快速向导工具根据您的目标和应用选择基本的代码生成设置。例如,快速向导工具使用代码生成所必需的定步长求解器来配置模型。
通过在命令行窗口中输入命令
openExample("SecondOrderSystem")
,打开模型SecondOrderSystem
(如果尚未打开)。如果 C 代码选项卡尚未打开,请在 App 库中的代码生成下,点击 Simulink Coder。
打开 Simulink Coder 快速向导工具。在 C 代码选项卡上,点击快速向导。
逐步执行快速向导工具的各个步骤。每个步骤都会询问有关您要生成的代码的问题。对于本教程,请使用默认设置。该工具根据模型验证您的选择,并显示生成代码所需的参数更改。
在生成代码步骤中,点击下一步应用建议的更改并从模型生成代码。
点击完成。在 Simulink 编辑器中,返回 C 代码选项卡。
检查生成的代码
代码生成器在当前工作文件夹中创建文件夹 SecondOrderSystem_grt_rtw
,并将源代码文件放入该文件夹。生成的代码放在两个主文件中:SecondOrderSystem.c
和 SecondOrderSystem.h
。文件 SecondOrderSystem.c
包含算法代码,其中包括 ODE 求解器代码。通过包含 SecondOrderSystem.h
,调用方可以访问模型数据和入口函数。SecondOrderSystem.h
文件包含模块输出、连续状态、模型输出、入口函数和时间数据的 extern
声明。
在当前文件夹中,代码生成器创建 slprj/grt/_sharedutils
文件夹。此文件夹包含 rtwtypes.h
文件,该文件定义生成的代码默认使用的标准数据类型。此同级文件夹包含可以或必须在多个模型之间共享的生成文件。
您从模型生成的代码包含入口函数,您可以从应用程序代码(如外部主程序)调用这些函数。对于基于速率的模型,这些函数包括初始化函数、执行函数以及可选的终止和重置函数。这些函数通过您控制的数据接口与应用程序代码交换数据。
打开代码生成报告。在 C 代码选项卡中,点击打开报告。
打开代码接口报告部分。查看代码生成器为模型生成的入口函数。对于初始化、执行(单步)和终止函数,代码生成器使用以下名称:
SecondOrderSystem_initialize
SecondOrderSystem_step
SecondOrderSystem_terminate
这些函数有
void-void
接口,这意味着它们不传递参量。这些函数通过共享数据结构体访问数据。此类数据的示例包括函数与应用程序代码交换的系统级输入和输出。查看生成的代码中的入口函数。在代码生成报告的左窗格中,在代码下,点击文件名
SecondOrderSystem.c
。使用搜索字段查找字符串SecondOrderSystem_step
的实例。使用箭头步进每个实例。对头文件SecondOrderSystem.h
执行同样的操作。然后,检查初始化和终止函数的代码。
您可以配置代码生成自定义,重新生成代码,并检查代码生成报告中的结果。
接下来,验证模型仿真结果是否匹配生成的可执行程序结果。