El núcleo Cortex-M3 que utiliza esta unidad tiene 3 buses.
El bus "I" o .
Este es el bus normal utilizado para obtener y ejecutar instrucciones. La matriz de bus interna tiene esto vinculado a la ROM interna y la RAM.
El bus "D" o de datos .
Normalmente se usa para acceder a la ROM interna y la RAM, la matriz del bus tiene esto vinculado a las mismas cosas que el bus de instrucciones. Esto permite el acceso simultáneo para instrucciones y datos en las mismas áreas de memoria.
El bus "S" o del sistema .
Esto cubre todo lo demás. Los otros dos buses son muy limitados en su espacio de direcciones. Este permite el acceso a mucha más memoria que los demás. Este es el bus que enlaza a la memoria externa. Si bien es posible ejecutar código en esta área del espacio de memoria, lo hace con una eficiencia reducida. Esto se debe a que solo hay un bus conectado a esta área, y también se conecta a todo lo que no sea una ROM interna o RAM. No puede obtener instrucciones y datos al mismo tiempo usando este bus, funciona mucho más como la arquitectura de memoria normal de un sistema que no es de Harvard (como un Z80, 8086, 68000, etc.)
Entonces, sí, puede usar la memoria externa para el código del programa, pero con una eficiencia reducida.