Responderei apenas a essa parte, pois não conheço nenhum sistema 'fora da caixa' para um pesadelo desconhecido.
talvez haja algumas práticas recomendadas para implementar a atualização de firmware através do ar para dispositivos embarcados de maneira segura e robusta?
Em termos de prática, o que eu faria é o seguinte:
1) Tenha um carregador de inicialização muito mínimo, algo o mais burro possível, apenas responsável por carregar o firmware com as seguintes restrições:
- Capacidade de registrar o sucesso / falha da última inicialização (para reverter para uma versão funcional em caso de falha)
- Algum tipo de processo de emergência para aceitar um novo firmware em caso de falha catastrófica (opcional, pode ser evitado se um dispositivo "em bloco" for permitido)
2) Configure seu armazenamento para ter dois "bancos de inicialização" de tamanho razoável para lidar com a evolução futura e o crescimento do firmware.
3) Faça a soma da imagem do firmware após o download para garantir que ela esteja correta antes da gravação, e a soma do banco de destino após a gravação para garantir novamente que não haverá falha na inicialização de um bit ausente em algum lugar.
O ponto negligenciado é geralmente a soma de verificação da imagem baixada antes e depois da gravação, resultando em um sistema corrompido gravado no dispositivo. Usar dois bancos e alternar geralmente facilita o processo de atualização.