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

Описание

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

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

Настройки

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

On

Храните глобальные данные о блоке-сигнале (блок 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.

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

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

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

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

Похожие темы