hisl_0029: Использование блоков назначения

Идентификатор: Заголовокhisl_0029: Использование блоков назначения
Описание

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

Примечания

Если выходной вектор Assignment блока не инициализирован входом в блок, элементы вектора могут не быть инициализированы в сгенерированном коде.

Когда блок Assignment используется итеративно и все поле массива назначаются в течение одного временного шага симуляции, вам не нужен вход инициализации в блок.

Доступ к неинициализированным элементам выхода блоков может привести к неожиданному поведению.

ОбъяснениеИзбегайте нежелательных результатов в сгенерированном коде.
Проверки Model AdvisorПроверяйте использование блоков Assignment (Simulink Check)
Ссылки
  • IEC 61508-3, Таблица A.3 (3) 'Подмножество языка "
    IEC 61508-3, Таблица A.4 (3) «Оборонительное программирование»
    IEC 61508-3, Таблица A.3 (2) «Сильно типизированный язык программирования»

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

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

  • EN 50128, таблица A.4 (11) 'Language Subset'
    EN 50128, таблица A.3 (1) 'Defensive Programming'
    EN 50128, таблица A.4 (8) 'Сильно типизированный язык программирования'

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

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

Последнее изменениеR2016a
Примеры

Не Рекомендуемый: Нет входных Y0 инициализации, когда блок не используется итеративно


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


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