Сгенерируйте (блок I/O) сигналов блока модели и дискретные состояния (DWork), действующий на том же уровне в ту же структуру данных. В зависимости от того, сколько уровней модель имеет, эти структуры содержат префиксы FuncInternalData0
, FunctionInteralData1
, и так далее.
Генерация кода Category:> Интерфейс
Значение по умолчанию: 'off'
Храните глобальные данные о блоке-сигнале (блок I/O) и глобальные данные состояния (векторы DWork) действующий на том же уровне в одной структуре данных в сгенерированном коде.
Не храните глобальные данные о блоке-сигнале (блок 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' |
Приложение | Установка |
---|---|
Отладка | Никакой удар |
Трассируемость | Никакой удар |
Эффективность | На |
Меры безопасности | Никакой удар |