Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

使用 Embedded Coder 生成代码

代码生成技术

MathWorks® 代码生成技术为算法生成 C 或 C++ 代码和可执行程序。您可以通过使用 MATLAB® 以编程方式编写算法,或在 Simulink® 环境中以图形方式编写算法。您可以为 MATLAB 函数和 Simulink 模块生成对实时和嵌入式应用程序很有用的代码。为浮点算法生成的源代码和可执行程序与 MATLAB 代码执行和 Simulink 仿真的功能行为的匹配度非常高。使用 Fixed-Point Designer 产品,您可以生成与模型仿真结果按位匹配的定点代码。代码生成之所以能实现如此广泛的支持和高度的准确性,是因为它紧密集成了 MATLAB 和 Simulink 的执行引擎和仿真引擎。Simulink 中内置的加速仿真模式就使用了代码生成技术。

代码生成技术及其相关产品还提供了一些工具,可供您在系统开发的 V 模型中应用。V 模型是系统开发的一种图形表现形式,它突出了开发过程中的验证和确认步骤。有关详细信息,请参阅系统开发的确认和验证

要了解包含 Simulink 模块、Stateflow® 图和 MATLAB 函数的模型设计模式以及与常用 C 结构之间的映射关系,请参阅 C 代码的建模模式

使用 Embedded Coder 的代码生成工作流

Embedded Coder® 产品是对 MATLAB Coder™Simulink Coder 产品的扩展,它提供了可用于嵌入式软件开发的功能。使用 Embedded Coder 产品,您可以生成具有人工代码清晰度和效率的代码。例如,您可以:

  • 生成紧凑、快速的代码,这对实时仿真器、快速原型构建板、大规模生产中使用的微处理器以及嵌入式系统至关重要。

  • 自定义生成的代码的外观。

  • 针对特定的目标环境优化生成的代码。

  • 集成现有应用程序、函数和数据。

  • 利用有助于进行代码验证的追溯、报告和测试选项。

代码生成器支持按照两种工作流来设计、实现和验证生成的 C 或 C++ 代码。下图显示了设计和部署环境选项。

支持代码生成的其他产品(如 Stateflow 软件)已可用。

要使用 MATLAB 代码开发算法以用于代码生成,请参阅从 MATLAB 代码中生成代码

要在 Simulink 模型中以 Simulink 模块和 Stateflow 图的形式实现算法并生成 C 或 C++ 代码,请参阅从 Simulink 模型中生成代码

从 MATLAB 代码中生成代码

使用 Embedded Coder 从 MATLAB 代码中生成代码的工作流需要以下产品:

  • MATLAB

  • MATLAB Coder

  • Embedded Coder

MATLAB Coder 支持部分核心 MATLAB 语言功能,包括程序控制构造、函数和矩阵运算。要生成 C 或 C++ 代码,您可以使用 MATLAB Coder 工程或者在 MATLAB 命令行窗口中输入函数 codegen。Embedded Coder 还提供其他一些选项和高级优化功能,可对生成的代码中的函数、文件和数据进行细粒度控制。有关这些选项和优化功能的详细信息,请参阅从 MATLAB 代码中生成代码的 Embedded Coder 功能

有关从 MATLAB 代码中生成代码的详细信息,请参阅代码生成工作流

要开始使用 Embedded Coder 从 MATLAB 代码中生成代码,请参阅从 MATLAB 代码中生成代码的 Embedded Coder 功能

从 Simulink 模型中生成代码

使用 Embedded Coder 从 Simulink 模型中生成代码的工作流需要以下产品:

  • MATLAB

  • MATLAB Coder

  • Simulink

  • Simulink Coder

  • Embedded Coder

您可以在 Simulink 模型中通过 Simulink 模块和 Stateflow 图的形式实现各种算法。要从 Simulink 模型中生成 C 或 C++ 代码,可以利用 Embedded Coder 提供的功能实现、配置和验证模型以进行代码生成。

如果您拥有使用 MATLAB 代码编写的算法,则可以使用 MATLAB Function 模块将 MATLAB 代码包含在 Simulink 模型或子系统中。当您为 Simulink 模型生成 C 或 C++ 代码时,MATLAB Function 模块中的 MATLAB 代码会生成为 C 或 C++ 代码,并包含在生成的源代码中。

要开始使用 Embedded Coder 从 Simulink 模型中生成代码,请参阅从 Simulink 模型中生成 C 代码

要了解如何使用 Simulink 模块、Stateflow 图和 MATLAB 函数为常用的 C 构造建模和生成代码,请参阅C 代码的建模模式