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

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

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

Для улучшения 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 + +, в то же время увеличьте вероятность генерации кода, который соответствует стандарту C:2012 MISRA.

Используйте блок 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: Проверяйте блоки, не рекомендованные для C:2012 MISRA (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) - Подмножество языков

  • МЭК 62304, 5.5.3 - Критерии приемки Модуля ПО

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

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

  • MISRA C: 2012

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

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

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

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

  • If

  • Logic

  • Relational Operator

  • Switch

  • Switch Case

  • Compare to Constant

Примечание

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

ОбъяснениеУлучшите MISRA C:2012 податливость сгенерированного кода.
Проверки Model AdvisorСоблюдение этого руководства по моделированию не может быть проверено с помощью проверки 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
Пример

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

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

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

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

Stateflow® :

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

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

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

  • Для циклов, созданных в Stateflow и MATLAB®.

  • For Iterator блоки.

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

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

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

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