hisf_0064: Сдвиньте операции для данных Stateflow, чтобы улучшить податливость кода

Идентификатор: Заголовокhisf_0064: Операции сдвига для Stateflow® данные для улучшения податливости кода
ОписаниеЧтобы улучшить податливость кода сгенерированного кода операциям сдвига битов Stateflow, не выполняйте:
A

Операции правого сдвига, большие, чем ширина бита входного типа, или на отрицательное значение.

B

Операции со сдвигом влево, большие, чем ширина бита выходного типа, или на отрицательное значение.

Примечание

Если вы следуете этому и другим руководствам по моделированию, вы увеличиваете вероятность генерации кода, который соответствует стандартам кодирования.

ОбъяснениеЧтобы избежать операций сдвига в сгенерированном коде, которые могут быть нарушением стандарта кодирования.
Проверки Model AdvisorПроверяйте использование операций сдвига для данных Stateflow (Simulink Check)
Ссылки
  • DO-331 Раздел MB.6.3.1.b «Требования высокого уровня точны и согласованны»
    DO-331 Раздел MB.6.3.2.b 'Низкоуровневые требования точны и непротиворечивы'

  • IEC 61508-3, Таблица A.3 (2) Сильно типизированный язык программирования
    IEC 61508-3, Таблица A.4 (3) Оборонительное программирование

  • МЭК 62304, 5.5.3 - Критерии приемки Модуля ПО

  • ISO 26262-6, Таблица 1 (1b) Использование языковых подмножеств
    ISO 26262-6, таблица 1 (1с) Применение строгой типизации
    ISO 26262-6, Таблица 1 (1d) Использование защитных методов реализации

  • EN 50128, таблица A.4 (8) Сильно типизированный язык программирования
    EN 50128, таблица A.3 (1) Оборонительное программирование

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

Необходимые условияhisl_0060: Параметры конфигурации, улучшающие податливость C:2012 MISRA (Simulink)
Последнее изменениеR2021a
Примеры

Неправильный

Правильный

Выполните операции сдвига в пределах заданной области значений входа и выходных сигналов.

Правильный

Когда операции сдвига больше, чем ширина входных сигналов, выполните явное преобразование. Поскольку выход может содержать окончательное значение, преобразование препятствует записи выхода как 0 во время генерации кода.