hisl_0101: Избегайте инвариантных операций сравнения, чтобы улучшить податливость MISRA C:2012

ID: Заголовокhisl_0101: Избегайте инвариантных операций сравнения, чтобы улучшить податливость MISRA C:2012
Описание

Чтобы улучшить податливость MISRA C:2012 сгенерированного кода, избегайте операций сравнения инвариантными результатами. Операции сравнения выполняются следующими блоками:

  • If

  • Logic

  • Relational Operator

  • Switch

  • Switch Case

  • Compare to Constant

Примечание

Можно использовать функциональность поиска ошибок проектирования в Simulink® Design Verifier™, чтобы выполнить анализ. Для получения дополнительной информации смотрите Обнаружение Мертвой логики (Simulink Design Verifier). Если у вас есть лицензия Simulink Design Verifier, можно использовать проверку Model Advisor, Обнаруживают Мертвую логику (Simulink Design Verifier).

ОбъяснениеУлучшите податливость MISRA C:2012 сгенерированного кода.
Проверки Model AdvisorСоблюдение этого руководства по моделированию не может быть проверено при помощи проверки Model Advisor.
Ссылки
  • ISO 26262-6, Таблица 6 (1 ч) – Никакой скрытый поток данных или поток управления

  • DO-331, Раздел MB.6.3.2.d – ‘Низкоуровневые требования поддается проверке’

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

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

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

Инвариантные сравнения могут произойти в простых или составных операциях сравнения. В составных операциях сравнения отдельные компоненты могут быть переменными, когда полное вычисление является инвариантным.

Простой: uint8 всегда больше или равен 0.

Простой: uint8 не может иметь значения, больше, чем 256

Составной объект: операции сравнения являются взаимоисключающими

Stateflow® :