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

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

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

  • If

  • Logic

  • Relational Operator

  • Switch

  • Switch Case

  • Compare to Constant

Примечание

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

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

  • DO-331, раздел MB.6.3.2.d - «Требования низкого уровня поддаются проверке»

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

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

Последнее изменениеR2018a
Пример

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

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

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

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

Stateflow® :