Глобальные переменные могут увеличить требования к памяти и снизить скорость выполнения. Чтобы уменьшить глобальное ОЗУ для неиспользуемой подсистемы, можно создать интерфейс функции, который передает данные через аргументы вместо глобальных переменных. Функциональный интерфейс параметра блока подсистемы предоставляет эту опцию. Чтобы сравнить выходы для опций интерфейса Function, сначала создайте функцию для подсистемы с void-void и затем создать функцию с аргументами.
void-void ФункцияПо умолчанию при настройке блока «Подсистема» в качестве неиспользуемой функции создается void-void интерфейс.
Открыть пример модели rtwdemo_roll.
Щелкните правой кнопкой мыши подсистему. RollAngleReference. В списке выберите Block Parameter (Subsystem).
В диалоговом окне «Параметры блока» убедитесь, что установлен флажок «Считать атомными единицами».
Перейдите на вкладку Создание кода и задайте для параметра Упаковка интерфейса кода значение Nonreusable function.
Для параметра Function interface уже установлено значение void_void.
Нажмите «Применить» и «ОК».
Повторите шаги 2-6 для других подсистем HeadingMode и BasicRollMode.
Создание отчета по метрикам кода и статического кода для rtwdemo_roll. Эта модель сконфигурирована для генерации отчета о создании кода и автоматического открытия отчета. Дополнительные сведения см. в разделе Создание отчета о метриках статического кода для модели Simulink.
В отчете о создании кода, в rtwdemo_roll.c, сгенерированный код для подсистемы RollAngleReference содержит void-void определение функции:
static void RollAngleReference(void)
{
...
}
void_void параметр, количество байтов для глобальных переменных равно 47.

Затем создайте ту же функцию с помощью Allow arguments (Optimized) для сравнения результатов.
Чтобы уменьшить глобальное ОЗУ, улучшить использование ПЗУ и скорость выполнения, создайте функцию, разрешающую аргументы:
Откройте диалоговое окно «Параметр блока подсистемы» для RollAngleReference.
Перейдите на вкладку Создание кода. Задайте для параметра Function interface значение Allow arguments (Optimized).
Нажмите «Применить» и «ОК».
Повторите шаги 2 и 3 для других подсистем HeadingMode и BasicRollMode.
Создание отчета по метрикам кода и статического кода для rtwdemo_roll.
В отчете о создании кода, в rtwdemo_roll.c, сгенерированный код для подсистемы RollAngleReference теперь имеет аргументы:
static real32_T RollAngleReference(real32_T rtu_Phi,...
boolean_T rtu_AP_Eng,...
real32_T rtu_Turn_Knob)
{
...
}
Allow arguments набор параметров, общее количество байтов для глобальных переменных теперь 39 байт.

В некоторых случаях при создании оптимизированного кода генератор кода может не генерировать функцию, имеющую аргументы. Чтобы создать предсказуемый интерфейс функции, имеющий аргументы, установите для интерфейса функции значение Allow arguments (Match graphical interface).