exponenta event banner

hisl_0067: Защита от деления на ноль

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

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

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

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

ОбъяснениеУлучшение соответствия кода сформированному коду
Проверки помощника по моделиПроверка на деление на ноль (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) «Поднабор языка»

    EN 50128, таблица A.3 (1) «Оборонительное программирование»

  • DO-331, Раздел 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.