

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Descarga, creación, instalación y ejecución de la demostración de OTA de FreeRTOS en Renesas RX65N
<a name="download-rx65n-ota"></a>

**importante**  <a name="deprecation-message"></a>
Esta integración de referencia está alojada en el Amazon-FreeRTOS repositorio, que está en desuso. Recomendamos [empezar por aquí](freertos-getting-started-modular.md) al crear un nuevo proyecto. Si ya tiene un proyecto de Freertos existente basado en el Amazon-FreeRTOS repositorio ahora obsoleto, consulte la. [Amazon-FreeRTOS Guía de migración del repositorio de Github](github-repo-migration.md)

En este capítulo se muestra cómo descargar, crear, instalar y ejecutar la demostración de OTA de FreeRTOS en Renesas RX65N.

**Topics**
+ [Configuración del entorno operativo](#download-rx65n-ota-environment)
+ [Configure su AWS recursos](#download-rx65n-ota-setup)
+ [Importación, configuración del archivo de encabezado y creación de aws\_demos y boot\_loader](#download-rx65n-ota-import-configure)

## Configuración del entorno operativo
<a name="download-rx65n-ota-environment"></a>

Para los procedimientos de esta sección se requieren los siguientes entornos:
+ **IDE**: e2 studio 7.8.0, e2 studio 2020-07
+ **Cadenas de herramientas**: CCRX Compiler v3.0.1
+ **Dispositivos de destino**: RSKRX65N-2MB
+ **Depuradores**: emulador E2, E2 Lite
+ **Software**: Renesas Flash Programmer, Renesas Secure Flash Programmer.exe, Tera Term

**Configuración del hardware**

1. Conecte el emulador E2 Lite y el puerto serie USB a la placa RX65N y al PC.

1. Conecte la fuente de alimentación a RX65N.

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

1. Para ejecutar las demostraciones de FreeRTOS, debe tener una AWS cuenta con un usuario de IAM que tenga permiso para acceder a los servicios. AWS IoT Si aún no lo ha hecho, siga los pasos que se indican en [Configurando tu AWS cuenta y permisos](freertos-prereqs.md#freertos-account-and-permissions).

1. Para configurar las actualizaciones de OTA, siga los pasos que se indican en [Requisitos previos de actualización OTA](ota-prereqs.md). En concreto, siga los pasos que se indican en [Requisitos previos para las actualizaciones de OTA mediante MQTT](ota-mqtt-freertos.md).

1. Abra la [consola de AWS IoT](https://console.aws.amazon.com/iot/home).

1. En el panel de navegación izquierdo, elija **Administrar** y, a continuación, **Objetos**.

   Un objeto es una representación de un dispositivo o de una entidad lógica de AWS IoT. Puede ser un dispositivo físico o un sensor (por ejemplo, una bombilla o un interruptor en la pared). También puede ser una entidad lógica, como una instancia de una aplicación o entidad física, que no se conecta AWS IoT, pero que está relacionada con los dispositivos que sí lo hacen (por ejemplo, un automóvil con sensores de motor o un panel de control). AWS IoT proporciona un registro de cosas que le ayuda a administrarlas.

   1. Elija **Crear** y después **Crear un solo objeto**.

   1. Introduzca un **Nombre** para el objeto y, a continuación, seleccione **Siguiente**.

   1. Elija **Create certificate**.

   1. Descargue los tres archivos que se crean y, a continuación, seleccione **Activar**. 

   1. Elija **Attach a policy (Asociar una política)**.  
![pantalla de consola que muestra los archivos que se van a descargar](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/download-these-files-rx65n.png)

   1. Seleccione la política que creó en [Política de dispositivos](ota-mqtt-freertos.md#ota-mqtt-freertos-device-policy).

      Cada dispositivo que reciba una actualización OTA mediante MQTT debe estar registrado AWS IoT y tener una política adjunta como la que aparece en la lista. Puede encontrar más información acerca de los elementos de los objetos `"Resource"` y `"Action"` en las [Acciones de la política principal de AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-actions.html) y en los [recursos de acciones principales de AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-action-resources.html).

**Notas**
      + Los `iot:Connect` permisos permiten que el dispositivo se conecte a AWS IoT través de MQTT.
      + Los permisos `iot:Subscribe` y `iot:Publish` en los temas de trabajos de AWS IoT (`.../jobs/*`) permiten que el dispositivo conectado reciba notificaciones de trabajo y documentos de trabajo, y publique el estado de finalización de una ejecución de trabajo.
      + Los `iot:Publish` permisos `iot:Subscribe` y relacionados con los temas de las transmisiones AWS IoT OTA (`.../streams/*`) permiten al dispositivo conectado obtener datos de actualización de OTA. AWS IoT Estos permisos son necesarios para realizar actualizaciones de firmware sobre MQTT.
      + Los `iot:Receive` permisos permiten AWS IoT Core publicar mensajes sobre esos temas en el dispositivo conectado. Este permiso se verifica en cada entrega de un mensaje MQTT. Puede utilizar este permiso para revocar el acceso a los clientes que están actualmente suscritos a un tema.

1. Para crear un perfil de firma de código y registrar un certificado de firma de código en él. AWS

   1. Para crear las claves y la certificación, consulte la sección 7.3 «Generación de pares de ECDSA-SHA256 claves con OpenSSL» [en la Política de diseño de la actualización del firmware del MCU de Renesas](https://www.renesas.com/us/en/document/apn/renesas-mcu-firmware-update-design-policy).

   1. Abra la [consola de AWS IoT](https://console.aws.amazon.com/iot/home). En el panel de navegación izquierdo, elija **Administrar** y, a continuación, **Trabajos**. Seleccione **Crear un trabajo** y, a continuación, **Crear trabajo de actualiz. de OTA**. 

   1. En **Seleccionar dispositivos para actualizar**, elija **Seleccionar** y, a continuación, elija el objeto que creó anteriormente. Seleccione **Siguiente**. 

   1. En la página **Crear un trabajo de actualización OTA de FreeRTOS**, realice lo siguiente:

      1. En **Seleccionar el protocolo para la transferencia de imágenes de firmware**, elija **MQTT**. 

      1. En **Seleccionar y firmar la imagen de firmware**, elija **Firmar una nueva imagen de firmware por mí**. 

      1. En **Perfil de firma de código**, elija **Crear**.

      1. En la ventana **Crear un perfil de firma de código**, introduzca un **Nombre de perfil**. En **Plataforma de hardware de dispositivos**, seleccione **Simulador de Windows**. En **Certificado de firma de código**, elija **Importar**.

      1. Busque para seleccionar el certificado (`secp256r1.crt`), la clave privada del certificado (`secp256r1.key`) y la cadena de certificados (`ca.crt`).

      1. Introduzca el **Nombre de ruta del certificado de firma de código en el dispositivo**. A continuación, seleccione **Crear**.

1. Para conceder acceso a la firma de código AWS IoT, siga los pasos que se indican. [Conceda acceso a la firma de código para AWS IoT](code-sign-policy.md) 

Si no tienes Tera Term instalado en tu PC, puedes descargarlo [https://ttssh2.osdn.jp/index.html.en](https://ttssh2.osdn.jp/index.html.en)y configurarlo como se muestra aquí. Asegúrese de conectar el puerto serie USB del dispositivo al PC.

![Ventana de configuración del puerto serie Tera Term](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/tera-team-rx65n.png)


## Importación, configuración del archivo de encabezado y creación de aws\_demos y boot\_loader
<a name="download-rx65n-ota-import-configure"></a>

Para empezar, selecciona la última versión del paquete FreeRTOS, que se descargará GitHub e importará automáticamente al proyecto. De esta forma, puede centrarse en la configuración de FreeRTOS y en escribir el código de la aplicación.

1. Inicie e2 studio.

1. Elija **Archivo** y, a continuación, **Importar**.

1. Seleccione el **proyecto Renesas GitHub FreeRTOS (con bibliotecas de IoT)**.  
![Ventana de importación de e-squared studio](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/import-renesas-project-rx65n.png)

1. Seleccione **Buscar más versiones…** para mostrar el cuadro de diálogo de descarga.  
![Ventana de cuadro de diálogo de descarga de e-squared studio](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/check-more-version-rx65n.png)

1. Seleccione el paquete más reciente.  
![Ventana de cuadro de diálogo de descarga del módulo e-squared studio](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/choose-latest-version-rx65n.png)

1. Elija **Acepto** para aceptar el acuerdo de licencia de usuario final.  
![Cuadro de diálogo de EULA de e-squared studio](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/eula-rx65n.png)

1. Espere a que finalice la descarga.  
![Barra de progreso de descarga](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/downloading-rx65n.png)

1. Seleccione los proyectos **aws\_demos** y **boot\_loader** y, a continuación, seleccione **Finalizar** para importarlos.  
![Ventana de importación de proyectos](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/import-projects-rx65n.png)

1. Para ambos proyectos, abra las propiedades del proyecto. En el panel de navegación, elija **Editor de cadena de herramientas**.

   1. Elija la **Cadena de herramientas actual**.

   1. Elija el **Creador actual**.  
![Ventana de propiedades de e-squared studio](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/project-properties-rx65n.png)

1. En el panel de navegación, seleccione **Configuración**. Seleccione la pestaña **Cadena de herramientas** y, a continuación, elija la **Versión** de la cadena de herramientas.  
![Configuración de integración de la cadena de herramientas para la versión 3.01.00 del CCRX de Renesas, con la opción de cambiar la cadena de herramientas.](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/project-properties-toolchain-rx65n.png)

   Seleccione la pestaña **Configuración de la herramienta**, expanda **Convertidor** y, a continuación, seleccione **Salida**. En la ventana principal, asegúrese de seleccionar **Archivo hexadecimal de salida** y, a continuación, elija el **Tipo de archivo de salida**.  
![C/C++ Cree una ventana de ajustes de configuración que muestre las opciones del compilador y el enlazador, como el archivo hexadecimal de salida, el tipo de archivo de salida, el directorio de salida y las opciones de división de archivos.](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/project-properties-settings-rx65n.png)  
![Árbol de configuración de la interfaz con opciones para Stack Analysis, Tool Chain Editor, C/C ++ General, MCU, Project References, etc.](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/project-properties-settings-2-rx65n.png)

1. En el proyecto del cargador de arranque, abra `projects\renesas\rx65n-rsk\e2studio\boot_loader\src\key\code_signer_public_key.h` e introduzca la clave pública. [Para obtener información sobre cómo crear una clave pública, consulte [Cómo implementar FreeRTOS OTA mediante Amazon Web Services en el RX65N y la sección 7.3 «Generación de ECDSA-SHA256 pares de claves con OpenSSL» en](https://www.renesas.com/us/en/document/apn/rx-family-how-implement-freertos-ota-using-amazon-web-services-rx65n) la Política de diseño de actualizaciones de firmware del MCU de Renesas.](https://www.renesas.com/us/en/document/apn/renesas-mcu-firmware-update-design-policy)  
![Editor de código que muestra un archivo de encabezado en C con la definición de CODE_SIGNER_PUBLIC_KEY y una variable de clave pública del firmante de código. PEM-encoded](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/open-bootloader-project-rx65n.png)

   Para crear el proyecto para crear `boot_loader.mot`.

1. Abra el proyecto `aws_demos`.

   1. Abra la [consola de AWS IoT](https://console.aws.amazon.com/iot/home).

   1. En el panel de navegación izquierdo, elija **Configuración**. Anote su punto de conexión personalizado en el cuadro de texto **Punto de enlace de datos de dispositivo**.

   1. Seleccione **Administrar** y **Objetos**. Anota el nombre del objeto de tu tablero. AWS IoT 

   1. En el proyecto `aws_demos`, abra `demos/include/aws_clientcredential.h` y especifique los siguientes valores.

      ```
      #define clientcredentialMQTT_BROKER_ENDPOINT[] = "{{Your AWS IoT endpoint}}";
      #define clientcredentialIOT_THING_NAME "{{The AWS IoT thing name of your board}}"
      ```  
![Fragmento de código que muestra el nombre de la AWS IoT cosa y los ajustes de configuración del punto final del broker.](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/client-credential-rx65n.png)

   1. Abra el archivo `tools/certificate_configuration/CertificateConfigurator.html`.

   1. Importe el archivo PEM del certificado y el archivo PEM de clave privada que descargó anteriormente.

   1. Elija **Generar y guardar aws\_clientcredential\_keys.h** y guarde el archivo en el directorio `demos/include/`.  
![Herramienta de configuración de certificados con campos para proporcionar los archivos PEM de certificados de cliente y clave privada desde la AWS IoT consola, y un botón para generar y guardar el archivo aws_clientcredential_keys.h.](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/certificate-config-tool-rx65n.png)

   1. Abra el archivo `vendors/renesas/boards/rx65n-rsk/aws_demos/config_files/ota_demo_config.h` y especifique estos valores.

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

      Dónde `secp256r1.crt` está el valor del archivo. {{your-certificate-key}} Recuerde añadir “\\” después de cada línea de la certificación. [Para obtener más información sobre la creación del `secp256r1.crt` archivo, consulte [Cómo implementar FreeRTOS OTA mediante Amazon Web Services en la RX65N y la sección 7.3 «Generación de ECDSA-SHA256 pares de claves con OpenSSL» en](https://www.renesas.com/us/en/document/apn/rx-family-how-implement-freertos-ota-using-amazon-web-services-rx65n) la Política de diseño de actualizaciones de firmware del MCU de Renesa.](https://www.renesas.com/us/en/document/apn/renesas-mcu-firmware-update-design-policy)  
![Archivo de código fuente que muestra el código C que define una cadena constante de certificado de firmante de PEM-encoded código con datos de certificado redactados.](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/codesigner-cert-rx65n.png)

1. **Tarea A: Instalar la versión inicial del firmware**

   1. Abra el archivo `vendors/renesas/boards/board/aws_demos/config_files/aws_demo_config.h`, comente `#define CONFIG_CORE_MQTT_MUTUAL_AUTH_DEMO_ENABLED` y defina `CONFIG_OTA_MQTT_UPDATE_DEMO_ENABLED` o `CONFIG_OTA_HTTP_UPDATE_DEMO_ENABLED`.

   1. Abra el archivo `demos/include/ aws_application_version.h` y configure la versión inicial del firmware en `0.9.2`.  
![Fragmento de código que muestra las definiciones de versión de una aplicación, incluidas las macros de los números de versión principales, secundarios y de compilación.](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/firmware-version-rx65n.png)

   1. Cambie los siguientes ajustes en **Visor de sección**.  
![Ventana del visor de secciones que muestra las direcciones de memoria, los nombres de las secciones como SU, SI, los registros y los componentes de la interfaz, como los búferes de red, las excepciones y los botones de acción.](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/section-viewer-rx65n.png)

   1. Seleccione **Crear** para crear el archivo `aws_demos.mot`.

1. Cree el archivo `userprog.mot` con el programador Secure Flash de Renesas. `userprog.mot` es una combinación de `aws_demos.mot` y `boot_loader.mot`. Puede flashear este archivo para RX65N-RSK instalar el firmware inicial.

   1. Descarga [https://github.com/renesas/Amazon-FreeRTOS-Tools](https://github.com/renesas/Amazon-FreeRTOS-Tools)y abre`Renesas Secure Flash Programmer.exe`.

   1. Seleccione la pestaña **Firma inicial** y, a continuación, defina los siguientes parámetros:
      + **Ruta de clave privada**: la ubicación de `secp256r1.privatekey`.
      + **Ruta del archivo del cargador de arranque**: la ubicación de `boot_loader.mot` (`projects\renesas\rx65n-rsk\e2studio\boot_loader\HardwareDebug`).
      + **Ruta del archivo**: la ubicación de `aws_demos.mot` (`projects\renesas\rx65n-rsk\e2studio\aws_demos\HardwareDebug`).  
![Ventana Renesas Secure Flash Programmer con campos de MCU, verificación del firmware, número de secuencia, ruta clave AES y ruta de archivo.](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/secure-flash-rx65n.png)

   1. Cree un directorio denominado `init_firmware`, genere `userprog.mot` y guárdelo en el directorio `init_firmware`. Compruebe que se haya generado correctamente.

1. Instale el firmware inicial en el RX65N-RSK.

   1. Descargue la última versión del programador Flash de Renesas (GUI de programación) desde. [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 el archivo `vendors\renesas\rx_mcu_boards\boards\rx65n-rsk\aws_demos\flash_project\erase_from_bank\ erase.rpj` para borrar los datos del banco.

   1. Seleccione **Empezar** para borrar el banco.  
![La ventana del programador Flash de Renesas muestra los detalles del proyecto del microcontrolador del Grupo RX, la ruta del archivo y las opciones de operación del flash, como borrar, programar y verificar con los botones Inicio y Aceptar.](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/flash-programmer-erasing-rx65n.png)

   1. Para instalar `userprog.mot`, seleccione **Buscar…**, acceda al directorio `init_firmware`, seleccione el archivo `userprog.mot` y elija **Iniciar**.  
![La ventana del programador Flash de Renesas muestra la configuración de la operación de borrado, incluido el microcontrolador RX Group, la opción de buscar el archivo del programa, los botones de borrado e inicio y los detalles de estado de los bloques seleccionados para borrar.](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/flash-programmer-complete-rx65n.png)

1. La versión 0.9.2 (versión inicial) del firmware se instaló en su. RX65N-RSK La RX65N-RSK placa está ahora a la espera de las actualizaciones de OTA. Si ha abierto Tera Term en su PC, verá algo parecido a lo siguiente cuando se ejecute el firmware inicial.

   ```
   -------------------------------------------------
   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. **Tarea B: actualizar la versión del firmware**

   1. Abra el archivo `demos/include/aws_application_version.h` y aumente el valor del token `APP_VERSION_BUILD` a `0.9.3`.

   1. Vuelva a compilar el proyecto.

1. Cree el archivo `userprog.rsu` con el programador Secure Flash de Renesas para actualizar la versión de su firmware.

   1. Abra el archivo `Amazon-FreeRTOS-Tools\Renesas Secure Flash Programmer.exe`.

   1. Seleccione la pestaña **Actualice el firmware** y, a continuación, defina los siguientes parámetros:
      + **Ruta del archivo**: la ubicación del archivo `aws_demos.mot` (`projects\renesas\rx65n-rsk\e2studio\aws_demos\HardwareDebug`).

   1. Cree un directorio llamado `update _firmware`. Genere `userprog.rsu` y guárdela en el directorio `update_firmware`. Compruebe que se haya generado correctamente.  
![Ventana Renesas Secure Flash Programmer con selección de MCU, tipo de verificación del firmware, número de secuencia, campo clave AES MAC e introducción de ruta de archivo para generar un firmware seguro.](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/update-firmware-rx65n.png)

1. Cargue la actualización del firmware, `userproj.rsu`, en un bucket de Amazon S3 tal y como se describe en[Creación de un bucket de Amazon S3 para almacenar la actualización](dg-ota-bucket.md).   
![Interfaz de administración de buckets de Amazon S3 con opciones de carpetas, cargas, versiones y permisos](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/upload-firmware-rx65n.png)

1. Cree una tarea para actualizar el firmware en el RX65N-RSK.

   AWS IoT Jobs es un servicio que notifica a uno o más dispositivos conectados una [tarea](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs.html) pendiente. Puede usar un trabajo para administrar una flota de dispositivos, actualizar el firmware y los certificados de seguridad de sus dispositivos o realizar tareas administrativas, como reiniciar los dispositivos y realizar diagnósticos.

   1. Inicie sesión en la [consola de AWS IoT](https://console.aws.amazon.com/iotv2/). En el panel de navegación, elija **Administrar** y, a continuación, **Trabajos**.

   1. Elija **Crear** y, a continuación, elija **Crear trabajo de actualización OTA**. Seleccione un objeto y, a continuación, elija **Siguiente**.

   1. Cree un trabajo de actualización OTA de FreeRTOS de la siguiente manera:
      + Elija **MQTT**.
      + Seleccione el perfil de firma de código que ha creado en la sección anterior.
      + Seleccione la imagen de firmware que ha cargado en un bucket de Amazon S3.
      + En **Nombre de la ruta de la imagen de firmware en el dispositivo**, introduzca **test**.
      + Elija el rol de IAM que ha creado en la sección anterior.

   1. Elija **Siguiente**.  
![Configuración de firma de imagen de firmware y actualización OTA con opciones para firmar el nuevo firmware, seleccionar el firmware previamente firmado, usar el firmware firmado personalizado, especificar el perfil de firma de código, el archivo de imagen del firmware, la ruta del dispositivo y la función de IAM para el trabajo de actualización de OTA.](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/create-job-next-rx65n.png)

   1. Introduzca el ID y, a continuación, elija **Crear**.

1. Vuelva a abrir Tera Term para comprobar que el firmware se actualizó correctamente a la versión de demostración 0.9.3 de OTA.  
![El resultado de la línea de comandos muestra la inicialización y la conexión de un hilo a un intermediario.](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/update-successful-rx65n.png)

1. En la AWS IoT consola, compruebe que el estado del trabajo es Correcto**.**  
![Descripción general del trabajo OTA-demo de prueba AFR que muestra que 1 recurso se ha realizado correctamente.](http://docs.aws.amazon.com/es_es/freertos/latest/userguide/images/completed-succeeded-rx65n.png)