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

Процесс сборки модели для моих моделей Simscape™ Multibody™ медленный и использует неожиданное количество памяти.

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

QNX по умолчанию® Нейтрино® компиляторные переключатели для Simulink® Real-Time™ применяйте оптимизации, которая приводит к длительным временам сборки или медленным сборкам для некоторых сложных моделей, таких как модели Simscape Multibody.

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

Чтобы улучшить скорость сборки приложения реального времени, измените выбор коммутатора компилятора с выборок по умолчанию, добавив -fdisable-rtl-sched2 коммутатор для компилятора C/C + +:

  1. Откройте модель Simulink Real-Time.

  2. В редакторе Simulink Editor на вкладке Real-Time выберите Hardware Settings.

  3. Выберите Code Generation > Build configuration > Specify

  4. Щелкните опции C Compiler и добавьте опцию -fdisable-rtl-sched2.

  5. Щелкните опции C++ Compiler и добавьте опцию -fdisable-rtl-sched2.

  6. Нажмите Apply и OK.

После обновления параметров компилятора опции появляются как показано.

Image of updated C Compiler and C++ Compiler options

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

% add a compiler flag '-fdisable-rtl-sched2'

set_param(modelName, 'BuildConfiguration', 'Specify');
options = get_param(modelName, 'CustomToolchainOptions');
ccompiler_idx = find(strcmp(options, 'C Compiler'));
cppcompiler_idx = find(strcmp(options, 'C++ Compiler'));
options{ccompiler_idx+1} = ...
    [options{ccompiler_idx+1} ' -fdisable-rtl-sched2'];
options{cppcompiler_idx+1} = ...
    [options{cppcompiler_idx+1} ' -fdisable-rtl-sched2'];
set_param(modelName, 'CustomToolchainOptions', options);

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