主要内容

生成内联子系统的代码

内联子系统的代码模型代码,配置一个nonvirtual子系统。在子系统块参数对话框,函数包装参数指定的格式子系统生成的代码。这个参数有这些设置:

  • 汽车

  • 内联

  • 那种一次性的功能

  • 可重用的功能

代码生成器可以生成内联代码汽车内联设置。内联设置指导代码生成器无条件内联子系统的代码。

默认的汽车设置引导代码生成器生成子系统基于最有效的代码的类型和数量的实例中存在的子系统模型。当只有一个实例的一个子系统,汽车设置内联子系统的代码。在嵌入式编码器®当有多个实例的一个子系统,不是太复杂,汽车为每个子系统设置内联的代码。否则,汽车设置生成函数的一个副本(作为一个可重用的功能)。函数调用子系统有多个电话,汽车设置生成子系统的代码是一致的那种一次性的功能设置。

配置子系统以内联代码

  1. 打开一个模型的一个子系统,如rtwdemo_atomic

    open_system (“rtwdemo_atomic”)

  2. 开放金宝app®编码器™或嵌入式编码器。

    如果您使用的是嵌入式编码的C代码选项卡上,单击视图代码打开代码视图编辑器。

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

  4. 在子系统参数对话框,确认治疗作为原子单元被选中。此选项使子系统nonvirtual。nonvirtual子系统时,函数包装选项是可用的代码生成选项卡。

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

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

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

  7. 从模型中生成代码。代码生成器内联子系统内部代码rtwdemo_atomic.c。可以通过系统和识别代码块识别标签,如:

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

例外内联

在某些情况下,代码生成器不内联nonvirtual子系统,即使你选择内联设置。

  • 如果一个noninlined s函数调用一个函数调用子系统,代码生成器忽略了内联设置。因为noninlined S-functions使用函数指针的函数调用,代码生成器必须生成一个函数与所有参数。

  • 在反馈回路包括函数调用子系统,代码生成器生成一个函数而不是内联代码的一个子系统。基于内部,顺序的子系统,子系统的代码生成器选择生成一个函数。

  • 如果一个函数,一个异步中断,或者一个任务同步块的选择SS_OPTION_FORCE_NONINLINED_FCNCALL设置为真正的调用一个子系统,代码生成器生成一个函数内联代码的子系统。VxWorks的®块库(vxlib1)包含用户定义的异步中断任务同步块。1

函数包装参数是禁用的金宝app仿真软件的功能块。

另请参阅


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