En los teléfonos inteligentes y otros dispositivos similares, el gestor de arranque no realizará ningún tipo de comunicación para descargar la nueva imagen del software: esto lo manejará un "cliente de descarga" que se ejecuta en la aplicación y almacena la imagen en una ubicación de memoria. que puede ser utilizado por el gestor de arranque. Una vez que la imagen se ha descargado y validado, la aplicación reinicia el dispositivo para iniciar el cargador de arranque.
Este es un buen enfoque por varias razones:
- El cargador de arranque suele tener un tamaño limitado y codificarlo como un
El simple programador de Flash hace que esto sea menos restrictivo.
- La aplicación tiene la oportunidad de inspeccionar la imagen descargada en busca de errores (CRC,
Códigos de Hamming, etc.) antes de que comience la programación.
- Es menos probable que la interrupción de la descarga provoque una falla del dispositivo.
- Puede utilizar varios medios de transporte físico para realizar la descarga.
- Puede probar el cargador de arranque por unidad aprovisionando imágenes de prueba sin
Tener que probar el transporte al mismo tiempo.
- El bootlaoder puede verificar el software de la aplicación cada vez que se reinicia o enciende el dispositivo y lo vuelve a programar si es necesario.
Los principales inconvenientes son:
- Es posible que necesite un dispositivo de memoria externo no volátil para almacenar la imagen descargada.
- El cargador de arranque deberá poder acceder al dispositivo de memoria externa para recuperar la imagen descargada.
Por lo tanto, recomendaría que mueva el código de descarga USB y Serial del cargador de arranque a la aplicación, implemente un dispositivo de memoria externo para almacenar el software descargado y convierta el cargador de arranque en un 'cargador de arranque NVM'.