Main Content

Stateflow 模块生成 C 或 C++ 代码

要基于包含 Stateflow® 图的 Simulink® 模型生成 C 或 C++ 代码,您必须使用 Simulink Coder™。除了 Simulink Coder,您还可以使用 Embedded Coder® 使您的代码更易读、更紧凑、执行速度更快。

使用 Simulink Coder 生成代码

Simulink Coder 允许您基于包含 Stateflow 图的模型生成 C 和 C++ 代码。然后,您可以将生成的代码用于实时和非实时应用程序,包括:

  • 仿真加速

  • 快速原型

  • 硬件在环 (HIL) 测试

使用 Simulink Coder 还允许您访问加速和快速加速模式。加速模式的工作原理是先生成目标代码,然后再用代码来执行任务。有关这些模式的详细信息,请参阅加速模式的工作原理 (Simulink)

HIL 测试允许您测试控制器设计并确定物理系统模型是否有效。

有关详细信息,请参阅使用 Simulink Coder 生成代码 (Simulink Coder)

使用 Embedded Coder 生成代码

通过添加 Embedded Coder,您可以生成更紧凑、更易于阅读、运行速度更快的 C 或 C++ 代码。Embedded Coder 还允许对生成的函数、文件和数据进行控制,进而扩展了 SimulinkCoder 的功能。此外,Embedded Coder 能够轻松集成原有代码、数据类型和标定参数。Embedded Coder 支持 AUTOSAR、MISRA C 和 ASAP 2 软件标准。

Embedded Coder 还为特定硬件提供具有高级优化和设备驱动的支持包。

有关详细信息,请参阅使用 Embedded Coder 生成代码 (Embedded Coder)

优化为 Stateflow 生成的代码

有关优化从 Stateflow 对象生成的代码的设计提示,请参阅Design Techniques to Optimize Stateflow Objects for Code Generation (Embedded Coder)

为快速原型和生产部署生成代码

目标

Simulink Coder 文档

Embedded Coder 文档

生成 C/C++ 源代码

源代码生成 (Simulink Coder)

源代码生成 (Embedded Coder)

生成 C++ 源代码和编译可执行文件

生成代码编译 (Simulink Coder)

生成代码编译 (Embedded Coder)

集成外部代码

外部代码导入 (Simulink Coder)

外部代码导入 (Embedded Coder)

仅包含针对库图的外部代码(库图位于可移植、自包含的库中,可在多个模型中使用)

为库图集成外部代码 (Simulink Coder)

为库图集成外部代码 (Embedded Coder)

优化生成的代码

代码效率 (Simulink Coder)

代码效率 (Embedded Coder)

生成代码中 Stateflow 对象的可追溯性

可追溯性注释可用于:

  • 验证生成的代码。您可以标识与某行代码对应的 Stateflow 对象,并从您已查看或未查看的不同对象追踪代码。

  • 在为大型模型生成的代码中包含注释。您可以在生成的代码中标识对象,避免手动输入注释或说明。

要启用可追溯性注释,您必须拥有 Embedded Coder 或 HDL Coder™ 软件。有关详细信息,请参阅Trace Stateflow Elements in Generated Code (Embedded Coder)Navigate Between Simulink Model and HDL Code by Using Traceability (HDL Coder)

注意

如果其中一个数据使用别名类型并具有可变大小,则 Stateflow 模块不支持代码生成。此限制不适用于图级别的输入、输出或局部数据。有关定义可变大小数据的详细信息,请参阅Declare Variable-Size Data in Stateflow Charts

相关主题