Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Libreria dell'agente OTA
Importante
Questa è una versione archiviata della FreeRTOS User Guide da utilizzare con la versione FreeRTOS 202012.00. Per l'ultima versione di questo documento, consulta la FreerTOS User Guide.
Panoramica
Libreria dell'agente OTAConsente di gestire la notifica, il download e la verifica degli aggiornamenti del firmware per i dispositivi FreerTOS utilizzando HTTP o MQTT come protocollo. Utilizzando la libreria dell'agente OTA, è possibile separare logicamente gli aggiornamenti firmware e l'applicazione in esecuzione sul dispositivo. L'agente OTA può condividere una connessione di rete con l'applicazione. Mediante la condivisione di una connessione di rete, è possibile ottenere un potenziale risparmio di una notevole quantità di RAM. Inoltre, la libreria dell'agente OTA consente di definire la logica specifica dell'applicazione per il testing, il commit o il rollback di un aggiornamento del firmware.
Per ulteriori informazioni sulla configurazione degli aggiornamenti OTA con FreerTOS, vedere. Aggiornamenti FreerTOS Over-the-Air
Funzionalità
Di seguito è riportata l'interfaccia completa dell'agente OTA:
OTA_AgentInit
-
Inizializza l'agente OTA. Il chiamante fornisce il contesto del protocollo di messaggistica, un callback opzionale e un timeout.
OTA_AgentShutdown
-
Libera le risorse dopo l'utilizzo dell'agente OTA.
OTA_GetAgentState
-
Ritorna lo stato corrente dell'agente OTA.
OTA_ActivateNewImage
-
Attiva l'immagine del firmware più recente del microcontroller ricevuta tramite OTA. (Lo stato del processo dettagliato ora dovrebbe essere self-test).
OTA_SetImageState
-
Imposta lo stato della convalida dell'immagine del firmware del microcontroller attualmente in esecuzione (testing, accettato o rifiutato).
OTA_GetImageState
-
Ottiene lo stato della convalida dell'immagine del firmware del microcontroller attualmente in esecuzione (testing, accettato o rifiutato).
OTA_CheckForUpdate
-
Richiede l'aggiornamento OTA successivo disponibile dal servizio aggiornamenti OTA.
OTA_Suspend
-
Sospendere tutte le operazioni dell'agente OTA.
OTA_Resume
-
Riprendi le operazioni dell'agente OTA.
Riferimento API
Per ulteriori informazioni, consulta il riferimento all'API di OTA Agent.
Esempio di utilizzo
Un'applicazione per un dispositivi compatibili con OTA che utilizza il protocollo MQTT consente di gestire l'agente OTA utilizzando la seguente sequenza di chiamate API.
-
Connect al broker AWS IoT MQTT. Per ulteriori informazioni, consulta libreria CoreMQTT.
-
Inizializzare l'agente OTA richiamando
OTA_AgentInit
. L'applicazione potrebbe definire una funzione di callback OTA personalizzata oppure utilizzare il callback predefinito specificando un puntatore NULL alla funzione di callback. È necessario anche fornire un timeout di inizializzazione.Il callback implementa la logica specifica dell'applicazione che viene eseguita dopo il completamento di un processo di aggiornamento OTA. Il timeout definisce il tempo di attesa per il completamento dell'inizializzazione.
-
Se
OTA_AgentInit
ha raggiunto il timeout prima che l'agente fosse pronto, puoi richiamareOTA_GetAgentState
per verificare che l'agente sia stato inizializzato e che stia funzionando come previsto. -
Quando l'aggiornamento OTA è completo, FreerTOS richiama il callback di completamento del lavoro con uno dei seguenti eventi
accepted
:, o.rejected
self test
-
Se la nuova immagine del firmware è stata rifiutata (ad esempio a causa di un errore di convalida), l'applicazione può in genere ignorare la notifica e attendere l'aggiornamento successivo.
-
Se l'aggiornamento è valido ed è stato contrassegnato come accettato, chiama
OTA_ActivateNewImage
per ripristinare il dispositivo e avviare la nuova immagine del firmware.
Portabilità
Per informazioni sulla portabilità della funzionalità OTA sulla tua piattaforma, consulta Porting the OTA Library nella FreerTOS Porting Guide.
Uso della memoria
Dimensione del codice di AWS IoT OTA (esempio generato con GCC per ARM Cortex-M) | ||
---|---|---|
File | Con ottimizzazione -O1 | Con ottimizzazione -Os |
ota.c | 8,0K | 7,2K |
ota_interface. | 0,1 K | 0,1 K |
ota_base64.c | 0,6K | 0,6 K |
ota_mqtt.c | 2,3K | 2,2 K |
ota_cbor.c | 0,8K | 0,6 K |
ota_http.c | 0,3K | 0,3 K |
Stime totali | 12,1 K | 11,0 K |