OTA-Agent-Bibliothek - FreeRTOS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

OTA-Agent-Bibliothek

Wichtig

Dies ist eine archivierte Version des FreeRTOS-Benutzerhandbuchs zur Verwendung mit der FreeRTOS-Version 202012.00. Die neueste Version dieses Dokuments finden Sie im FreeRTOS-Benutzerhandbuch.

Übersicht

OTA-Agent-BibliothekMit dieser können Sie die Benachrichtigung, den Download und die Überprüfung von Firmware-Updates für FreeRTOS-Geräte verwalten, die HTTP oder MQTT als Protokoll verwenden. Mit der OTA-Agent-Bibliothek können Sie Firmware-Updates und die auf Ihren Geräten laufende Anwendung logisch trennen. Der OTA-Agent kann eine Netzwerkverbindung mit der Anwendung teilen. Durch die gemeinsame Nutzung einer Netzwerkverbindung können Sie möglicherweise eine beträchtliche Menge an RAM einsparen. Darüber hinaus können Sie mit der OTA-Agent-Bibliothek eine anwendungsspezifische Logik zum Testen, Bestätigen oder Zurücksetzen eines Firmware-Updates definieren.

Weitere Informationen zum Einrichten von OTA-Updates mit FreeRTOS finden Sie unter. FreeRTOS RTOS-Updates Over-the-Air

Features

Hier ist die komplette OTA-Agent-Schnittstelle:

OTA_AgentInit

Initialisiert den OTA-Agent. Der Aufrufer liefert den Kontext des Messaging-Protokolls, einen optionalen Callback und einen Timeout.

OTA_AgentShutdown

Bereinigt Ressourcen nach der Nutzung des OTA-Agents.

OTA_GetAgentState

Ruft den aktuellen Status des OTA-Agents ab.

OTA_ActivateNewImage

Aktiviert das neueste Mikrocontroller-Firmware-Image, das über OTA empfangen wird. (Der detaillierte Jobstatus sollte dann "Selbsttest" sein.)

OTA_SetImageState

Legt den Validierungsstatus des aktuell laufenden Mikrocontroller-Firmware-Images fest (Test, Akzeptiert oder Abgelehnt).

OTA_GetImageState

Ruft den Status des aktuell laufenden Mikrocontroller-Firmware-Images ab (Test, Akzeptiert oder Abgelehnt).

OTA_CheckForUpdate

Fordert das nächste verfügbare OTA-Update vom OTA-Update-Service an.

OTA_Suspend

Unterbrechen Sie alle OTA-Agent-Operationen.

OTA_Resume

Setzen Sie den Betrieb des OTA-Agenten fort.

API-Referenz

Weitere Informationen finden Sie in der OTA Agent API-Referenz.

Beispielverwendung

Eine typische OTA-fähige Geräteanwendung, die das MQTT-Protokoll verwendet, steuert den OTA-Agent über die folgende Abfolge von API-Aufrufen.

  1. Connect zum AWS IoT MQTT-Broker her. Weitere Informationen finden Sie unter CoreMQTT-Bibliothek.

  2. Initialisieren Sie den OTA-Agent, indem Sie OTA_AgentInit aufrufen. Ihre Anwendung kann eine benutzerdefinierte OTA-Callback-Funktion definieren oder den Standard-Callback verwenden, indem sie den Callback-Funktionspointer NULL festlegt. Außerdem müssen Sie einen Initialisierungs-Timeout festlegen.

    Der Callback implementiert eine anwendungsspezifische Logik, die nach Abschluss eines OTA-Update-Jobs ausgeführt wird. Der Timeout definiert, wie lange auf den Abschluss der Initialisierung gewartet werden soll.

  3. Wenn OTA_AgentInit abgelaufen ist, bevor der Agent bereit war, können Sie OTA_GetAgentState aufrufen, um zu bestätigen, dass der Agent initialisiert ist und wie erwartet arbeitet.

  4. Wenn das OTA-Update abgeschlossen ist, ruft FreeRTOS den Job-Completion-Callback mit einem der folgenden Ereignisse auf:accepted,, rejected oder. self test

  5. Wenn das neue Firmware-Image abgelehnt wurde (z. B. aufgrund eines Validierungsfehlers), kann die Anwendung die Benachrichtigung in der Regel ignorieren und auf das nächste Update warten.

  6. Wenn das Update gültig ist und als akzeptiert markiert wurde, rufen Sie OTA_ActivateNewImage auf, um das Gerät zurückzusetzen und das neue Firmware-Image zu starten.

Portierung

Informationen zur Portierung der OTA-Funktionalität auf Ihre Plattform finden Sie unter Portierung der OTA-Bibliothek im FreeRTOS Porting Guide.

Speichernutzung

Codegröße von AWS IoT OTA (mit GCC für ARM Cortex-M generiertes Beispiel)
Datei Mit -O1-Optimierung Mit -Os-Optimierung
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
Schätzungen insgesamt 12,1 K 11,0 K