5.- Con una memoria externa al microcontrolador (USB, SD, microSD, etc) que contenga el programa. El microcontrolador puede grabar ese programa en su memoria o ejecutar el programa desde la memoria externa. Este sistema lo utilizan algunas calculadoras programables como la HP50g, autómatas programables, videoconsolas, etc.
¿El último método (5) es viable para micros de 8 bits o se utiliza sobre todo para micros de 32 bits?
No creo que puedas ejecutar un programa desde una memoria externa, es un tema que se ha tratado algunas veces en los foros de Microchip, y que yo sepa, no es posible.
Yo los bootloader encriptados que tengo hechos son todos para PIC32, pero es perfectamente viable gestionar una tarjeta SD o un Pendrive USB, formateados con FAT o FAT32, desde un micro de 8 ó 16 bits.
También está la opción de cargar el firmware por Ethernet, no lo he probado todavía, quiero comprar el Ethernet Starter Kit de Microchip para ver si se puede cargar firmware a través de internet, supongo que si, teniendo un server con una IP fija.
Otra incognita es la viabilidad de usar el puerto JTAG para programación, con los PIC lo desconozco, pero con otros micros, FPGA y CPLD, si se usa JTAG para programarlos. Todas las tarjetas con FPGA y CPLD de Xilinx y Altera, que tengo por aquí se programan por JTAG, que sirve también para hacer Debug. El USB Starter Kit de Microchip, de hecho, lleva 2 microcontroladores, el primero se comunica por USB con un PC, y programa al segundo por JTAG.