Se o seu dispositivo for comparativamente caro e você puder arcar com o custo (e os clientes se importam com atualizações), você pode fazer isso ...
(geralmente essa técnica requer armazenamento externo ou uso desonesto de jtag ..)
Tenha um micro de programa fixo (como um pequeno PIC) que pode interromper o sistema e reprogramá-lo.
porque você não pode alterar o firmware do "processador de atualização", ele nunca pode dar errado.
1) o usuário pode atualizar o dispositivo
2) se uma atualização falhar, eles sempre poderão tentar novamente. Não pode ser emparedado
3) mesmo quando o dispositivo de destino não suporta um gerenciador de inicialização (ele só deseja inicializar e executar), você ainda pode fazer o que deseja.
funciona para FPGA, DSP e outros alvos ímpares.
Pode ter uma interface de usuário realmente elegante (mesmo um PIC pode executar um servidor da Web ...)