子系统函数是代码生成器为模型中的子系统生成的函数。函数接口和代码生成器如何打包代码取决于子系统是虚拟子系统还是原子(非虚拟)子系统,以及如何配置子系统块参数。有关详细信息,请参阅子系统,原子子系统,代码复用子系统.
您可以通过控制代码生成器如何从子系统生成代码的方式来设计和配置模型。
到 | 看见 |
---|---|
从所选子系统生成内联代码。 | 生成内联子系统代码 |
仅为子系统生成代码。 | 为单个子系统生成代码和可执行文件 |
生成不带参数的单独函数,并可以选择将子系统代码放在单独的文件中。 | 将子系统代码作为单独的函数和文件生成 |
为包含在模型中多个位置的子系统生成单个可重入函数。 | 从子系统生成可重入代码 |
为包含在模型引用层次结构中多个位置的子系统生成单个可重入函数。 | 从跨模型共享的库子系统生成可重用代码 |
为包含多个函数接口的可重用库子系统生成代码。 | 基于库的可重用库子系统代码生成(嵌入式编码器) |
子系统生成的代码可以完全独立于为模型生成的代码。为子系统生成代码时,即使子系统功能代码位于单独的文件中,代码也可以引用模型的全局数据结构。每个子系统代码文件包含包括
描述依赖关系的指令和注释。代码生成器检查循环文件依赖关系,并在构建时发出警告。有关代码生成器如何包代码的描述,请参见管理生成过程文件依赖项.
要生成独立于为父模型生成的代码的子系统功能代码,请将子系统放在一个库中,并将其配置为可重用的子系统,如中所述从跨模型共享的库子系统生成可重用代码.
如果你有嵌入式编码器®许可证,您可以为由具有不同功能接口的可重用子系统组成的库生成代码。有关详细信息,请参阅基于库的可重用库子系统代码生成(嵌入式编码器).
此示例演示如何保留虚拟子系统的边界。通过选择子系统参数视为原子单位,指示代码生成器为子系统生成代码,使其作为原子单元执行。将系统标记为原子后,可以通过设置块参数指定代码生成器在代码中表示子系统的方式代码生成功能打包.你可以指定代码生成器为子系统生成以下代码实现:
内联:在调用站点内联子系统代码
函数:在全局数据结构中具有I/O和内部数据的void/void函数
可重用函数:可重入函数,数据作为函数参数的一部分传入
自动:让Simuli金宝appnk编码器根据上下文优化实现
1.生成代码和代码生成报告。
2.使用生成的报告检查生成的源文件rtwdemo_atomic.c
. 对于魔法石,第1章
,代码生成器生成具有函数名称的可重用函数代码我的乐趣
.
金宝app如果选择参数,Simulink和Simulink Coder可以避免人工代数循环最小化代数循环出现次数. 有关最小化代数循金宝app环出现的信息,请参阅Simulink文档。
示例模型
模型=“rtwdemo_原子”; 开放式系统(模型);