Настройте выделение стекового пространства

Ваше приложение может быть ограничено ограниченной памятью. Управление максимальным допустимым размером для стека является одним способом изменить, заданы ли данные как локальные или глобальные в сгенерированном коде. Можно ограничить использование стекового пространства путем определения положительного целочисленного значения для размера стека Maximum (байты) (Simulink Coder) параметр на панели Optimization диалогового окна Параметра конфигурации. Определение максимального допустимого размера стека обеспечивает управление количеством локальных и глобальных переменных в сгенерированном коде. А именно, понижение максимального размера стека может сгенерировать больше переменных в глобальные структуры. Количество локальных и глобальных переменных помогает определить необходимое количество стекового пространства для выполнения сгенерированного кода.

Настройкой по умолчанию для размера стека Maximum (байты) (Simulink Coder) является 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 описан в Компиляторе Выходного языка (Simulink Coder).

Смотрите также

Похожие темы