Code generation considerations for low RAM targets

The C2000, ARM Cortex, and STM32 targets support both small and large RAM configurations. The MSP430 and Arduino targets support only small RAM configurations. The code generator emits small RAM code for an embedded target unless it encounters:

      Integration blocks (derivative, integrator, limitedIntegrator, resetIntegrator)

      Linear System blocks (stateSpace, transferFunction)

      Continuous timeDelay blocks

      Matrices used as I/O to enabled compound blocks or top-level compound blocks

When generating code for C2000, ARM Cortex, or STM32 targets and you include one or more of the above blocks and you activate Check for Performance Issues in the Code Generation dialog, Embed warns you that large RAM blocks may not run efficiently on the target along with a recommendation on how to update your diagram. You can continue with code generation; however, the generated code may not fit in the target RAM and the code will run slower.

When generating code for Arduino, MSP430, or STM32 targets, you cannot include one or more of the above blocks. If you do, Embed halts code generation and issues a message telling you to replace the blocks.

Note that AMD64 and Raspberry Pi are not low RAM targets. The code generator always emits large RAM code for them.