文档

内联子系统的代码

您可以配置一个nonvirtual子系统模型代码内联子系统的代码。在子系统参数对话框中,设置函数包装参数汽车内联内联子系统生成的代码。

汽车选项是默认的。当只有一个实例的一个子系统模型汽车选择内联子系统的代码。一个子系统存在的多个实例时,汽车选择的结果在一个函数的副本(作为一个可重用的功能)。对于函数调用子系统与多个电话,如果你指定子系统代码生成那种一次性的功能

内联子系统代码,选择内联。的内联选择明确指导代码生成器内联无条件子系统。

配置子系统以内联代码

为内联配置子系统:

  1. 右键单击子系统块。从上下文菜单中,选择块参数(子系统)

  2. 在子系统参数对话框,如果虚拟子系统,选择治疗作为原子单元。此选项使子系统nonvirtual。在代码生成选项卡,函数包装现在选择是可用的。

    如果系统已经nonvirtual,函数包装选项已经被选中。

  3. 单击代码生成选项卡并选择汽车内联函数包装参数。

  4. 点击应用并关闭对话框。

    子系统的边界变稠,这表明nonvirtual。

当你从模型生成代码,代码生成器内联子系统内部代码模型。c模型. cpp(或其母公司系统的源文件)。可以通过系统/识别代码块识别标签,如:

/ *原子子系统:< Root > / AtomicSubsys1 * /

例外内联

在某些情况下,代码生成器不内联nonvirtual子系统,虽然内联选项被选中。

  • 如果子系统由noninlined调用的函数调用子系统功能,内联选择将被忽略。通过使用函数指针Noninlined S-functions打电话。因此,函数调用子系统必须生成一个函数与所有参数。

  • 在反馈回路包括函数调用子系统,代码生成器生成力量的一个子系统作为而非内联函数。基于子系统内部排序的顺序,选择的软件子系统生成函数。

  • 如果一个子系统被称为一个功能块的设置选项SS_OPTION_FORCE_NONINLINED_FCNCALL真正的,这不是内联。当用户定义异步中断块或任务同步块,这个结果可能发生。等块必须生成功能。这些街区位于vxlib1块库并使用SS_OPTION_FORCE_NONINLINED_FCNCALL选择。这个图书馆展示了与一个例子RTOS (VxWorks的集成®)。(1]

请注意

您可以使用的块vxlib1库(异步中断任务同步)模拟和代码生成。这些模块提供了起点的例子来帮助你开发自定义块目标环境。


(1]VxWorks是风河系统公司的注册商标®系统公司。

这个主题有帮助吗?