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

Описание

Сгенерируйте (блок I/O) сигналов блока модели и дискретные состояния (DWork), действующий на том же уровне в ту же структуру данных. В зависимости от того, сколько уровней модель имеет, эти структуры содержат префиксы FuncInternalData0, FunctionInteralData1, и так далее.

Генерация кода Category:> Интерфейс

Настройки

Значение по умолчанию: 'off'

На

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

'off'

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

Советы

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

  • Модель имеет несколько уровней и установила параметр Treat each discrete rate as a separate task на 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;

Если вы выбираете Generate separate internal data per entry-point function, сгенерированный код теперь выглядит так код:

/* 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.

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

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

Рекомендуемые настройки

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

Похожие темы