主要内容

内联态函数生成的代码

内联为状态函数所生成的代码

默认情况下,代码生成器使用一个内部启发式来确定是否内联为状态函数所生成的代码。启发式考虑一个内联阈值。随着代码的增长和收缩的大小,为状态函数所生成的代码都是不可预知的。

如果你的模型包括Stateflow®对象和生成的代码之间的可溯性有严格的要求和相应的状态函数,您可以覆盖默认行为。使用国有资产内联函数的选择显式地力量或防止内联的函数。

当你力内联

如果你强迫内联状态,代码生成器为国家行动到父函数内联代码。父函数包含代码执行国家行动,外转换和流程图。它不包括代码为空的状态的行为。

当你阻止内联

如果你避免内联状态,状态的代码生成器产生这些静态函数喷火

函数 描述

enter_atomic_喷火

标志着喷火积极行动并执行条目。

enter_internal_喷火

调用默认路径。

inner_default_喷火

执行流程图时,产生一种内在的过渡和默认转换达到相同的连接在一个状态。

代码生成器产生这个函数只有当流程图足够复杂超过内联阈值。

在生成的代码中,Stateflow软件调用这个函数的enter_internal_喷火喷火功能。

喷火

检查有效外转换,如果没有操作期间执行。

exit_atomic_喷火

执行退出行为和标志喷火不活跃的。

exit_internal_喷火

执行退出行为的孩子亚态,然后退出喷火

在模型假设下面的图表

如果你避免内联状态一个这段代码,代码生成器生成。

静态孔隙M_inner_default_A(无效);静态孔隙M_exit_atomic_A(无效);静态孔隙M_A(无效);静态孔隙M_enter_atomic_A(无效);静态孔隙M_enter_internal_A(无效);

如何设置状态函数内联选择吗

为一个国家设置内联函数属性:

  1. 右键单击在州和内部,从上下文菜单中,选择属性

    状态属性对话框打开。

  2. 对财产内联函数的选择,选择其中一个值。

    价值 行为
    内联 部队的内联函数在父函数,只要不属于一个递归的函数。看到当你力内联
    函数 防止内联的函数。生成6个静态函数的状态。看到当你阻止内联
    汽车 使用内部启发式来确定是否内联函数。
  3. 点击应用

控制状态函数内联的最佳实践

集函数内联选择属性
为每个操作生成一个单独的功能状态和一个单独的函数为每个亚态的行动 函数为国家和每个亚态
生成一个单独的函数为每个动作的状态,但亚态包括代码相关的行动 函数为国家和内联每个亚态