Main Content

替换从 Simulink 模型生成的代码

此示例说明如何使用代码替换库替换生成的代码。代码替换是指您可以用来更改代码生成器为函数和运算符生成的代码以满足应用程序代码要求的一种方法。例如,您可以替换生成的代码以满足以下要求:

  • 针对特定运行时环境的优化,包括(但不限于)特定目标硬件。

  • 与现有应用程序代码集成。

  • 符合某种标准,例如 AUTOSAR。

  • 修改代码行为,例如启用或禁用非有限或内联支持。

  • 应用程序或工程特定的代码要求,例如去除 math.h 和系统头文件,或调用 memcpymemset,或者使用 BLAS。

准备代码替换

1.确保在您的系统上安装了 MATLAB®、Simulink®、Simulink Coder™ 和 C 编译器。您的开发环境中某些代码替换库可能需要 Embedded Coder®。

要安装 MathWorks® 产品,请参阅 MATLAB 安装文档。如果您已安装 MATLAB 并想查看还安装了哪些其他 MathWorks 产品,请在命令行窗口中输入 ver

2.标识一个现有 Simulink 模型,或创建一个您要代码生成器替换其代码的模型。

选择代码替换库

默认情况下,代码生成器不应用代码替换库。您可以从 MathWorks® 提供的库以及使用 Embedded Coder® 产品创建和注册的库中进行选择。可用库的列表取决于:

  • 已安装的支持包。

  • 系统目标文件、语言、标准数学库和设备供应商配置。

  • 您是否使用 Embedded Coder® 产品创建并注册了库。

包含 GNU99 扩展的库旨在与 GCC 编译器结合使用。如果您将其中一个库与其他编译器结合使用,生成的代码可能无法编译。

根据您拥有的产品许可证,可能还有其他可用的库。如果您有 Embedded Coder 许可证,您可以查看和选择其他库,并且可以创建自定义代码替换库。

配置代码生成器以使用代码替换库

1.配置代码生成器,以便在模型的代码生成过程中应用代码替换库。执行以下操作之一:

  • 在 Configuration Parameters 对话框的 Code Generation > Interface 窗格中,为 Code replacement library 参数选择一个库。

  • 在命令行中或以编程方式设置 CodeReplacementLibrary 参数。

2.将代码生成器配置为仅生成代码(不编译可执行程序),以便您可以在编译可执行程序之前验证代码替换。执行以下操作之一:

  • 在 Configuration Parameters 对话框的 Code Generation 窗格中,选择 仅生成代码

  • 在命令行中或以编程方式设置 GenCodeOnly 参数。

在代码生成报告中包含代码替换信息

如果您有 Embedded Coder 许可证,您可以配置代码生成器,以便在代码生成报告中包含代码替换部分。这些附加信息可以帮助您验证代码替换。

1.配置代码生成器以生成报告。在 Configuration Parameters 对话框的 Code Generation > Report 窗格中,选择 Create code generation report。考虑自动打开报告。选择自动打开报告。

2.在报告中包含代码替换部分。选择 Summarize which blocks triggered code replacements

生成替换代码

从模型生成 C/C++ 代码,如果相应地配置了代码生成器,还会生成代码生成报告。例如,在模型窗口中,按 Ctrl+B

代码生成器生成代码并显示报告。

验证代码替换。

通过检查生成的代码来验证代码替换。代码替换的行为可能与您预期的不同。例如,您在代码生成器输入中观测到的数据类型可能与代码生成器在运算期间用作中间数据类型的数据类型不匹配。

有关详细信息