Ваше приложение может быть ограничено ограниченной памятью. Управление максимальным допустимым размером для стека является одним способом изменить, заданы ли данные как локальные или глобальные в сгенерированном коде. Можно ограничить использование стекового пространства путем определения положительного целочисленного значения для размера стека Maximum (байты) параметр на панели Optimization диалогового окна Параметра конфигурации. Определение максимального допустимого размера стека обеспечивает управление количеством локальных и глобальных переменных в сгенерированном коде. А именно, понижение максимального размера стека может сгенерировать больше переменных в глобальные структуры. Количество локальных и глобальных переменных помогает определить необходимое количество стекового пространства для выполнения сгенерированного кода.
Настройкой по умолчанию для размера стека Maximum (байты) является 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
раздел системного конечного файла. %assign
оператор описан в Компиляторе Выходного языка.
Максимальный размер стека (байты)