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

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

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

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

A

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

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

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

DНе используйте удержал от использования блоки Lookup Table. Блоками Интерполяционной таблицы устаревшими является Lookup и Lookup2D.
EНе используйте блоки S-Function Builder в модели или подсистеме.
FНе используйте блоки From Workspace в модели или подсистеме.
G

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

Примечания

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

Используйте блок Block Support Table, чтобы просмотреть Block Support Table. Блоки со сноской (4) в Block Support Table классифицируются как "Не рекомендуемый для производственного кода".

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

Для A, B, C, D, E, F, и G: Проверяйте на блоки, не рекомендуемые для MISRA C:2012 (Simulink Check)

Для A и B: Проверяйте на блоки, не рекомендуемые для производственного развертывания C/C++ кода (Simulink Check)

Ссылки
  • 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 сгенерированного кода, избегайте операций сравнения инвариантными результатами. Операции сравнения выполняются следующими блоками:

  • If

  • Logic

  • Relational Operator

  • Switch

  • Switch Case

  • Compare to Constant

Примечание

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

ОбъяснениеУлучшите податливость MISRA C:2012 сгенерированного кода.
Проверки Model AdvisorСоблюдение этого руководства по моделированию не может быть проверено при помощи проверки Model Advisor.
Ссылки
  • ISO 26262-6, Таблица 6 (1 ч) – Никакой скрытый поток данных или поток управления

  • DO-331, Раздел MB.6.3.2.d – ‘Низкоуровневые требования поддается проверке’

  • 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 сгенерированного кода, используйте целочисленный тип данных для переменных, которые используются в качестве переменных счетчика управления циклом в:

  • Циклы for создаются в Stateflow и MATLAB®.

  • Блоки For Iterator.

ОбъяснениеУлучшите податливость MISRA C:2012 сгенерированного кода.
Проверки Model AdvisorПроверяйте тип данных контрольных переменных цикла (Simulink Check)
Ссылки
  • ISO 26262-6, Таблица 1 (1c) - Осуществление строгого контроля типов

  • DO-331, Раздел MB.6.3.2.g – 'Алгоритмы точен'

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

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