hisf_0004: Использование рекурсивного поведения

ID: Заголовокhisf_0004: Использование рекурсивного поведения
Описание

Чтобы поддержать поведение вызова ограниченной функции, избегайте использования шаблонов разработки, которые включают неограниченное рекурсивное поведение. Рекурсивное поведение связано, если вы делаете следующее:

AИспользуйте явное условие завершения, которое локально для рекурсивного вызова.
BУбедитесь, что условие завершения достигнуто.
Примечания

Это правило только применяется, если график является классическим графиком Stateflow®. Если Мучнистый и семантика Мура сопровождаются, рекурсивное поведение предотвращено из-за ограничений в семантике графика. Чтобы обнаружить ошибку во время симуляции графика, откройте свою диаграмму Stateflow и, во вкладке Debug, выберите Diagnostics> Detect Cyclical Behavior.

ОбъяснениеA, B Способствуйте поведению вызова ограниченной функции.
Проверки Model AdvisorСоблюдение этого руководства по моделированию не может быть проверено при помощи проверки Model Advisor.
Ссылки
  • IEC 61508-3, Таблица B.1 (6) 'Ограничила использование рекурсии'

  • IEC 62304, 5.5.3 - критерии допустимости Программного блока

  • ISO 26262-6, Таблица 6 (1j) 'Никакие рекурсии'

  • EN 50128, таблица A.12 (6) 'Ограничила использование рекурсии'

  • DO-331, Раздел MB.6.3.1.b 'Требования высокого уровня точен и сопоставим'
    DO-331, Раздел MB.6.3.1.e 'Требования высокого уровня соответствует стандартам
    DO-331, Раздел MB.6.3.1.g 'Алгоритмы точен'
    DO-331, Раздел MB.6.3.2.b 'Низкоуровневые требования точен и сопоставим'
    DO-331, Раздел MB.6.3.2.e 'Низкоуровневые требования соответствует стандартам
    DO-331, Раздел MB.6.3.2.g 'Алгоритмы точен'

  • MISRA C:2012, правило 17.2

В последний раз измененныйR2016a
Примеры

Существует несколько шаблонов в Stateflow, который может привести к неограниченной рекурсии.

Вызовы рекурсивной функции

Когда состояние по умолчанию A вводится, событие Evn широковещательно передается в действии записи A. Evn результаты в рекурсивном вызове алгоритма интерпретации. Поскольку A активен, исходящий переход A тестируется. Начиная с текущего события Evn совпадает с событием перехода (и из-за отсутствия условия), действие условия выполняется, широковещательно передавая Evn снова. Это приводит к новому вызову алгоритма интерпретации, который повторяет ту же последовательность шагов до переполнения стека.

Вызовы рекурсивной функции