Некоторая проблема производит перегрузку ЦП при выполнении приложения реального времени.
Перегрузка ЦП указывает, что центральный процессор не может завершить обработку временного шага модели прежде, чем перезапустить для следующего временного шага.
Когда эта ошибка происходит, 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, чтобы позволить перегрузки ЦП. Используйте эту возможность поддержать долгие инициализации и для диагноза перегрузки. Также можно попытаться уменьшать перегрузки путем улучшения производительности приложения и включения Компиляции с GCC - ffast-математическая опция.
Для некоторых приложений реального времени нормальная инициализация может расширить вне первого шага расчета. Используйте блок SLRT Overload Options, чтобы увеличить число временных шагов запуска, чтобы проигнорировать перегрузки. По умолчанию только первый временной шаг игнорирует перегрузки.
Примечание
Разрешение центрального процессора целевого компьютера перегрузиться может вызвать неправильные результаты, особенно для многоскоростных моделей. Используйте блок SLRT Overload Options только для диагноза. Когда ваш диагноз будет завершен, выключите эти опции.
Компиляция с GCC - ffast-математическая опция включает компилятору GCC -ffast-math
опция при компиляции кода приложения реального времени. Эта опция отключена по умолчанию для моделей Simulink Real-Time.
Путем включения Компиляции с GCC - ffast-математическая опция, вы предоставляете компилятору больше гибкости, чтобы оптимизировать математику с плавающей точкой за счет отклонения от IEEE 754 стандарт с плавающей точкой.
Для получения дополнительной информации о -ffast-math
опция, смотрите Семантику Математики С плавающей точкой в GCC и.gcc.gnu.org/wiki/FloatingPointMath/
Скомпилируйте с GCC - ffast-математика