Факторы диаграммы Stateflow

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

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

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

B

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

Примечание

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

ОбъяснениеA, B Избегать операций сдвига в сгенерированном коде, который может быть кодирующим стандартным нарушением.
Проверки Model Advisor
  • By Task> Modeling Standards for DO-178C/DO-331> High-Integrity Systems> Stateflow> Check usage of shift operations for Stateflow data

  • By Task> Modeling Standards for IEC 61508> High-Integrity Systems> Stateflow> Check usage of shift operations for Stateflow data

  • By Task> Modeling Standards for IEC 62304> High-Integrity Systems> Stateflow> Check usage of shift operations for Stateflow data

  • By Task> Modeling Standards for EN 50128> High-Integrity Systems> Stateflow> Check usage of shift operations for Stateflow data

  • By Task> Modeling Standards for ISO 26262> High-Integrity Systems> Stateflow> Check usage of shift operations for Stateflow data

Для получения дополнительной информации проверки смотрите использование Проверки операций сдвига для данных Stateflow.

Ссылки
  • Раздел 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) Безопасное программирование

  • IEC 62304, 5.5.3 - критерии допустимости Программного блока

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

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

Предпосылкиhisl_0060: Параметры конфигурации, которые улучшают соответствие MISRA C:2012
В последний раз измененныйR2017b

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

ID: Заголовокhisf_0065: Введите операции броска в Stateflow, чтобы улучшить соответствие кода
ОписаниеЧтобы улучшить соответствие кода сгенерированного кода, защитите от Stateflow, бросив вычисления целочисленной и фиксированной точки к более широким типам данных, чем типы входных данных:
A

Используя: = обозначение в диаграммах Stateflow, которые используют язык действия C

Примечание

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

ОбъяснениеAИзбегать неявных бросков в сгенерированном коде, который может быть нарушением стандартов кодирования.
Проверки Model Advisor
  • By Task> Modeling Standards for DO-178C/DO-331> High-Integrity Systems> Stateflow> Check assignment operations in Stateflow Charts

  • By Task> Modeling Standards for IEC 61508> High-Integrity Systems> Stateflow> Check assignment operations in Stateflow Charts

  • By Task> Modeling Standards for IEC 62304> High-Integrity Systems> Stateflow> Check assignment operations in Stateflow Charts

  • By Task> Modeling Standards for EN 50128> High-Integrity Systems> Stateflow> Check assignment operations in Stateflow Charts

  • By Task> Modeling Standards for ISO 26262> High-Integrity Systems> Stateflow> Check assignment operations in Stateflow Charts

Для получения дополнительной информации проверки смотрите операции присвоения Проверки в диаграммах Stateflow.

Ссылки
  • Раздел 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) Безопасное программирование

  • IEC 62304, 5.5.3 - критерии допустимости Программного блока

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

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

Предпосылкиhisl_0060: Параметры конфигурации, которые улучшают соответствие MISRA C:2012
В последний раз измененныйR2017b

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

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

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

Примечание

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

ОбъяснениеAУлучшите соответствие кода сгенерированного кода.
Проверки Model Advisor
  • By Task> Modeling Standards for DO-178C/DO-331> High-Integrity Systems> Stateflow> Check Stateflow charts for unary operators

  • By Task> Modeling Standards for IEC 61508> High-Integrity Systems> Stateflow> Check Stateflow charts for unary operators

  • By Task> Modeling Standards for IEC 62304> High-Integrity Systems> Stateflow> Check Stateflow charts for unary operators

  • By Task> Modeling Standards for EN 50128> High-Integrity Systems> Stateflow> Check Stateflow charts for unary operators

  • By Task> Modeling Standards for ISO 26262> High-Integrity Systems> Stateflow> Check Stateflow charts for unary operators

Для получения дополнительной информации проверки смотрите диаграммы Stateflow Проверки для унарных операторов.

Ссылки
  • Раздел 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) Безопасное программирование

  • IEC 62304, 5.5.3 - критерии допустимости Программного блока

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

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

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

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

hisf_0213: Защитите от вычислений деления на нуль в диаграммах Stateflow, чтобы улучшить соответствие MISRA C:2012

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

Выполните статический анализ модели, чтобы доказать, что деление на нуль не возможно

B

Обеспечьте ошибку времени выполнения, регистрируясь в сгенерированном коде C путем явного моделирования проверки ошибок в Stateflow

C

Измените процесс генерации кода, пользующийся Заменяющими Библиотеками Кода (CRLs), чтобы защитить от деления на нуль

D

Для основанных на целом числе операций очистите параметр конфигурации Remove code that protects against division arithmetic exceptions

Примечание

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

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

Если статический анализ решает, что разделы кода могут иметь деление на нуль, то добавьте защиту во время выполнения в тот раздел модели (см. пример). Используя измененный CRL или выбор параметра Remove code that protects against division arithmetic exceptions защищает операции деления от операций деления на нуль. Однако это действие действительно вводит дополнительный вычислительный и память наверху.

Используйте только одну из мер защиты во время выполнения (B, C или D) в модели. Используя больше чем одну опцию может привести к избыточным операциям защиты.

ОбъяснениеA, B ,
CD
Улучшите соответствие MISRA C:2012 сгенерированного кода
Ссылки
  • MISRA C:2012, Dir 4.1

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

Деление во время выполнения нулевой защитой может быть понято с помощью графической функции. Уникальные функции должны быть обеспечены для каждого типа данных.