Reduce Memory Usage for Signals
The configuration parameter Signal storage reuse reduces the memory
requirements of your real-time program by enabling parameters that reuse the memory allocated
for signals with an auto
storage class. These parameters are the following:
Enable local block outputs
Reuse local block outputs
Reuse global block outputs
Optimize global data access
When the Enable local block outputs parameter is on, where possible the code generator declares block outputs as local variables instead of global variables. Replacing global variables with local variables improves execution speed and reduces RAM/ROM consumption. Creating more local variables can increase stack usage. Some of the global variables that the code generator can localize include:
Global signals that cross subsystem boundaries
Global signals across Simulink and Stateflow domains
Unused global state variables
Redundant local Data Store Memory block signals
When the Reuse local block outputs parameter is on, wherever possible the code generator reuses local (function) variables for block outputs. When you select Reuse global block outputs, the code generator reuses global (function) variables wherever possible.
The Optimize global data access parameter has these settings:
None
Use global to hold temporary results
Minimize global data access
When you select None
, the code generator uses the default
optimizations. The setting Use global to hold temporary results
maximizes
the use of global variables. The setting Minimize global data access
minimizes the use of global variables by using local variables to hold intermediate
values.
Clearing Signal storage reuse makes all block outputs global and unique, which often significantly increases RAM and ROM usage.
The code generator does not localize global variables for MATLAB system objects or AUTOSAR.