Main Content

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

模型 RollAxisAutopilot 表示飞机的自动驾驶控制系统。您使用 Embedded Coder® 快速向导为嵌入式代码生成准备 RollAxisAutopilot,该模型根据您的目标和应用程序选择基本代码生成设置。

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

  1. 通过键入以下命令打开模型 RollAxisAutopilot

    openExample('ecoder/GenerateCCodeFromSimulinkModelsExample')
    

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

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

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

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

    “代码生成完成”页显示可能的后续步骤,并通知您该工具配置了应用数据代码接口的代码生成模型。数据接口配置将模型数据元素映射到存储类,这些存储类指定数据元素在生成代码中的外观和位置。为导出函数或基于速率的模型生成代码时,您可以选择将模型配置为使用服务代码接口。使用服务接口的好处包括:

    • 通过自定义来满足目标平台服务接口要求

    • 通过代码维护数据一致性

    • 可通过入口函数访问目标平台提供的时间值

    有关配置模型以使用服务代码接口配置的示例,请参阅Deploy Export-Function Component Configured for C Service Interface Code GenerationDeploy Single-Rate, Rate-Based Component Configured for C Service Interface Code Generation

  6. 点击完成

  7. 返回到 C 代码选项卡。在该选项卡中,您可以配置代码生成自定义,然后在模型旁边的代码视图中检查结果。

检查生成的代码

生成的代码出现在两个主文件中:RollAxisAutopilot.cRollAxisAutopilot.h。在您的 MATLAB® 当前文件夹中,RollAxisAutopilot_ert_rtw 文件夹包含这些主文件。

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

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

点击模型图下方的代码映射 - 组件接口打开代码映射编辑器。在函数选项卡上,您可以看到代码生成器生成的各个入口函数。您可以从外部代码或您修改的生成主函数的版本调用这些生成的函数。对于基于速率的模型的基本速率单步函数和导出函数模型的单步函数,您可以自定义函数名称和参量。

查看代码生成器为模型生成的入口函数的列表。使用此视图有选择地为每个函数指定一个函数自定义模板(代码定义)和名称。对于本教程,代码生成器使用自定义模板和入口函数名称的默认(附带)设置。代码生成器会为初始化函数 RollAxisAutopilot_initialize 和执行(单步)函数 RollAxisAutopilot_step 命名。两个入口函数都有 void-void 接口(它们不传递参量)。这些函数通过共享数据结构体访问数据。此类数据的示例包括函数与应用程序代码交换的系统级输入和输出。

要在生成的代码中查看这些入口函数,请执行下列操作:

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

  2. 在搜索栏中,键入 RollAxisAutopilot_step。要在生成的代码文件中查找单步函数名称的每个实例,请点击搜索建议。

  3. 使用右侧的箭头步进每个实例,包括 RollAxisAutopilot.c 中的单步函数定义和 RollAxisAutopilot.h 中的声明。您还可以通过左上角的文件菜单查看每个文件中的搜索命中数。

  4. 重复这些搜索步骤,以在生成的代码中找到初始化函数 RollAxisAutopilot_initialize

接下来,为代码生成配置数据接口并查看生成的代码。