Help

Welcome!

This community is for professionals and enthusiasts of our products and services.
Share and discuss the best content and new marketing ideas, build your professional profile and become a better marketer together.

0

Matlab Simulink:使用 Embedded Coder Quick Start 生成代码

从 Simulink 模型中生成 C 代码中所述的模型 rtwdemo_roll 表示用于飞机的自动驾驶控制系统。您使用 Embedded Coder® Quick Start 为嵌入式代码生成准备 rtwdemo_roll,该模型根据您的目标和应用程序选择基本代码生成设置。

  1. 打开模型 rtwdemo_roll

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

  3. 打开 Quick Start 工具。在 Simulink® Editor 中,选择 Code > C/C++ Code > Embedded Coder Quick Start

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

  5. 在 Generate Code 步骤中,点击 Next 应用建议的更改并从 rtwdemo_roll 生成代码。

  6. 点击 Finish 关闭工具。

    该工具使模型处于 Simulink Editor 代码方式下。在此方式下,您可以配置代码生成自定义,然后在模型旁边的代码视图中检查结果是否正确。

在 Code Mapping Editor 中的 Entry-Point Functions 选项卡上,您可以看到代码生成器生成的各个入口函数。您可以从外部代码或您修改的生成主函数的版本调用这些生成的函数。如果需要,您可以更改函数的名称。对于基于速率的模型的基本速率单步函数和导出函数模型的单步函数,您可以自定义函数名称和参数。

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

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

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

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

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

  1. 在 Simulink Editor 代码方式右侧的代码视图窗格中,找到搜索栏。

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

  3. 使用右侧的箭头步进每个实例,包括 rtwdemo_roll.c 中的单步函数定义和 rtwdemo_roll.h 中的声明。单步函数有一个 void-void 接口,它不传递任何参数。您还可以通过左上角的文件菜单查看每个文件中的搜索命中数。

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

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

Avatar
Discard