Main Content

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

使用 Simulink® Coder™ 快速向导工具,为代码生成准备模型 SecondOrderSystem,并生成符合 C89/C90 的 C 代码。然后,检查生成的代码。

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

快速向导工具根据您的目标和应用选择基本的代码生成设置。例如,快速向导工具使用代码生成所必需的定步长求解器来配置模型。

  1. 通过在命令行窗口中输入命令 openExample("SecondOrderSystem"),打开模型 SecondOrderSystem(如果尚未打开)。

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

  3. 打开 Simulink Coder 快速向导工具。在 C 代码选项卡上,点击快速向导

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

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

  6. 点击完成。在 Simulink 编辑器中,返回 C 代码选项卡。

检查生成的代码

代码生成器在当前工作文件夹中创建文件夹 SecondOrderSystem_grt_rtw,并将源代码文件放入该文件夹。生成的代码放在两个主文件中:SecondOrderSystem.cSecondOrderSystem.h。文件 SecondOrderSystem.c 包含算法代码,其中包括 ODE 求解器代码。通过包含 SecondOrderSystem.h,调用方可以访问模型数据和入口函数。SecondOrderSystem.h 文件包含模块输出、连续状态、模型输出、入口函数和时间数据的 extern 声明。

在当前文件夹中,代码生成器创建 slprj/grt/_sharedutils 文件夹。此文件夹包含 rtwtypes.h 文件,该文件定义生成的代码默认使用的标准数据类型。此同级文件夹包含可以或必须在多个模型之间共享的生成文件。

您从模型生成的代码包含入口函数,您可以从应用程序代码(如外部主程序)调用这些函数。对于基于速率的模型,这些函数包括初始化函数、执行函数以及可选的终止和重置函数。这些函数通过您控制的数据接口与应用程序代码交换数据。

  1. 打开代码生成报告。在 C 代码选项卡中,点击打开报告

  2. 打开代码接口报告部分。查看代码生成器为模型生成的入口函数。对于初始化、执行(单步)和终止函数,代码生成器使用以下名称:

    • SecondOrderSystem_initialize

    • SecondOrderSystem_step

    • SecondOrderSystem_terminate

    这些函数有 void-void 接口,这意味着它们不传递参量。这些函数通过共享数据结构体访问数据。此类数据的示例包括函数与应用程序代码交换的系统级输入和输出。

  3. 查看生成的代码中的入口函数。在代码生成报告的左窗格中,在代码下,点击文件名 SecondOrderSystem.c。使用搜索字段查找字符串 SecondOrderSystem_step 的实例。使用箭头步进每个实例。对头文件 SecondOrderSystem.h 执行同样的操作。然后,检查初始化和终止函数的代码。

您可以配置代码生成自定义,重新生成代码,并检查代码生成报告中的结果。

接下来,验证模型仿真结果是否匹配生成的可执行程序结果。