Libreria dell'agente OTA - FreeRTOS

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.

  1. Connect al broker AWS IoT MQTT. Per ulteriori informazioni, consulta libreria CoreMQTT.

  2. 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.

  3. Se OTA_AgentInit ha raggiunto il timeout prima che l'agente fosse pronto, puoi richiamare OTA_GetAgentState per verificare che l'agente sia stato inizializzato e che stia funzionando come previsto.

  4. Quando l'aggiornamento OTA è completo, FreerTOS richiama il callback di completamento del lavoro con uno dei seguenti eventiaccepted:, o. rejected self test

  5. 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.

  6. 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