hisl_0067: Защитите от вычислений деления на нули

Идентификатор: Заголовокhisl_0067: Защитите от вычислений деления на нули
ОписаниеЧтобы поддержать робастность сгенерированного кода, при выполнении операций деления, защитите делитель от перехода в нуль.
Примечание

Чтобы доказать, что деление на нули невозможно, выполните статический анализ модели.

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

Использование CRL или параметра конфигурации очистки Remove code, который защищает от арифметических исключений деления (Embedded Coder), защищает операции деления от операций деления на нули. Однако это действие действительно вводит дополнительные вычислительные и служебные данные памяти, а также потенциал для введения недоступного кода.

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

    IEC 61508-3, Таблица A.4 (3) «Оборонительное программирование»

  • МЭК 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'

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

  • MISRA C:2012, Dir 4.1

См. также
Последнее изменениеR2021a
Пример

Неправильный

Операция деления может привести к разделению на нули.

Divide-by-zero exists in model example.

Правильный

Графическая функция для модели деления на нули.

Correct example of modeling to prevent divide-by-zero.