主要内容

子系统功能的控制生成

什么是子系统功能?

子系统功能是代码生成器为模型中的子系统生成的功能。函数接口以及代码生成器如何包代码取决于子系统是虚拟子系统还是原子(非虚拟)子系统以及如何配置子系统块参数。有关更多信息,请参见子系统,原子子系统,代码重用子系统

控制子系统功能代码生成的选项

您可以以一种控制代码生成器如何从子系统生成代码的方式设计和配置模型。

看到
从选定的子系统生成内联代码。 内联子系统的代码
仅为一个子系统生成代码。 为各个子系统生成代码和可执行文件
生成不带参数的单独函数,并可选地将子系统代码放在单独的文件中。 作为单独的函数和文件生成子系统代码
为包含在模型中的多个位置的子系统生成单个可重入函数。 从子系统生成可重入代码
为包含在模型引用层次结构中的多个位置的子系统生成单个可重入函数。 从跨模型共享的库子系统生成可重用代码
为包含多个功能接口的可重用库子系统生成代码。 可重用库子系统的基于库的代码生成(嵌入式编码)

子系统功能的依赖

从子系统生成的代码可以完全独立于为模型生成的代码。当为一个子系统生成代码时,代码可以引用模型的全局数据结构,即使子系统功能代码在一个单独的文件中。每个子系统代码文件包含包括描述依赖关系的指令和注释。代码生成器检查循环文件依赖项,并在构建时警告它们。有关代码生成器如何包代码的说明,请参见管理构建过程文件依赖项

要生成独立于为父模型生成的代码的子系统功能代码,请将子系统放在库中,并将其配置为可重用的子系统,如文中所述从跨模型共享的库子系统生成可重用代码

如果你有一个嵌入式编码器®您可以为库生成代码,这些库由具有不同功能接口的可重用子系统组成。有关更多信息,请参见可重用库子系统的基于库的代码生成(嵌入式编码)

在生成代码中保留子系统边界

这个例子展示了如何保持虚拟子系统的边界。通过选择子系统参数当作原子单位,指示代码生成器为子系统构建代码,以便它作为一个原子单元执行。一旦将系统标记为原子,就可以通过设置block参数来指定代码生成器如何在代码中表示子系统代码生成功能打包.你可以指定代码生成器为子系统生成以下代码实现:

  • 内联:在调用位置内联子系统代码

  • 函数:在全局数据结构中具有I/O和内部数据的void/void函数

  • 可重用函数:数据作为函数参数的一部分传入的可重入函数

  • 自动:让Simuli金宝appnk编码器优化基于上下文的实现

1.生成代码和代码生成报告。

2.使用生成的报告来检查生成的源文件rtwdemo_atomic.c.为魔法石,第1章,代码生成器生成具有函数名的可重用函数代码myfun

金宝app如果选择参数,Simulink和Simulink Coder可以避免人工代数循环最小化代数循环的出现.有关最小化代数循金宝app环发生次数的信息,请参见Simulink文档。

示例模型

模型=“rtwdemo_atomic”;open_system(模型);

相关的话题