对于使用 MicroC 概要文件在 IBM® Rational® Rhapsody® 中创建的 C 语言项目,可以使用一项功能更为高效地为目标微控制器生成状态图代码。
在本实现中,生成的状态图代码使用一种自顶向下算法来优化过渡处理。在 RAM、ROM 耗用量和代码大小方面都提高了效率。
为状态图生成优化型自顶向下代码的能力是通过 C_CG::Configuration::StatechartImplementation
属性激活的(必须将此属性设置为 OptimizedTopDown)。激活此功能后,请使用
C_CG::OptimizedTopDownStatechart
元类中的属性来控制状态图的自顶向下代码生成的优化。
优化
优化型自顶向下状态图功能包含详尽的代码文档以及各种由属性控制的代码优化。这些优化由
C_CG::OptimizedTopDownStatechart::AllowCodeOptimization 属性启用(必须将此属性设置为 Checked)。
对于代码文档,请使用 C_CG::OptimizedTopDownStatechart::AddCodeDocumentation 属性,此属性允许优化型自顶向下状态图代码包含状态中的状态图实现函数、状态过渡和静态反应的注解。
对于代码优化,请使用
C_CG::OptimizedTopDownStatechart 元类中的下列属性:
- ClutchEntranceToStateHierarchy - 设置为 Checked 将允许对优化型自顶向下状态图代码进行优化,以便尽可能进入状态层次结构中的最内部状态。
- EmptyOverlappingTestsForStateHierarchy - 设置为 Checked 将允许对优化型自顶向下状态图代码进行优化,以便在存在状态层次结构时跳过重叠的比较,以使控制权不会在未进入周围状态的情况下进入内部状态。
- InlineEnteringExitingReactions - 设置为 Checked 将允许对优化型自顶向下状态图代码进行优化以尝试直接插入状态的进入反应和退出反应,以避免生成进入和退出反应函数。
- InlineMaxTranstionsCriteria - 设置为一个数字以允许对优化型自顶向下状态图代码进行如下优化:在状态图代码末尾,存在一个小节来测试是否在当前步骤中进行了过渡。在测试是否需要执行另一个步骤时,将使用一个状态变量,该变量存储关于正在进入的状态的信息。如果选择此选项,那么将在过渡代码中直接插入用于标记需要另一步骤的代码,从而不需要使用状态变量。如果选择此选项,那么用户可以输入允许的最大过渡数目。如果实际过渡数大于此数目,那么将不执行优化。
- InlineRootStateDefaultTransitionTest - 设置为 Checked 将允许对优化型自顶向下状态图代码进行优化,以便将缺省过渡测试直接导入到其他过渡的测试中。
- MergeStateSequenceWithNoGuard - 设置为 Checked 将允许对优化型自顶向下状态图代码进行优化,以便尽可能将没有过渡警戒的状态序列合并为单一状态。