As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Biblioteca do agente OTA
Importante
Esta é uma versão arquivada do Guia do usuário do FreeRTOS para usar com a versão 202012.00 do FreeRTOS. Para obter a versão mais recente deste documento, consulte o Guia do usuário do FreeRTOS.
Visão geral
A Biblioteca do agente OTA permite gerenciar as notificações, o download e a verificação de atualizações de firmware para dispositivos FreeRTOS usando HTTP ou MQTT como protocolo. Usando a biblioteca do agente OTA, você pode separar logicamente as atualizações de firmware e a aplicação em execução nos dispositivos. O agente OTA pode compartilhar uma conexão de rede com a aplicação. Ao compartilhar uma conexão de rede, você pode economizar uma quantidade significativa de RAM. Além disso, a biblioteca do agente OTA permite que você defina a lógica específica da aplicação para testar, confirmar ou reverter uma atualização de firmware.
Para obter mais informações sobre como configurar atualizações OTA com o FreeRTOS consulte Atualizações do FreeRTOS Over-the-Air.
Atributos
Esta é a interface completa do agente OTA:
OTA_AgentInit
-
Inicializa o agente OTA. O chamador fornece o contexto do protocolo de mensagens, um retorno de chamada opcional e um tempo limite.
OTA_AgentShutdown
-
Remove os recursos depois de usar o agente OTA.
OTA_GetAgentState
-
Obtém o estado atual do agente OTA.
OTA_ActivateNewImage
-
Ativa a mais nova imagem de firmware do microcontrolador recebida pelo OTA. (O status detalhado do trabalho agora deve ser teste automático.)
OTA_SetImageState
-
Define o estado de validação da imagem do firmware do microcontrolador atualmente em execução (teste, aceito ou rejeitado).
OTA_GetImageState
-
Obtém o estado da imagem do firmware do microcontrolador atualmente em execução (teste, aceito ou rejeitado).
OTA_CheckForUpdate
-
Solicita a próxima atualização OTA disponível do serviço de atualização OTA.
OTA_Suspend
-
Suspenda todas as operações do atendente OTA.
OTA_Resume
-
Reinicie as operações do agente OTA.
Referência da API
Para obter mais informações, consulte a Referência da API do agente OTA.
Exemplo de uso
Uma aplicação de dispositivo compatível com OTA típico usando o protocolo MQTT direciona o agente OTA usando a seguinte sequência de chamadas de API.
-
Conecte-se ao corretor AWS IoT MQTT. Para obter mais informações, consulte Biblioteca coreMQTT.
-
Inicialização do agente OTA chamando
OTA_AgentInit
. A aplicação pode definir uma função de retorno de chamada OTA personalizada ou usar o retorno de chamada padrão, especificando um ponteiro de função de retorno de chamada NULL. Também é necessário fornecer um tempo limite de inicialização.O retorno de chamada implementa a lógica específica da aplicação que é executada após a conclusão de um trabalho de atualização OTA. O tempo limite define quanto tempo aguardar a conclusão da inicialização.
-
Se o
OTA_AgentInit
expirou antes que o agente estivesse pronto, você pode chamarOTA_GetAgentState
para confirmar que o agente foi inicializado e está operando conforme o esperado. -
Quando a atualização OTA estiver concluída, o FreeRTOS chamará o retorno de chamada da conclusão do trabalho com um dos seguintes eventos:
accepted
,rejected
, ouself test
. -
Se a nova imagem de firmware tiver sido rejeitada (por exemplo, devido a um erro de validação), a aplicação normalmente poderá ignorar a notificação e aguardar a próxima atualização.
-
Se a atualização for válida e tiver sido marcada como aceita, chame
OTA_ActivateNewImage
para redefinir o dispositivo e inicializar a nova imagem de firmware.
Portabilidade
Para obter informações sobre como fazer a portabilidade da funcionalidade OTA para sua plataforma, consulte Portabilidade da biblioteca OTA no Guia de portabilidade do FreeRTOS.
Uso de memória
Tamanho do código do AWS IoT OTA (exemplo gerado com GCC para ARM Cortex-M) | ||
---|---|---|
Arquivo | Com otimização -O1 | Com otimização -Os |
ota.c | 8,0 K | 7,2 K |
ota_interface.c | 0,1 mil | 0,1 mil |
ota_base64.c | 0,6 mil | 0,6 mil |
ota_mqtt.c | 2,3 K | 2,2 K |
ota_cbor.c | 0,8 mil | 0,6 mil |
ota_http.c | 0,3 mil | 0,3 mil |
Estimativas totais | 12,1 K | 11,0 K |