Поиск и устранение проблем с перегрузкой центрального процессора при выполнении приложения реального времени

Некоторые проблемы создают перегрузку центрального процессора при выполнении приложения реального времени.

Что означает эта проблема

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

Когда происходит эта ошибка, Simulink Real-Time RTOS останавливает выполнение модели и Target свойство объекта TargetStatus показывает ошибку, например:

mCPUOverload: Sub-rate exception: Overload limit (0) exceeded in 0.02s rate with 1 overloads

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

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

  • Целевой компьютер слишком медлен, или шаг расчета модели слишком мало.

  • Модель слишком сложна (алгоритмическая сложность).

  • Задержка ввода-вывода, где каждый используемый канал ввода-вывода вводит задержку в систему. Задержка ввода-вывода может привести к тому, что время выполнения превысит временной шаг модели.

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

Попробуйте это решение

Simulink® Real-Time™ RTOS обычно останавливает выполнение модели, когда она сталкивается с перегрузкой центрального процессора. Можно сконфигурировать модель Simulink Real-Time, чтобы разрешить перегрузки центральный процессор. Используйте эту возможность для поддержки длительных инициализаций и для диагностики перегрузки.

Разрешение длительного времени инициализации

Для некоторых приложений реального времени нормальная инициализация может продлиться после первого шага расчета. Используйте блок SLRT Overload Options, чтобы увеличить количество временных шагов запуска, чтобы игнорировать перегрузки. По умолчанию только первый временной шаг игнорирует перегрузки.

Разрешить перегрузки центрального процессора для диагностики

Во время выполнения аппаратные факторы могут заставить приложение реального времени обрабатывать данные сверх шага расчета. Используйте TLCOptions свойства xPCMaxOverloads и xPCMaxOverloadLen для диагностики и решения этой проблемы.

Примечание

Разрешение целевого компьютера центрального процессора может привести к неправильным результатам, особенно для многоскоростных моделей. Используйте блок SLRT Overload Options только для диагностики. Когда ваш диагноз будет завершен, отключите эти опции.

Похожие примеры

Подробнее о

Внешние веб-сайты