exponenta event banner

Использование блоков

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

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

Для улучшения MISRA C:2012 соответствия сформированного кода:

A

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

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

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

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

Не используйте следующие блоки String в модели или подсистеме:

Примечания

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

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

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

Для 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 «Исходный код соответствует стандартам»

  • МЭК 61508-3, Таблица A.3 (3) - Поднабор языка

  • МЭК 62304, 5.5.3 - Критерии приемки установки программного обеспечения

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

  • EN 50128, Таблица A.4 (11) - Поднабор языка

  • MISRA C: 2012

Последнее изменениеR2018b

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

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

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

  • Если

  • Логика

  • Реляционный оператор

  • Выключатель

  • Вариант переключения

  • Сравнить с константой

Примечание

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

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

  • DO-331, Раздел MB.6.3.2.d - «Требования низкого уровня поддаются проверке»

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

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

Последнее изменениеR2018a
Пример

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

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

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

Компаунд: Операции сравнения являются взаимоисключающими

Поток состояния ® :

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

Идентификатор: Заголовокhisl_0102: Тип данных переменных управления контуром для улучшения соответствия MISRA C:2012
Описание

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

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

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

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

Последнее изменениеR2018a