Уменьшите потребление ПЗУ и ОЗУ и копии данных и увеличьте скорость выполнения сгенерированного кода. Сконфигурируйте генератор кода, чтобы повторно использовать глобальные переменные, выбрав параметр конфигурации модели Повторно используйте выходы глобальных блоков.
В Командном окне введите rtwdemo_reuse_global.

В диалоговом окне Параметров конфигурации убедитесь, что выбрано Повторное использование памяти.
Очистить Переиспользуйте глобальные блоки выходов и нажатия кнопки Применить.
На панели Генерация Кода > Report выберите Generate static code metrics.
Во временной папке системы создайте папку для процесса сборки и проверки.
Нажмите Ctrl + B, чтобы сгенерировать код.
### Starting build procedure for: rtwdemo_reuse_global ### Successful completion of build procedure for: rtwdemo_reuse_global Build Summary Top model targets built: Model Action Rebuild Reason ===================================================================================================== rtwdemo_reuse_global Code generated and compiled Code generation information file does not exist. 1 of 1 models built (0 models already up to date) Build duration: 0h 0m 5.8287s
Просмотрите сгенерированный код без оптимизации. Вот фрагмент rtwdemo_reuse_global.c.
/* Model step function */
void rtwdemo_reuse_global_step(void)
{
/* Sum: '<Root>/Sum' incorporates:
* Delay: '<Root>/Delay'
* Inport: '<Root>/In1'
*/
rtDW.Delay_DSTATE += rtU.In1;
/* Outport: '<Root>/Out1' incorporates:
* Delay: '<Root>/Delay'
*/
rtY.Out1 = rtDW.Delay_DSTATE;
}
Сгенерированный код содержит копию данных в глобальную переменную rtDW.Delay_DSTATE. Откройте отчет по метрикам статического кода. Общее количество чтений и записей для глобальных переменных составляет 8. Общий размер - 32 байта.
В диалоговом окне Параметров конфигурации выберите Повторно использовать глобальные блоки выходов и нажатия кнопки Применить.
Сгенерируйте код.
Просмотрите сгенерированный код с оптимизацией. Вот фрагмент rtwdemo_reuse_global.c.
### Starting build procedure for: rtwdemo_reuse_global
### Successful completion of build procedure for: rtwdemo_reuse_global
Build Summary
Top model targets built:
Model Action Rebuild Reason
====================================================================================
rtwdemo_reuse_global Code generated and compiled Generated code was out of date.
1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 6.132s
/* Model step function */
void rtwdemo_reuse_global_step(void)
{
/* Sum: '<Root>/Sum' incorporates:
* Delay: '<Root>/Delay'
* Inport: '<Root>/In1'
*/
rtY.Out1 += rtU.In1;
}
Генератор кода устраняет копию данных, сокращает две инструкции до одного оператора и три глобальные переменные до двух глобальных переменных.
Откройте отчет по метрикам статического кода. Для глобальных переменных эта оптимизация уменьшает общее количество чтений и записей для глобальных переменных с 8 до 5 и общий размер с 32 байт до 24 байт.
Повторно используйте выходные выходы глобальных блоков