Antes que me ponga sarcastico voy a contestar con seriedad.
Depende del microcontrolador. Asi general tu pregunta es un SI y un NO, deberia reunir ciertas condiciones:
Primero debe poseer un bus externo (paralelo normalmente),
Y segundo debe permitir la ejecucion desde ese bus.
Si es un PIC, uno de esos es este:
http://ww1.microchip.com/downloads/en/DeviceDoc/39646c.pdfThe External Memory Bus (EMB) allows the device to access external memory devices (such as Flash, EPROM, SRAM, etc.) as program or data memory.
Solo hacerte notar que necesitas 3 puertos y medio ( de 8 pines cada uno ) para poder hacer la interfaz.
Si es un ARM, depende de como lo haga el fabricante, el fabricante puede decidir si el bus externo permitir la ejecucion, o directamente bloquearlo y que unicamente sirva para datos. Lo cual no creo que lo haga, pero nuevamente te vas a enfrentar a un gran uso de pines para ese fin, y tal ves convenga mas un micro mejor. Ya que el costo de un mejor micro con respecto a micro + flash + espacio PCB + routear todas las lineas tal ves termine siendo mas prohibitivo. Eso lo vas a tener que analizar con el tema de costos y el tamaño de memoria.
Una cosa mas, normalmente la ejecucion se hace mucho mas lenta desde una memoria externa.
¿ Es posible sin tener un bus externo ? , ¿Como un SPI, I2C ?SI, algunos micros permiten poder ejecutar codigo desde la RAM, asi que podrias usar una buena seccion de la RAM, junto con DMA y un SPI por ejemplo para cargar el codigo y luego ejecutarlo, esta mas que claro que vas a tener algo mucho mas lento de esta forma. Y es mas que obvio que debe sobrarte la RAM., No tenes DMA? hacelo a mano
No tengo bus externo, no puede ejecutar desde la RAM y tengo solo SPI, ¿ puedo hacerlo ?Casi todo se puede en la vida, tendrias que emular tu PIC en el PIC , es decir un codigo que emule tu PIC, lo cual leerias "datos" y de acuerdo al dato procesarlo como si fuera una instruccion, separando los opcode 1 por uno y ejecutando la instruccion debida. No creo que lleve mucho hacerlo pero, mas que un CALL + 1 instruccion cada una + RETURN + guardar y salver un registro con un STATUS/W de la emulacion no veo otra
, suponiendo que sean PIC16, un PIC18 es un poco mas complejo ya.
En fin todo depende del micro, y lo que estes haciendo, etc.