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

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

ID: Заголовок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) Безопасное программирование

  • 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, которые используют язык действия C, используйте := обозначение, чтобы защитить от Stateflow, бросая вычисления целочисленной и фиксированной точки к более широким типам данных, чем типы входных данных.
Примечание

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

ОбъяснениеИзбегать неявных бросков в сгенерированном коде, который может нарушить стандарты кодирования.
Проверки 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) Безопасное программирование

  • 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 не ограничивают использование операторов унарный минус по выражениям без знака.

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

  • 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, Обнаруживают Деление на нуль (Simulink Design Verifier), чтобы идентифицировать ошибки деления на нуль в модели.

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

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

ОбъяснениеA, B ,
CD
Улучшите податливость MISRA C:2012 сгенерированного кода
Проверки Model AdvisorСоблюдение этого руководства по моделированию не может быть проверено при помощи проверки Model Advisor.
Ссылки
  • MISRA C:2012, Dir 4.1

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

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

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