Формирование модельных блочных сигналов (блочный ввод-вывод) и дискретных состояний (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' |
| Приложение | Настройка |
|---|---|
| Отладка | Никакого воздействия |
| Отслеживаемость | Никакого воздействия |
| Эффективность | На |
| Меры безопасности | Никакого воздействия |