Графические Факторы Stateflow

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
Последнее изменениеR2021a
Примеры

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

Правильный

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

Правильный

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

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

Идентификатор: Заголовокhisf_0065: Введите операции приведения в Stateflow, чтобы улучшить податливость кода
ОписаниеВ диаграммах Stateflow, которые используют язык действий C, используйте := обозначение для защиты от целого числа и вычислений с фиксированной точкой Stateflow к более широким типам данных, чем входные типы входных данных.
Примечание

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

ОбъяснениеЧтобы избежать неявных приведений в сгенерированном коде, которые могут нарушить стандарты кодирования.
Проверки Model AdvisorПроверяйте операции назначения в диаграммах Stateflow (Simulink Check)
Ссылки
  • 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
    MISRA C:2012, правило 12.2

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

hisf_0211: Защита от использования унарных операторов в диаграммах Stateflow для улучшения податливости кода

Идентификатор: Заголовокhisf_0211: Защита от использования унарных операторов в диаграммах Stateflow для улучшения податливости кода
ОписаниеДля улучшения податливости кода сгенерированного кода:
A

Не используйте унарные операторы минус на неподписанных типах данных.

Примечание

MATLAB® и языки действий C не ограничивают использование унарных минусовых операторов в беззнаковых выражениях.

ОбъяснениеУлучшите податливость кода сгенерированного кода.
Проверки 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

Последнее изменениеR2017b
Для просмотра документации необходимо авторизоваться на сайте