Cómo agregar actualizaciones a un dispositivo incrustado en tiempo de ejecución

Si quiere decir cómo actualizar el firmware del dispositivo, esto se conoce como FOTA – firmware por aire (suponiendo que sea un dispositivo inalámbrico).

Esto generalmente requiere que uno tenga el doble de espacio de programa (flash) en el dispositivo que lo que se necesita para mantener el programa. Los microcontroladores PIC32MZ más nuevos de Microchip incluso tienen dos áreas de firmware separadas diseñadas solo para este propósito (“Flash de actualización en vivo de panel dual de hasta 2 MB”).

Mientras se ejecuta el programa, descarga la versión más reciente de un servidor a través de WiFi, celular u otro medio y la almacena en el área inactiva de la memoria flash. Luego, después de verificar que la imagen es correcta (generalmente usando un CRC), reinicia el sistema, que comienza a usar la versión más nueva. Si algo importante sale mal (como los tiempos de espera repetidos de un perro guardián dentro de un cierto período de tiempo), aún puede volver a la versión anterior si es necesario.

Si no hay suficiente espacio para cargar una segunda copia, entonces la nueva versión podría descargarse y almacenarse en una tarjeta SD u otra memoria externa, y un pequeño programa de cargador de arranque utilizado para flashear el programa y luego saltar a él. Pero esto generaría más demoras. Nuevamente, si se detecta una falla, podría volver a una versión anterior almacenada en la misma tarjeta SD.

Los sistemas integrados pueden buscar y luego ejecutar las instrucciones desde un servidor a través de HTTP.