Блокируйте использование

hisl_0020: Блоки, не рекомендуемые для соответствия MISRA C:2012

ID: Заголовокhisl_0020: Блоки, не рекомендуемые для соответствия MISRA C:2012
Описание

Улучшить соответствие MISRA C:2012 сгенерированного кода:

A

Использование только блокирует ту генерацию кода поддержки, как зарегистрировано в Таблицу Simulink® Block Support.

BНе используйте блоки, которые перечислены как “Не рекомендуемый для производственного кода” в Таблице Поддержки блока Simulink.
C

Не используйте блоки Интерполяционной таблицы с помощью методов экстраполяции или интерполяции кубическим сплайном. Определенные блоки:

DНе используйте удержанные от использования блоки Интерполяционной таблицы. Блоками Интерполяционной таблицы устаревшими является Поиск и Lookup2D.
EНе используйте Разработчика S-функции блоки в модели или подсистеме.
FНе используйте От блоков Рабочей области в модели или подсистеме.
G

Не используйте эти блоки Строки в модели или подсистеме:

Примечания

Если вы следуете за этим и другими руководствами по моделированию, можно устранить образцовые построения, которые не подходят для генерации производственного кода C/C++, в то же время увеличивают вероятность генерации кода, который выполняет стандарт MISRA C:2012.

Выберите Simulink Help > Simulink > Block Data Types & Code Generation Support > All Tables, чтобы просмотреть таблицу поддержки блока.

Блоки со сноской (4) в Таблице Поддержки Блока классифицируются как “Не Рекомендуемый для производственного кода”.

ОбъяснениеA, B, C, D, E, F, GУлучшите качество и соответствие MISRA C:2012 сгенерированного кода.
Проверки Model Advisor

Проверять модель на условия A, B, C, D, E, F, и G:

  • By Task> Modeling Guidelines for MISRA C:2012> Code> Check for blocks not recommended for MISRA C:2012

  • By Task> Modeling Standards for DO-178C/DO-331> High-Integrity Systems> Code> Check for blocks not recommended for MISRA C:2012

  • By Task> Modeling Standards for IEC 61508> High-Integrity Systems> Code> Check for blocks not recommended for MISRA C:2012

  • By Task> Modeling Standards for IEC 62304> High-Integrity Systems> Code> Check for blocks not recommended for MISRA C:2012

  • By Task> Modeling Standards for EN 50128> High-Integrity Systems> Code> Check for blocks not recommended for MISRA C:2012

  • By Task> Modeling Standards for ISO 26262> High-Integrity Systems> Code> Check for blocks not recommended for MISRA C:2012

Для получения дополнительной информации проверки смотрите Проверку на блоки, не рекомендуемые для MISRA C:2012.

Проверять модель на условия A и B:

  • By Task> Modeling Guidelines for MISRA C:2012> Check for blocks not recommended for C/C++ production code deployment

  • By Task> Modeling Standards for DO-178C/DO-331> High-Integrity Systems> Simulink> Check for blocks not recommended for C/C++ production code deployment

  • By Task> Modeling Standards for IEC 61508> High-Integrity Systems> Simulink> Check for blocks not recommended for C/C++ production code deployment

  • By Task> Modeling Standards for IEC 62304> High-Integrity Systems> Simulink> Check for blocks not recommended for C/C++ production code deployment

  • By Task> Modeling Standards for EN 50128> High-Integrity Systems> Simulink> Check for blocks not recommended for C/C++ production code deployment

  • By Task> Modeling Standards for ISO 26262> High-Integrity Systems> Simulink> Check for blocks not recommended for C/C++ production code deployment

Для получения дополнительной информации проверки смотрите Проверку на блоки, не рекомендуемые для производственного развертывания C/C++ кода.

Ссылки
  • DO-331, Раздел MB.6.3.2.b ‘Низкоуровневые требования точен и сопоставим’
    DO-331, Раздел MB.6.3.2.e ‘Низкоуровневые требования соответствует стандартам
    DO-331, Раздел MB.6.3.4.d ‘Исходный код соответствует стандартам’

  • IEC 61508-3, Таблица A.3 (3) - Языковое подмножество

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

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

  • EN 50128, таблица A.4 (11) - языковое подмножество

  • MISRA C: 2012

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

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

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

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

  • Если

  • Логика

  • Оператор отношения

  • Переключатель

  • Переключите случай

  • Сравните с постоянным

Примечание

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

ОбъяснениеУлучшите соответствие MISRA C:2012 сгенерированного кода.
Ссылки
  • MISRA C:2012, правило 14.3

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

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

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

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

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

Составной объект: операции сравнения являются взаимоисключающими

Stateflow® :

hisl_0102: Тип данных контрольных переменных цикла, чтобы улучшить соответствие MISRA C:2012

ID: Заголовокhisl_0102: Тип данных контрольных переменных цикла, чтобы улучшить соответствие MISRA C:2012
Описание

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

ОбъяснениеУлучшите соответствие MISRA C:2012 сгенерированного кода.
Проверки Model Advisor
  • By Task> Modeling Standards for DO-178C/DO-331> High-Integrity Systems> Simulink> Check data type of loop control variables

  • By Task> Modeling Standards for IEC 61508> High-Integrity Systems> Simulink> Check data type of loop control variables

  • By Task> Modeling Standards for IEC 62304> High-Integrity Systems> Simulink> Check data type of loop control variables

  • By Task> Modeling Standards for EN 50128> High-Integrity Systems> Simulink> Check data type of loop control variables

  • By Task> Modeling Standards for ISO 26262> High-Integrity Systems> Simulink> Check data type of loop control variables

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

Ссылки
  • MISRA C:2012, правило 14.1

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