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.
-
Connect zum AWS IoT MQTT-Broker her. Weitere Informationen finden Sie unter CoreMQTT-Bibliothek.
-
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.
-
Wenn
OTA_AgentInit
abgelaufen ist, bevor der Agent bereit war, können SieOTA_GetAgentState
aufrufen, um zu bestätigen, dass der Agent initialisiert ist und wie erwartet arbeitet. -
Wenn das OTA-Update abgeschlossen ist, ruft FreeRTOS den Job-Completion-Callback mit einem der folgenden Ereignisse auf:
accepted
,,rejected
oder.self test
-
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.
-
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 |