Main Content

使用 Embedded Coder 生成代码

代码生成技术

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

当在 Simulink 环境中设计组件或完整应用程序时,您可以使用 Simulink Coder™ 或 Embedded Coder® 从您的模型中生成代码。

  • 使用 Simulink Coder 为实时和非实时应用的快速原型构建和硬件在环 (HIL) 测试生成代码。您可以通过使用 Simulink 调整和监测生成的代码,或在 MATLAB 和 Simulink 之外运行代码以及与代码交互。

  • 使用 Embedded Coder 为在生产中使用的嵌入式处理器生成可读、简洁、执行速度快的 C 或 C++ 代码。您可以应用自定义来控制所生成代码的效率和外观。例如,您可以通过配置数据和函数代码接口以及如何将代码打包到文件中来简化集成。Embedded Coder 提供用于调节参数、分析代码性能、测试数值等效性以及执行代码覆盖率和可追溯性分析的工具。

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

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

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

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

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

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

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

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

您可以设计、实现和验证从 Simulink 模型或 MATLAB 代码生成的 C 或 C++ 代码。

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

从 Simulink 模型中生成代码

要使用 Embedded Coder 从 Simulink 模型中生成 C 或 C++ 代码,您需要以下产品:

  • MATLAB

  • MATLAB Coder

  • Simulink

  • Simulink Coder

  • Embedded Coder

您可以在 Simulink 模型中将算法实现为 Simulink 模块和 Stateflow 图。Embedded Coder 提供用于为 C 或 C++ 代码生成设计、配置和验证模型的功能。

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

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

从 MATLAB 代码中生成代码

要使用 Embedded Coder 从 MATLAB 代码生成 C 或 C++ 代码,您需要以下产品:

  • 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 功能