Solo responderé esta parte, ya que no conozco ningún sistema 'listo para usar' para una pesadilla desconocida.
¿Quizás existen algunas prácticas recomendadas para implementar la actualización de firmware de forma inalámbrica para dispositivos integrados de forma segura y sólida?
En términos de práctica, lo que haría es lo siguiente:
1) Tener un gestor de arranque muy mínimo, algo lo más tonto posible solo responsable de cargar el firmware con las siguientes restricciones:
- Capacidad para registrar el último éxito / error de arranque (para revertir a una versión de trabajo en caso de falla)
- Algún tipo de proceso de emergencia para aceptar un nuevo firmware en caso de falla catastrófica (opcional, podría evitarse si se permite un dispositivo "bloqueado")
2) Configure su almacenamiento para que tenga dos "bancos de arranque" de tamaño razonable para manejar la evolución futura y el crecimiento del firmware.
3) Verifique la imagen del firmware después de la descarga para asegurarse de que sea correcta antes de grabar, sume el banco de destino después de la grabación para asegurarse de que no fallará el arranque por un bit faltante en alguna parte.
El punto que se pasa por alto suele ser la suma de comprobación de la imagen descargada antes y después de la grabación, lo que da como resultado un sistema corrupto escrito en el dispositivo. Usar dos bancos y alternar usualmente facilita el proceso de actualización.