La mayoría de los microcontroladores de 8, 16 y 32 bits ejecutan el programa directamente desde flash. Esto es cierto de la gama STM32F103. La mayoría de los microcontroladores son capaces de ejecutar el programa desde la RAM, pero solo los programas relativamente especializados lo hacen. Por esta razón, la mayoría de los microcontroladores tienen mucho más flash que RAM.
Hay algunos microcontroladores que tienen una gran cantidad de RAM y poco o ningún flash. Incluso puede ser posible obtener un STM32 como este. Estas piezas se basan en almacenar el programa fuera del chip en un chip flash serie, físicamente pequeño y barato, como un Micron MT25Q.
Los microprocesadores verdaderos (donde la RAM y la memoria flash están en circuitos integrados separados, como el ARM 7 y partes similares) pueden y, a menudo, copian el programa de la memoria flash a la RAM y lo ejecutan desde la RAM. La razón principal de esto es que la memoria RAM suele ser mucho más rápida en comparación con la memoria flash, por lo que el programa se ejecutará más rápido. Los procesadores rápidos a menudo ejecutan el sistema operativo Linux, que generalmente funciona de esta manera. También le da a Linux la capacidad de almacenar el programa en otros tipos de memoria de almacenamiento, como tarjetas SD y flash de interfaz en serie (flash en serie).
Se puede hacer que Linux ejecute el programa directamente desde flash (se denomina Ejecución en el lugar) pero esto generalmente sufre una penalización de rendimiento.