Biblioteca de Agentes OTA - FreeRTOS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Biblioteca de Agentes OTA

importante

Esta es una versión archivada de la Guía del usuario de FreeRTOS para su uso con la versión 202012.00 de FreeRTOS. Para obtener la última versión de este documento, consulte la Guía del usuario de FreeRTOS.

Descripción general

La Biblioteca de Agentes OTA le permite administrar la notificación, descarga y verificación de actualizaciones de firmware para dispositivos de FreeRTOS que utilizan HTTP o MQTT como protocolo. Mediante la biblioteca de Agente de OTA, puede separar lógicamente las actualizaciones de firmware y la aplicación que se ejecuta en sus dispositivos. El Agente de OTA pueden compartir una conexión de red con la aplicación. Compartir una conexión de red le ofrece el potencial de ahorrar una cantidad considerable de RAM. Además, la biblioteca de Agentes de OTA le permite definir lógica específica de la aplicación para realizar pruebas, confirmar o revertir una actualización de firmware.

Para obtener más información acerca de cómo configurar las actualizaciones OTA con FreeRTOS, consulte Actualizaciones gratuitas de FreRTOS Over-the-Air.

Características

A continuación, se muestra la interfaz de Agente de OTA completa:

OTA_AgentInit

Inicializa el Agente de OTA. El intermediario proporciona el contexto del protocolo de mensajería, una devolución de llamada opcional y un tiempo de espera.

OTA_AgentShutdown

Elimina recursos después de haber utilizado el Agente de OTA.

OTA_GetAgentState

Obtiene el estado actual del Agente de OTA.

OTA_ActivateNewImage

Activa la imagen de firmware del microcontrolador más reciente recibida a través de OTA. (El estado del trabajo detallado ahora debe ser autodiagnóstico).

OTA_SetImageState

Establece el estado de validación de la imagen de firmware del microcontrolador en ejecución actualmente (prueba, aceptada o rechazada).

OTA_GetImageState

Obtiene el estado de la imagen de firmware del microcontrolador en ejecución actualmente (prueba, aceptada o rechazada).

OTA_CheckForUpdate

Solicita la siguiente actualización OTA disponible del servicio de actualización OTA.

OTA_Suspend

Suspende todas las operaciones del agente de OTA.

OTA_Resume

Reanuda las operaciones del agente de OTA.

Referencia de la API

Para obtener más información, consulte Referencia de la API de agente OTA.

Ejemplo de uso

Una aplicación de dispositivo típica compatible con OTA que utiliza el protocolo MQTT controla el Agente OTA mediante la siguiente secuencia de llamadas a la API.

  1. Conéctese al bróker AWS IoT MQTT. Para obtener más información, consulte Biblioteca coreMQTT.

  2. Inicialice el Agente de OTA llamando a OTA_AgentInit. La aplicación puede definir una función de devolución de llamada de OTA personalizado o utilizar la devolución de llamada predeterminada especificando un puntero de función NULL de devolución de llamada. Asimismo, debe proporcionar un tiempo de espera de inicialización.

    La devolución de llamada implementa lógica específica de la aplicación que se ejecuta después de completar un trabajo de actualización OTA. El tiempo de espera define cuánto tiempo que hay que esperar a que se complete la inicialización.

  3. Si OTA_AgentInit agota el tiempo de espera antes de que el Agente esté listo, puede llamar a OTA_GetAgentState para confirmar que el Agente se ha inicializado y opera según lo previsto.

  4. Cuando la actualización OTA se ha completado, FreeRTOS llama a la devolución de llamada de finalización del trabajo con uno de los siguientes eventos: accepted, rejected o self test.

  5. Si se rechaza la nueva imagen de firmware (por ejemplo, debido a un error de validación), por lo general, la aplicación puede hacer caso omiso de la notificación y esperar la siguiente actualización.

  6. Si la actualización es válida y se ha marcado como aceptada, llame a OTA_ActivateNewImage para restablecer el dispositivo e iniciar la nueva imagen de firmware.

Portabilidad

Para obtener más información sobre la función de portabilidad de OTA a su plataforma, consulte Portabilidad de la biblioteca OTA en la Guía de portabilidad de FreeRTOS.

Uso de memoria

Tamaño del código de AWS IoT OTA (ejemplo generado con GCC para ARM Cortex-M)
Archivos Con optimización -O1 Con optimización -Os
ota.c 8,0 K 7,2 K
ota_interface.c 0,1 K 0,1 K
ota_base64.c 0,6 K 0,6 K
ota_mqtt.c 2,3 K 2,2 K
ota_cbor.c 0,8 K 0,6 K
ota_http.c 0,3 K 0,3 K
Estimaciones totales 12,1 K 11,0 K