Возможно, ваше приложение ограничено памятью. Управление максимально допустимым размером для стека является одним из способов изменить, определены ли данные как локальные или глобальные в сгенерированном коде. Можно ограничить использование пространства стека, задав положительное целое значение для параметра Maximum stack size (bytes) на панели Optimization диалогового окна Параметра конфигурации. Установка максимально допустимого размера стека обеспечивает управление количеством локальных и глобальных переменных в сгенерированном коде. В частности, уменьшение максимального размера стека может сгенерировать больше переменных в глобальные структуры. Количество локальных и глобальных переменных помогает определить необходимое количество стека, пространства для выполнения сгенерированного кода.
Настройкой по умолчанию для Maximum stack size (bytes) является Inherit from target
. В этом случае значение максимального размера стека является меньшим значением следующего: значение по умолчанию, заданное генератором кода (200 000 байта) или значение переменной TLC MaxStackSize
найдено в системном целевом файле (ert.tlc
).
Чтобы задать меньший размер стека для вашего приложения, выберите Specify a value
опция параметра Maximum stack size (bytes) и введите положительное целое значение. Чтобы задать меньший размер стека в командной строке, используйте:
set_param(model_name, 'MaxStackSize', 65000);
Примечание
Для общих метрик использования исполняемого стека может потребоваться провести целевое измерение, такое как использование выполнения (эмпирического) анализа или статического (путь кода) анализа с объектным кодом.
Рекомендуется, чтобы вы использовали параметр Maximum stack size (bytes) для управления выделением пространства стека вместо изменения переменной TLC, MaxStackSize
, в системном целевом файле. Однако целевому автору может потребоваться задать переменную TLC, MaxStackSize
, для цели. Как задать MaxStackSize
, использовать assign
операторы в системном целевом файле (ert.tlc
), как в следующем примере.
%assign MaxStackSize = 4096
Напишите %assign
операторы в Configure RTW code generation settings
раздел системного целевого файла. The %assign
оператор описан в Target Language Compiler.
Максимальный размер стека (байт)