

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

# Fazer download, compilação, atualização e execução de demonstração OTA do FreeRTOS no RX65N da Renesas
<a name="download-rx65n-ota"></a>

**Importante**  <a name="deprecation-message"></a>
Essa integração de referência está hospedada no Amazon-FreeRTOS repositório que está obsoleto. Recomendamos [começar aqui](freertos-getting-started-modular.md) ao criar um novo projeto. Se você já tem um projeto FreeRTOS existente baseado no repositório agora Amazon-FreeRTOS obsoleto, consulte o. [Amazon-FreeRTOS Guia de migração do repositório Github](github-repo-migration.md)

Esse capítulo mostra como você faz download, compilação, atualização e execução das aplicações de demonstração OTA do FreeRTOS no RX65N da Renesas.

**Topics**
+ [Configuração do ambiente operacional](#download-rx65n-ota-environment)
+ [Configure seu AWS recursos](#download-rx65n-ota-setup)
+ [Importe, configure o arquivo de cabeçalho e compile aws\_demos e boot\_loader](#download-rx65n-ota-import-configure)

## Configuração do ambiente operacional
<a name="download-rx65n-ota-environment"></a>

Os procedimentos nesta seção usam os seguintes ambientes:
+ **IDE**: e2 studio 7.8.0, e2 studio 2020-07
+ **Cadeia de ferramentas**: compilador CCRX v3.0.1
+ **Dispositivos de destino**: RSKRX65N-2MB
+ **Depuradores**: emulador E2, E2 Lite
+ **Software**: Programador Renesas Flash, Renesas Secure Flash Programmer.exe, Tera Term

**Como configurar o hardware**

1. Conecte o emulador E2 Lite e a porta serial USB à placa RX65N e ao PC.

1. Conecte a fonte de alimentação ao RX65N.

## Configure seu AWS recursos
<a name="download-rx65n-ota-setup"></a>

1. Para executar as demonstrações do FreeRTOS, você deve ter AWS uma conta com um usuário do IAM que tenha permissão para acessar os serviços. AWS IoT Caso ainda não tenha, siga as etapas em [Configurando seu AWS conta e permissões](freertos-prereqs.md#freertos-account-and-permissions).

1. Para configurar as atualizações OTA, siga as etapas em [Pré-requisitos de atualização do OTA](ota-prereqs.md). Em especial, siga as etapas em [Pré-requisitos para atualizações de OTA usando MQTT](ota-mqtt-freertos.md).

1. Abra o [console do AWS IoT](https://console.aws.amazon.com/iot/home).

1. No painel de navegação à esquerda, escolha **Gerenciar** e, depois, **Coisas** para criar uma coisa.

   Uma coisa é uma representação de um dispositivo ou entidade lógica em AWS IoT. Ela pode ser um dispositivo físico ou sensor (por exemplo, uma lâmpada ou um interruptor em uma parede). Também pode ser uma entidade lógica, como uma instância de um aplicativo ou entidade física que não se conecta AWS IoT, mas está relacionada a dispositivos que o fazem (por exemplo, um carro com sensores de motor ou um painel de controle). AWS IoT fornece um registro de coisas que ajuda você a gerenciar suas coisas.

   1. Escolha **Criar** e **Criar uma única coisa**.

   1. Insira o **Nome** da coisa e escolha **Próximo**.

   1. Selecione **Criar certificado**.

   1. Faça download dos três arquivos criados e escolha **Ativar**. 

   1. Selecione a opção **Anexar uma política**.  
![tela do console mostrando os arquivos a serem baixados](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/download-these-files-rx65n.png)

   1. Selecione a política que você criou em [Política de dispositivo](ota-mqtt-freertos.md#ota-mqtt-freertos-device-policy).

      Cada dispositivo que recebe uma atualização OTA usando o MQTT deve ser registrado como um item AWS IoT e deve ter uma política anexada, como a listada. Você pode encontrar mais informações sobre os itens nos objetos `"Resource"` e `"Action"` em [Ações da política principal do AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-actions.html) e [Recursos da ação principal do AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-action-resources.html).

**Observações**
      + As `iot:Connect` permissões permitem que seu dispositivo se conecte AWS IoT ao MQTT.
      +  As permissões de `iot:Subscribe` e `iot:Publish` para tópicos de trabalhos da AWS IoT (`.../jobs/*`) permitem que o dispositivo conectado receba notificações de trabalho e documentos de trabalho, e publique o estado de conclusão da execução de um trabalho.
      + As `iot:Publish` permissões `iot:Subscribe` e sobre os tópicos de fluxos AWS IoT OTA (`.../streams/*`) permitem que o dispositivo conectado busque dados de atualização do OTA de. AWS IoT Essas permissões são necessárias para executar atualizações de firmware pelo MQTT.
      + As `iot:Receive` permissões AWS IoT Core permitem publicar mensagens sobre esses tópicos no dispositivo conectado. Essa permissão é verificada em cada entrega de uma mensagem de MQTT. Você pode usar essa permissão para revogar o acesso a clientes que estão inscritos em um tópico atualmente.

1. Para criar um perfil de assinatura de código e registrar um certificado de assinatura de código em. AWS

   1. Para criar as chaves e a certificação, consulte a seção 7.3 “Gerando pares de ECDSA-SHA256 chaves com OpenSSL” [na Política de design de atualização de firmware da Renesas MCU](https://www.renesas.com/us/en/document/apn/renesas-mcu-firmware-update-design-policy).

   1. Abra o [console do AWS IoT](https://console.aws.amazon.com/iot/home). No painel de navegação esquerdo, selecione **Gerenciar**, depois, **Trabalhos**. Selecione **Criar um trabalho**, depois **Criar trabalho de atualização OTA**. 

   1. Em **Selecionar dispositivos para atualizar**, escolha **Selecionar** e escolha a coisa que você criou anteriormente. Escolha **Próximo**. 

   1. Na página **Criar um trabalho de atualização OTA do FreeRTOS**, faça o seguinte:

      1. Em **Selecionar o protocolo para transferência de imagem do firmware**, escolha **MQTT**. 

      1. Em **Selecionar e assinar a imagem de firmware**, escolha **Assinar uma nova imagem de firmware para mim**. 

      1. Em **Perfil de assinatura de código**, escolha **Criar**.

      1. Na janela **Criar um perfil de assinatura de código**, insira um **nome de perfil**. Para a **plataforma de hardware de dispositivo**, selecione o **Windows Simulator**. Para o **certificado de assinatura de código**, escolha **Importar**.

      1. Navegue para selecionar o certificado (`secp256r1.crt`), a chave privada do certificado (`secp256r1.key`) e a cadeia de certificados (`ca.crt`).

      1. Insira um **nome de caminho do certificado de assinatura de código no dispositivo**. Em seguida, escolha **Criar**.

1. Para conceder acesso à assinatura de código para AWS IoT, siga as etapas em[Conceda acesso à assinatura de código para AWS IoT](code-sign-policy.md). 

Se não tiver o Tera Term instalado em seu PC, você pode baixá-lo [https://ttssh2.osdn.jp/index.html.en](https://ttssh2.osdn.jp/index.html.en)e configurá-lo conforme mostrado aqui. Conecte a porta serial USB do dispositivo ao PC.

![Janela de configuração da porta serial do Tera Term](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/tera-team-rx65n.png)


## Importe, configure o arquivo de cabeçalho e compile aws\_demos e boot\_loader
<a name="download-rx65n-ota-import-configure"></a>

Para começar, você seleciona a versão mais recente do pacote FreeRTOS, e ela será GitHub baixada e importada automaticamente para o projeto. Dessa forma, você pode se concentrar na configuração do FreeRTOS e na escrita do código da aplicação.

1. Lançamento do e2 studio.

1. Escolha o **Arquivo** e depois **Importar...**.

1. Selecione o **projeto Renesas GitHub FreeRTOS (com bibliotecas de IoT**).  
![janela de importação do e-squared studio](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/import-renesas-project-rx65n.png)

1. Escolha **Verificar mais versões...** para mostrar a caixa de diálogo de download.  
![janela de diálogo de download do e-squared studio](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/check-more-version-rx65n.png)

1. Selecione o pacote mais recente.  
![janela de diálogo de download do módulo do e-squared studio](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/choose-latest-version-rx65n.png)

1. Escolha **Concordo** para aceitar o contrato de licença do usuário final.  
![Diálogo de EULA do e-squared studio](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/eula-rx65n.png)

1. Aguarde a conclusão do download.  
![barra de progresso do download](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/downloading-rx65n.png)

1. Selecione os projetos **aws\_demos** e **boot\_loader** e escolha **Concluir** para importá-los.  
![janela de importação de projetos](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/import-projects-rx65n.png)

1. Para ambos os projetos, abra as propriedades do projeto. No painel de navegação, selecione **Editor de cadeia de ferramentas**.

   1. Escolha a **Cadeia de ferramentas atual**.

   1. Escolha o **Builder atual**.  
![janela de propriedades do e-squared studio](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/project-properties-rx65n.png)

1. No painel de navegação, selecione **Configurações**. Escolha a guia **Cadeia de ferramentas** e, em seguida, escolha a **Versão** da cadeia de ferramentas.  
![Configurações de integração do conjunto de ferramentas para Renesas CCRX versão v3.01.00, com opção para alterar o conjunto de ferramentas.](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/project-properties-toolchain-rx65n.png)

   Escolha a guia **Configurações de ferramenta**, expanda **Conversor** e escolha **Saída**. Na janela principal, verifique se **Arquivo hexadecimal de saída** está selecionado e escolha o **tipo de arquivo de saída**.  
![C/C++ Crie uma janela de configurações mostrando as opções do compilador e do vinculador, como arquivo hexadecimal de saída, tipo de arquivo de saída, diretório de saída e opções de divisão de arquivos.](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/project-properties-settings-rx65n.png)  
![Árvore de configurações de interface com opções para Stack Analysis, Tool Chain Editor, C/C ++ General, MCU, Project References, etc.](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/project-properties-settings-2-rx65n.png)

1. No projeto carregador de inicialização, abra `projects\renesas\rx65n-rsk\e2studio\boot_loader\src\key\code_signer_public_key.h` e insira a chave pública. [Para obter informações sobre como criar uma chave pública, consulte [Como implementar o FreeRTOS OTA usando o Amazon Web Services no RX65N e a seção 7.3 “ ECDSA-SHA256 Gerando pares de chaves com OpenSSL” na](https://www.renesas.com/us/en/document/apn/rx-family-how-implement-freertos-ota-using-amazon-web-services-rx65n) Política de design de atualização de firmware da Renesas MCU.](https://www.renesas.com/us/en/document/apn/renesas-mcu-firmware-update-design-policy)  
![Editor de código mostrando um arquivo de cabeçalho C com definição para CODE_SIGNER_PUBLIC_KEY e uma variável de chave pública do assinante do código. PEM-encoded](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/open-bootloader-project-rx65n.png)

   Em seguida, compile o projeto para criar `boot_loader.mot`.

1. Abra o projeto `aws_demos`.

   1. Abra o [console do AWS IoT](https://console.aws.amazon.com/iot/home).

   1. No painel de navegação à esquerda, escolha **Configurações**. Anote seu endpoint personalizado na caixa de texto **Endpoint de dados do dispositivo**.

   1. Escolha **Gerenciar** e, em seguida, **Coisas**. Anote o nome do AWS IoT item do seu quadro.

   1. No projeto `aws_demos`, abra `demos/include/aws_clientcredential.h` e especifique os seguintes valores.

      ```
      #define clientcredentialMQTT_BROKER_ENDPOINT[] = "{{Your AWS IoT endpoint}}";
      #define clientcredentialIOT_THING_NAME "{{The AWS IoT thing name of your board}}"
      ```  
![Trecho de código mostrando o nome da AWS IoT coisa e as configurações do endpoint do broker.](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/client-credential-rx65n.png)

   1. Abra o arquivo `tools/certificate_configuration/CertificateConfigurator.html`.

   1. Importe o arquivo PEM do certificado e o arquivo PEM da chave privada que você baixou anteriormente.

   1. Escolha **Gerar e salvar aws\_clientcredential\_keys.h** e substitua esse arquivo no diretório `demos/include/`.  
![Ferramenta de configuração de certificados com campos para fornecer arquivos PEM de certificado de cliente e chave privada a partir do AWS IoT console e um botão para gerar e salvar o arquivo aws_clientcredential_keys.h.](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/certificate-config-tool-rx65n.png)

   1. Abra o arquivo `vendors/renesas/boards/rx65n-rsk/aws_demos/config_files/ota_demo_config.h` e especifique esses valores.

      ```
      #define otapalconfigCODE_SIGNING_CERTIFICATE [] = "{{your-certificate-key}}";
      ```

      Onde {{your-certificate-key}} está o valor do arquivo`secp256r1.crt`. Lembre-se de adicionar "\\" após cada linha na certificação. [Para obter mais informações sobre a criação do `secp256r1.crt` arquivo, consulte [Como implementar o FreeRTOS OTA usando o Amazon Web Services no](https://www.renesas.com/us/en/document/apn/rx-family-how-implement-freertos-ota-using-amazon-web-services-rx65n) RX65N e a seção 7.3 “ ECDSA-SHA256 Gerando pares de chaves com OpenSSL” na Política de design de atualização de firmware da Renesas MCU.](https://www.renesas.com/us/en/document/apn/renesas-mcu-firmware-update-design-policy)  
![Arquivo de código-fonte mostrando o código C definindo uma string constante do certificado PEM-encoded do signatário do código com dados do certificado redigidos.](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/codesigner-cert-rx65n.png)

1. **Tarefa A: Instalar a versão inicial do firmware**

   1. Abra o arquivo `vendors/renesas/boards/board/aws_demos/config_files/aws_demo_config.h`, comente `#define CONFIG_CORE_MQTT_MUTUAL_AUTH_DEMO_ENABLED` e defina `CONFIG_OTA_MQTT_UPDATE_DEMO_ENABLED` ou `CONFIG_OTA_HTTP_UPDATE_DEMO_ENABLED`.

   1. Abra o arquivo `demos/include/ aws_application_version.h` e defina a versão inicial do firmware como `0.9.2`.  
![Trecho de código mostrando as definições de versão para um aplicativo, incluindo macros para números de versão principal, secundária e de compilação.](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/firmware-version-rx65n.png)

   1. Altere as configurações a seguir em **Visualizador de seção**.  
![Janela do visualizador de seções mostrando endereços de memória, nomes de seções como SU, SI, registradores e componentes de interface como buffers de rede, exceções e botões de ação.](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/section-viewer-rx65n.png)

   1. Escolha **Compilar** para criar o arquivo `aws_demos.mot`.

1. Crie o arquivo `userprog.mot` com o Renesas Secure Flash Programmer. `userprog.mot` é uma combinação de `aws_demos.mot` e `boot_loader.mot`. Você pode atualizar esse arquivo para o RX65N-RSK para instalar o firmware inicial.

   1. Baixe [https://github.com/renesas/Amazon-FreeRTOS-Tools](https://github.com/renesas/Amazon-FreeRTOS-Tools)e abra`Renesas Secure Flash Programmer.exe`.

   1. Escolha a guia **Firmware inicial** e defina os seguintes parâmetros:
      + **Caminho da chave privada**: a localização de `secp256r1.privatekey`.
      + **Caminho do arquivo do carregador de inicialização**: a localização de `boot_loader.mot` (`projects\renesas\rx65n-rsk\e2studio\boot_loader\HardwareDebug`).
      + **Caminho do arquivo**: a localização do arquivo `aws_demos.mot` (`projects\renesas\rx65n-rsk\e2studio\aws_demos\HardwareDebug`).  
![Janela do Renesas Secure Flash Programmer com campos para MCU, verificação de firmware, número de sequência, caminho da chave AES e caminho do arquivo.](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/secure-flash-rx65n.png)

   1. Crie um diretório chamado `init_firmware` gere `userprog.mot` e salve-o no diretório `init_firmware`. Verifique se o que foi gerado teve êxito.

1. Atualize o firmware inicial no RX65N-RSK.

   1. Baixe a versão mais recente do Renesas Flash Programmer (GUI de programação) em. [https://www.renesas.com/tw/en/products/software-tools/tools/programmer/renesas-flash-programmer-programming-gui.html](https://www.renesas.com/tw/en/products/software-tools/tools/programmer/renesas-flash-programmer-programming-gui.html) 

   1. Abra o arquivo `vendors\renesas\rx_mcu_boards\boards\rx65n-rsk\aws_demos\flash_project\erase_from_bank\ erase.rpj` para apagar dados no banco.

   1. Escolha **Iniciar** para apagar o banco.  
![Janela do Renesas Flash Programmer exibindo detalhes do projeto do microcontrolador RX Group, caminho do arquivo e opções de operação de flash, como Apagar, Programar e Verificar, com botões Iniciar e OK.](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/flash-programmer-erasing-rx65n.png)

   1. Para atualizar `userprog.mot`, escolha **Procurar...** e navegue até o diretório `init_firmware`, selecione o arquivo `userprog.mot` e escolha **Iniciar**.  
![Janela do Renesas Flash Programmer mostrando as configurações da operação de apagamento, incluindo o grupo RX do microcontrolador, opção para navegar pelo arquivo do programa, botões Apagar e Iniciar, e detalhes do status dos blocos selecionados para apagar.](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/flash-programmer-complete-rx65n.png)

1. A versão 0.9.2 (versão inicial) do firmware foi instalada no seu. RX65N-RSK A RX65N-RSK diretoria agora está ouvindo as atualizações do OTA. Ao abrir o Tera Term no PC, você verá algo parecido com o seguinte quando o firmware inicial for executado.

   ```
   -------------------------------------------------
   RX65N secure boot program
   -------------------------------------------------
   Checking flash ROM status.
   bank 0 status = 0xff [LIFECYCLE_STATE_BLANK]
   bank 1 status = 0xfc [LIFECYCLE_STATE_INSTALLING]
   bank info = 1. (start bank = 0)
   start installing user program.
   copy secure boot (part1) from bank0 to bank1...OK
   copy secure boot (part2) from bank0 to bank1...OK
   update LIFECYCLE_STATE from [LIFECYCLE_STATE_INSTALLING] to [LIFECYCLE_STATE_VALID]
   bank1(temporary area) block0 erase (to update LIFECYCLE_STATE)...OK
   bank1(temporary area) block0 write (to update LIFECYCLE_STATE)...OK
   swap bank...
   -------------------------------------------------
   RX65N secure boot program
   -------------------------------------------------
   Checking flash ROM status.
   bank 0 status = 0xf8 [LIFECYCLE_STATE_VALID]
   bank 1 status = 0xff [LIFECYCLE_STATE_BLANK]
   bank info = 0. (start bank = 1)
   integrity check scheme = sig-sha256-ecdsa
   bank0(execute area) on code flash integrity check...OK
   jump to user program
   0 1 [ETHER_RECEI] Deferred Interrupt Handler Task started
   1 1 [ETHER_RECEI] Network buffers: 3 lowest 3
   2 1 [ETHER_RECEI] Heap: current 234192 lowest 234192
   3 1 [ETHER_RECEI] Queue space: lowest 8
   4 1 [IP-task] InitializeNetwork returns OK
   5 1 [IP-task] xNetworkInterfaceInitialise returns 0
   6 101 [ETHER_RECEI] Heap: current 234592 lowest 233392
   7 2102 [ETHER_RECEI] prvEMACHandlerTask: PHY LS now 1
   8 3001 [IP-task] xNetworkInterfaceInitialise returns 1
   9 3092 [ETHER_RECEI] Network buffers: 2 lowest 2
   10 3092 [ETHER_RECEI] Queue space: lowest 7
   11 3092 [ETHER_RECEI] Heap: current 233320 lowest 233320
   12 3193 [ETHER_RECEI] Heap: current 233816 lowest 233120
   13 3593 [IP-task] vDHCPProcess: offer c0a80a09ip
   14 3597 [ETHER_RECEI] Heap: current 233200 lowest 233000
   15 3597 [IP-task] vDHCPProcess: offer c0a80a09ip
   16 3597 [IP-task] IP Address: 192.168.10.9
   17 3597 [IP-task] Subnet Mask: 255.255.255.0
   18 3597 [IP-task] Gateway Address: 192.168.10.1
   19 3597 [IP-task] DNS Server Address: 192.168.10.1
   20 3600 [Tmr Svc] The network is up and running
   21 3622 [Tmr Svc] Write certificate...
   22 3697 [ETHER_RECEI] Heap: current 232320 lowest 230904
   23 4497 [ETHER_RECEI] Heap: current 226344 lowest 225944
   24 5317 [iot_thread] [INFO ][DEMO][5317] ---------STARTING DEMO---------
   
   25 5317 [iot_thread] [INFO ][INIT][5317] SDK successfully initialized.
   26 5317 [iot_thread] [INFO ][DEMO][5317] Successfully initialized the demo. Network type for the demo: 4
   27 5317 [iot_thread] [INFO ][MQTT][5317] MQTT library successfully initialized.
   28 5317 [iot_thread] [INFO ][DEMO][5317] OTA demo version 0.9.2
   
   29 5317 [iot_thread] [INFO ][DEMO][5317] Connecting to broker...
   
   30 5317 [iot_thread] [INFO ][DEMO][5317] MQTT demo client identifier is rx65n-gr-rose (length 13).
   31 5325 [ETHER_RECEI] Heap: current 206944 lowest 206504
   32 5325 [ETHER_RECEI] Heap: current 206440 lowest 206440
   33 5325 [ETHER_RECEI] Heap: current 206240 lowest 206240
   38 5334 [ETHER_RECEI] Heap: current 190288 lowest 190288
   39 5334 [ETHER_RECEI] Heap: current 190088 lowest 190088
   40 5361 [ETHER_RECEI] Heap: current 158512 lowest 158168
   41 5363 [ETHER_RECEI] Heap: current 158032 lowest 158032
   42 5364 [ETHER_RECEI] Network buffers: 1 lowest 1
   43 5364 [ETHER_RECEI] Heap: current 156856 lowest 156856
   44 5364 [ETHER_RECEI] Heap: current 156656 lowest 156656
   46 5374 [ETHER_RECEI] Heap: current 153016 lowest 152040
   47 5492 [ETHER_RECEI] Heap: current 141464 lowest 139016
   48 5751 [ETHER_RECEI] Heap: current 140160 lowest 138680
   49 5917 [ETHER_RECEI] Heap: current 138280 lowest 138168
   59 7361 [iot_thread] [INFO ][MQTT][7361] Establishing new MQTT connection.
   62 7428 [iot_thread] [INFO ][MQTT][7428] (MQTT connection 81cfc8, CONNECT operation 81d0e8) Wait complete with result SUCCESS.
   63 7428 [iot_thread] [INFO ][MQTT][7428] New MQTT connection 4e8c established.
   64 7430 [iot_thread] [OTA_AgentInit_internal] OTA Task is Ready.
   65 7430 [OTA Agent T] [prvOTAAgentTask] Called handler. Current State [Ready] Event [Start] New state [RequestingJob]
   66 7431 [OTA Agent T] [INFO ][MQTT][7431] (MQTT connection 81cfc8) SUBSCRIBE operation scheduled.
   67 7431 [OTA Agent T] [INFO ][MQTT][7431] (MQTT connection 81cfc8, SUBSCRIBE operation 818c48) Waiting for operation completion.
   68 7436 [ETHER_RECEI] Heap: current 128248 lowest 127992
   69 7480 [OTA Agent T] [INFO ][MQTT][7480] (MQTT connection 81cfc8, SUBSCRIBE operation 818c48) Wait complete with result SUCCESS.
   70 7480 [OTA Agent T] [prvSubscribeToJobNotificationTopics] OK: $aws/things/rx65n-gr-rose/jobs/$next/get/accepted
   71 7481 [OTA Agent T] [INFO ][MQTT][7481] (MQTT connection 81cfc8) SUBSCRIBE operation scheduled.
   72 7481 [OTA Agent T] [INFO ][MQTT][7481] (MQTT connection 81cfc8, SUBSCRIBE operation 818c48) Waiting for operation completion.
   73 7530 [OTA Agent T] [INFO ][MQTT][7530] (MQTT connection 81cfc8, SUBSCRIBE operation 818c48) Wait complete with result SUCCESS.
   74 7530 [OTA Agent T] [prvSubscribeToJobNotificationTopics] OK: $aws/things/rx65n-gr-rose/jobs/notify-next
   75 7530 [OTA Agent T] [prvRequestJob_Mqtt] Request #0
   76 7532 [OTA Agent T] [INFO ][MQTT][7532] (MQTT connection 81cfc8) MQTT PUBLISH operation queued.
   77 7532 [OTA Agent T] [INFO ][MQTT][7532] (MQTT connection 81cfc8, PUBLISH operation 818b80) Waiting for operation completion.
   78 7552 [OTA Agent T] [INFO ][MQTT][7552] (MQTT connection 81cfc8, PUBLISH operation 818b80) Wait complete with result SUCCESS.
   79 7552 [OTA Agent T] [prvOTAAgentTask] Called handler. Current State [RequestingJob] Event [RequestJobDocument] New state [WaitingForJob]
   80 7552 [OTA Agent T] [prvParseJSONbyModel] Extracted parameter [ clientToken: 0:rx65n-gr-rose ]
   81 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: execution
   82 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: jobId
   83 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: jobDocument
   84 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: afr_ota
   85 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: protocols
   86 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: files
   87 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: filepath
   99 7651 [ETHER_RECEI] Heap: current 129720 lowest 127304
   100 8430 [iot_thread] [INFO ][DEMO][8430] State: Ready  Received: 1   Queued: 0   Processed: 0   Dropped: 0
   101 9430 [iot_thread] [INFO ][DEMO][9430] State: WaitingForJob  Received: 1   Queued: 0   Processed: 0   Dropped: 0
   102 10430 [iot_thread] [INFO ][DEMO][10430] State: WaitingForJob  Received: 1   Queued: 0   Processed: 0   Dropped: 0
   103 11430 [iot_thread] [INFO ][DEMO][11430] State: WaitingForJob  Received: 1   Queued: 0   Processed: 0   Dropped: 0
   104 12430 [iot_thread] [INFO ][DEMO][12430] State: WaitingForJob  Received: 1   Queued: 0   Processed: 0   Dropped: 0
   105 13430 [iot_thread] [INFO ][DEMO][13430] State: WaitingForJob  Received: 1   Queued: 0   Processed: 0   Dropped: 0
   106 14430 [iot_thread] [INFO ][DEMO][14430] State: WaitingForJob  Received: 1   Queued: 0   Processed: 0   Dropped: 0
   107 15430 [iot_thread] [INFO ][DEMO][15430] State: WaitingForJob  Received: 1   Queued: 0   Processed: 0   Dropped: 0
   ```

1. **Tarefa B: Atualização da versão do firmware**

   1. Abra o arquivo `demos/include/aws_application_version.h` e incremente o valor do token `APP_VERSION_BUILD` para `0.9.3`.

   1. Recrie o projeto.

1. Crie o arquivo `userprog.rsu` com o Renesas Secure Flash Programmer para atualizar a versão do seu firmware.

   1. Abra o arquivo `Amazon-FreeRTOS-Tools\Renesas Secure Flash Programmer.exe`.

   1. Escolha a guia **Atualizar firmware** e defina os seguintes parâmetros:
      + **Caminho do arquivo**: a localização do arquivo `aws_demos.mot` (`projects\renesas\rx65n-rsk\e2studio\aws_demos\HardwareDebug`).

   1. Crie um diretório denominado `update _firmware`. Gere `userprog.rsu` e salve-o no diretório `update_firmware`. Verifique se o que foi gerado teve êxito.  
![Janela do Renesas Secure Flash Programmer com seleção de MCU, tipo de verificação de firmware, número de sequência, campo de chave MAC AES e entrada de caminho de arquivo para geração de firmware seguro.](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/update-firmware-rx65n.png)

1. Faça o upload da atualização do firmware `userproj.rsu`, em um bucket do Amazon S3, conforme descrito em [Criação de um bucket do Amazon S3 para armazenar a atualização](dg-ota-bucket.md).   
![Interface de gerenciamento de buckets do Amazon S3 com opções para pastas, uploads, versões e permissões](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/upload-firmware-rx65n.png)

1. Crie um trabalho para atualizar o firmware no RX65N-RSK.

   AWS IoT Jobs é um serviço que notifica um ou mais dispositivos conectados sobre um [Job](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs.html) pendente. Um trabalho pode ser usado para gerenciar uma frota de dispositivos, atualizar o firmware e os certificados de segurança em dispositivos ou realizar tarefas administrativas, como reiniciar dispositivos e realizar diagnósticos.

   1. Faça login no [console do AWS IoT](https://console.aws.amazon.com/iotv2/). No painel de navegação, escolha **Gerenciar** e escolha **Trabalhos**.

   1. Escolha **Criar um trabalho**, e escolha **Criar trabalho de atualização OTA**. Selecione uma coisa e escolha **Avançar**.

   1. Crie um trabalho de atualização OTA do FreeRTOS desta forma:
      + Escolha **MQTT**.
      + Selecione o perfil de assinatura de código criado na seção anterior.
      + Selecione a imagem do firmware que você carregou em um bucket do Amazon S3.
      + Em **Nome do caminho da imagem do firmware no dispositivo**, insira **test**.
      + Selecione o perfil do IAM que você criou na seção anterior.

   1. Escolha **Próximo**.  
![Configurações de assinatura de imagem de firmware e atualização OTA com opções para assinar um novo firmware, selecionar um firmware previamente assinado, usar um firmware com assinatura personalizada, especificar o perfil de assinatura de código, o arquivo de imagem do firmware, o caminho no dispositivo e o perfil do IAM para a tarefa de atualização OTA.](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/create-job-next-rx65n.png)

   1. Insira um ID e escolha **Criar**.

1. Reabra o Tera Term para verificar se o firmware foi atualizado com êxito para a versão de demonstração 0.9.3 do OTA.  
![Saída da linha de comando mostrando a inicialização e a conexão de uma thread a um agente.](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/update-successful-rx65n.png)

1. No AWS IoT console, verifique se o status do trabalho é **Bem-sucedido**.  
![Visão geral do trabalho OTA-demo de teste AFR mostrando que 1 recurso foi bem-sucedido.](http://docs.aws.amazon.com/pt_br/freertos/latest/userguide/images/completed-succeeded-rx65n.png)