exponenta event banner

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

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

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

  • Если

  • Логика

  • Реляционный оператор

  • Выключатель

  • Вариант переключения

  • Сравнить с константой

Примечание

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

ОбъяснениеУлучшить MISRA C:2012 соответствие сформированного кода.
Проверки помощника по моделиСоблюдение этого руководства по моделированию невозможно проверить с помощью проверки 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
Пример

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

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

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

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

Поток состояния ® :