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

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

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

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

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

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

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

  2. В Редакторе Simulink, от вкладки 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);

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