By default, local variables are allocated on the stack. Large variables that do not fit on the stack are statically allocated in memory.
Stack allocation typically uses memory more efficiently than static allocation. However, stack space is sometimes limited, typically in embedded processors. MATLAB® Coder™ allows you to manually set a limit on the stack space usage to make your generated code suitable for your target hardware. You can choose this limit based on the target hardware configurations. For more information, see Control Stack Space Usage.
For limited stack space, you can choose to allocate large variables on the heap instead of using static allocation. Heap allocation is slower but more memory-efficient than static allocation. To allocate large variables on the heap, do one of the following:
Create a configuration object. Set the property,
cfg = coder.config('exe'); cfg.MultiInstanceCode = true;
Generate code using this configuration object.
Using the MATLAB Coder app, in the project settings dialog box, on the Memory tab, select the Generate re-entrant code check box.