Biblioteca do agente OTA - FreeRTOS

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.

  1. Conecte-se ao corretor AWS IoT MQTT. Para obter mais informações, consulte Biblioteca coreMQTT.

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

  3. Se o OTA_AgentInit expirou antes que o agente estivesse pronto, você pode chamar OTA_GetAgentState para confirmar que o agente foi inicializado e está operando conforme o esperado.

  4. 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, ou self test.

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

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