exponenta event banner

Создание отдельных внутренних данных для каждой функции точки входа

Описание

Формирование модельных блочных сигналов (блочный ввод-вывод) и дискретных состояний (DWork), действующих с одинаковой скоростью в одной и той же структуре данных. В зависимости от того, сколько скоростей имеет модель, эти структуры содержат префиксы FuncInternalData0, FunctionInternalData1и так далее.

Категория: Создание кода > Интерфейс

Настройки

По умолчанию: off

На

Храните данные глобального блочного сигнала (блочный ввод-вывод) и данные глобального состояния (векторы DWork), работающие с одинаковой скоростью, в одной структуре данных в сгенерированном коде.

Прочь

Не сохраняйте данные сигнала глобального блока (блочный ввод-вывод) и данные глобального состояния (векторы DWork), работающие с одинаковой скоростью, в одной структуре данных в сгенерированном коде.

Совет

Установка для этого параметра значения On повышает производительность кэш-памяти при развертывании модели в многоядерной аппаратной среде, удовлетворяющей следующим требованиям:

  • Модель имеет несколько скоростей и имеет параметр Обработать каждую дискретную частоту как отдельный параметр задачи, равный on.

  • Модель содержит несколько экспортированных функций, которые выполняются с различной скоростью.

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

Пример

Для модели, которая генерирует этот код:

/* Block signals and states (default storage) for system '<Root>' */
typedef struct {
  real_T RTBS2F;                       /* '<Root>/RTBS2F' */
  real_T UDS;                          /* '<Root>/UDS' */
  real_T Sum3;                         /* '<Root>/Sum3' */
  real_T Sum1;                         /* '<Root>/Sum1' */
  real_T UDF_DSTATE;                   /* '<Root>/UDF' */
  real_T UDS_DSTATE;                   /* '<Root>/UDS' */
  real_T RTBS2F_Buffer0;               /* '<Root>/RTBS2F' */
  real_T MIXEDDSM;                     /* '<Root>/DSMM' */
  real_T SLOWDSM;                      /* '<Root>/DSMS' */
} DW_demo1_T;

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

/* Block signals and states (default storage) for system '<Root>' */
typedef struct {
  real_T RTBS2F_Buffer0;               /* '<Root>/RTBS2F' */
  real_T MIXEDDSM;                     /* '<Root>/DSMM' */
} DW_demo1_T;

/* Internal Data Grouped For Same Function, for system '<Root>' */
typedef struct {
  real_T RTBS2F;                       /* '<Root>/RTBS2F' */
  real_T Sum3;                         /* '<Root>/Sum3' */
  real_T UDF_DSTATE;                   /* '<Root>/UDF' */
} FuncInternalData0_demo1_T;

/* Internal Data Grouped For Same Function, for system '<Root>' */
typedef struct {
  real_T UDS;                          /* '<Root>/UDS' */
  real_T Sum1;                         /* '<Root>/Sum1' */
  real_T UDS_DSTATE;                   /* '<Root>/UDS' */
  real_T SLOWDSM;                      /* '<Root>/DSMS' */
} FuncInternalData1_demo1_T;

Зависимости

  • Для создания кода этому параметру требуется лицензия Embedded Coder ®.

  • Этот параметр активизируется путем выбора параметра Combine signal/state structures.

Информация командной строки

Параметр: GroupInternalDataByFunction
Текст: символьный вектор
Значение: 'on' | 'off'
По умолчанию: 'off'

Рекомендуемые параметры

ПриложениеНастройка
ОтладкаНикакого воздействия
ОтслеживаемостьНикакого воздействия
ЭффективностьНа
Меры безопасностиНикакого воздействия

Связанные темы