По умолчанию локальные переменные назначаются в стеке. Большие переменные, которые не помещаются в стек, статически выделяются в памяти.
Распределение стека обычно использует память более эффективно, чем статическое распределение. Однако иногда пространство стека ограничено, как правило, во встроенных процессорах. MATLAB ® Coder™ позволяет вручную установить ограничение на использование пространства стека, чтобы созданный код подходил для целевого оборудования. Вы можете выбрать это ограничение в зависимости от конфигурации целевого оборудования. Дополнительные сведения см. в разделе Использование пространства в стеке управления.
Для ограниченного пространства стека можно выделить большие переменные в куче вместо статического распределения. Выделение кучи медленнее, но более эффективно с точки зрения памяти, чем статическое выделение. Чтобы выделить большие переменные в куче, выполните одно из следующих действий.
Создайте объект конфигурации. Задайте свойство, MultiInstanceCodeКому true.
cfg = coder.config('exe');
cfg.MultiInstanceCode = true;Создание кода с помощью этого объекта конфигурации.
С помощью приложения MATLAB Coder в диалоговом окне параметров проекта на вкладке «Память» установите флажок Генерировать код повторного входа.
Создать код.
Использование пространства стека элементов управления | Генерировать повторно вводимый код C из кода MATLAB