По умолчанию генератор кода использует внутреннюю эвристику, чтобы определить, встроить ли сгенерированный код для функций состояния. Эвристика учитывает порог встраивания. Когда код растет и уменьшается в размере, сгенерированный код для функций состояния может быть непредсказуемым.
Если ваша модель включает объекты Stateflow®, и у вас есть строгие требования для трассируемости между сгенерированным кодом и соответствующими функциями состояния, можно заменить поведение по умолчанию. Используйте государственную собственность Function Inline Option
, чтобы явным образом обеспечить или предотвратить встраивание функций состояния.
Если вы обеспечиваете встраивание для состояния, генератор кода встраивает код для актов государственной власти в родительскую функцию. Родительская функция содержит код для выполнения актов государственной власти, внешних переходов и блок-схем. Это не включает код для пустых актов государственной власти.
Если вы предотвращаете встраивание для состояния, генератор кода производит эти статические функции для нечто состояния.
Функция | Описание |
---|---|
| Отмечает активный |
| Пути к значению по умолчанию вызовов. |
| Выполняет блок-схемы, которые происходят, когда внутренний переход и переход по умолчанию достигают того же соединения в состоянии. Генератор кода производит эту функцию только, когда блок-схема является достаточно комплексной, чтобы превысить порог встраивания. В сгенерированном коде программное обеспечение Stateflow вызывает эту функцию и от |
| Проверки на допустимые внешние переходы и если ни один, выполняют во время действий. |
| Выполняет выходные действия и отмечает неактивный |
| Выполняет выходные действия дочерних подсостояний и затем выходит |
Предположим, что следующий график находится в модели M
.
Если вы предотвращаете встраивание для A
состояния, генератор кода производит этот код.
static void M_inner_default_A(void); static void M_exit_atomic_A(void); static void M_A(void); static void M_enter_atomic_A(void); static void M_enter_internal_A(void);
Установить свойство встраивания функции для состояния:
Щелкните правой кнопкой в состоянии и, из контекстного меню, выберите Properties.
Диалоговое окно государственной собственности открывается.
В поле Function Inline Option выберите одну из этих опций.
Опция | Поведение |
---|---|
Inline | Встраивание сил функций состояния в родительскую функцию, пока функция не является частью рекурсии. Смотрите то, Что Происходит Когда Вы Встраивание Силы. |
Function | Предотвращает встраивание функций состояния. Генерирует до шести статических функций для состояния. Смотрите то, Что Происходит, Когда Вы Предотвращаете Встраивание. |
Auto | Использует внутреннюю эвристику, чтобы определить, встроить ли функции состояния. |
Нажмите Apply.
К | Функция множества встроенное свойство опции к |
---|---|
Сгенерируйте отдельную функцию для каждого действия состояния и отдельную функцию для каждого действия ее подсостояний | Function для состояния и каждого подсостояния |
Сгенерируйте отдельную функцию для каждого действия состояния, но включайте код для связанного действия его подсостояний | Function для состояния и Inline для каждого подсостояния |