Renesas RX65N での FreeRTOS OTA デモのダウンロード、構築、フラッシュ、および実行 - 無料RTOS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Renesas RX65N での FreeRTOS OTA デモのダウンロード、構築、フラッシュ、および実行

重要

このリファレンス統合は、非推奨の Amazon-FreeRTOS リポジトリでホストされています。新しいプロジェクトを作成するときは、ここから始めることをお勧めします。現在非推奨の Amazon-FreeRTOS リポジトリをベースにした既存の FreeRTOS プロジェクトが既にある場合は、「Amazon-FreeRTOS Github リポジトリ移行ガイド」を参照してください。

この章では、Renesas RX65N で FreeRTOS OTA デモアプリケーションをダウンロード、構築、フラッシュ、および実行する方法について説明します。

オペレーティング環境をセットアップする

このセクションの手順では、次の環境を使用します。

  • IDE: e2 studio 7.8.0、e2 studio 2020-07

  • ツールチェーン: CCRX Compiler v3.0.1

  • ターゲットデバイス: RSKRX65N-2MB

  • デバッガー: E2、E2 Lite エミュレータ

  • ソフトウェア: Renesas Flash Programmer、Renesas Secure Flash Programmer.exe、Tera Term

ハードウェアをセットアップするには
  1. E2 Lite エミュレータと USB シリアルポートを RX65N ボードと PC に接続します。

  2. 電源を RX65N に接続します。

AWS リソースのセットアップ

  1. FreeRTOS デモを実行するには、 AWS IoT サービスへのアクセス許可を持つ IAM ユーザーを持つ AWS アカウントが必要です。まだの場合は、AWS アカウントとアクセス許可の設定の手順に従ってください。

  2. OTA の更新を設定するには、OTA 更新の前提条件の手順に従います。特に、を使用したOTA更新の前提条件 MQTT の手順を実行してください。

  3. AWS IoT コンソールを開きます。

  4. 左側のナビゲーションペインで、[Manage] (管理)、[Things] (モノ) の順に選択して、モノを作成します。

    モノとは、 AWS IoTにおける特定のデバイスまたは論理エンティティを表します。物理的なデバイスやセンサー (電球や壁のスイッチなど) は、モノとして扱うことができます。また、アプリケーションのインスタンスなどの論理エンティティや AWS IoT、 に接続しないが、 に接続するデバイスに関連する物理エンティティ (エンジンセンサーやコントロールパネルがある自動車など) でもかまいません。 AWS IoT は、モノの管理に役立つモノレジストリを提供します。

    1. [Create] (作成)、[Create a single thing] (単一のモノを作成する) の順に選択します。

    2. モノの名前を [Name] (名前) に入力し、[Next] (次へ) を選択します。

    3. [証明書の作成] を選択します。

    4. 作成された 3 つのファイルをダウンロードして、[Activate] (アクティブ化) を選択します。

    5. [ポリシーのアタッチ] を選択します。

      ダウンロードするファイルを表示するコンソール画面
    6. デバイスポリシーで作成したポリシーを選択します。

      MQTT を使用して OTA 更新を受信する各デバイスは、 にモノとして登録する必要があり AWS IoT 、モノにはリストされているようなポリシーがアタッチされている必要があります。"Action" および "Resource" オブジェクトの項目の詳細については、AWS IoT Core ポリシーアクションAWS IoT Core アクションリソースを参照してください。

      メモ
      • アクセスiot:Connect許可により、デバイスは MQTT AWS IoT 経由で に接続できます。

      • AWS IoT ジョブ (.../jobs/*) のトピックに対する iot:Subscribe および iot:Publish アクセス許可を使用すると、接続されたデバイスがジョブ通知とジョブドキュメントを受け取り、ジョブ実行の完了状態を公開できます。

      • AWS IoT OTA ストリーム (.../streams/*) のトピックに対する iot:Subscribeおよび アクセスiot:Publish許可により、接続されたデバイスは から OTA 更新データを取得できます AWS IoT。これらのアクセス許可は、MQTT を介してファームウェア更新を実行するために必要です。

      • アクセスiot:Receive許可により AWS IoT Core 、 はそれらのトピックに関するメッセージを接続されたデバイスに発行できます。このアクセス許可は、MQTT メッセージの配信ごとにチェックされます。このアクセス許可を使用して、トピックに現在サブスクライブしているクライアントへのアクセスを取り消すことができます。

  5. コード署名プロファイルを作成し、コード署名証明書を に登録するには AWS。

    1. キーと証明書を作成するには、Renesas MCU ファームウェア更新の設計ポリシーのセクション 7.3「OpenSSL で ECDSA-SHA256 キーペアを生成する」を参照してください。

    2. AWS IoT コンソールを開きます。左側のナビゲーションペインで、[Manage] (管理)、[Jobs] (ジョブ) の順に選択します。[Create a job] (ジョブの作成) を選択して、[Create OTA update Job] (OTA 更新ジョブの作成) を選択します。

    3. [Select devices to update] (更新するデバイスの選択) で、[Select] (選択) を選択して作成済みのモノを選択します。[次へ] を選択します。

    4. [Create a FreeRTOS OTA update job] (FreeRTOS OTA 更新ジョブの作成) ページで、次の手順を実行します。

      1. [Select the protocol for firmware image transfer] (ファームウェアイメージ転送プロトコルを選択) で、[MQTT] を選択します。

      2. [Select and sign your firmware image] (ファームウェアイメージの選択と署名) で、[Sign a new firmware image for me] (新しいファームウェアイメージに署名します) を選択します。

      3. [Code signing profile] (コード署名プロファイル) で、[Create] (作成) を選択します。

      4. [Create a code signing profile] (コード署名プロファイルの作成) ウィンドウで、[Profile name] (プロファイル名) を入力します。[Device hardware platform] (デバイスハードウェアプラットフォーム) で、[Windows Simulator] を選択します。[Code signing certificate] (コード署名証明書) で、[Import] (インポート) を選択します。

      5. 証明書 (secp256r1.crt)、証明書のプライベートキー (secp256r1.key)、証明書チェーン (ca.crt) を参照して選択します。

      6. [Pathname of code signing certificate on device] (デバイスのコード署名証明書のパス名) を入力します。次に [作成] を選択します。

  6. のコード署名へのアクセスを許可するには AWS IoT、「」の手順に従いますのコード署名へのアクセスを許可する AWS IoT

Tera Term が PC にインストールされていない場合は、以下のとおり https://ttssh2.osdn.jp/index.html.en からダウンロードしてセットアップできます。USB シリアルポートがデバイスから PC に差し込まれていることを確認します。

Tera Term シリアルポート設定ウィンドウ

ヘッダーファイルをインポートして設定し、aws_demos と boot_loader を構築する

まず、最新バージョンの FreeRTOS パッケージを選択すると、これは から GitHub ダウンロードされ、プロジェクトに自動的にインポートされます。このようにして、FreeRTOS の設定とアプリケーションコードの記述に集中できます。

  1. e2 studio を起動します。

  2. [File] (ファイル) を選択して、[Import...] (インポート...) を選択します。

  3. Renesas GitHub FreeRTOS (IoT ライブラリを含む) プロジェクト を選択します。

    e-squared studio インポートウィンドウ
  4. [Check for more version...] (他のバージョンを確認する...) を選択して、ダウンロードダイアログボックスを表示します。

    e-squared studio ダウンロードダイアログウィンドウ
  5. 最新のパッケージを選択します。

    e-squared studio モジュールのダウンロードダイアログウィンドウ
  6. [Agree] (同意する) を選択して、エンドユーザー使用許諾契約に同意します。

    e-squared studio EULA ダイアログ
  7. ダウンロードが完了するまで待ちます。

    ダウンロードの進行状況バー
  8. aws_demosboot_loader プロジェクトを選択し、[Finish] (完了) を選択してインポートします。

    プロジェクトインポートウィンドウ
  9. 両方のプロジェクトで、プロジェクトプロパティを開きます。ナビゲーションペインで [Tool Chain Editor] (ツールチェーンエディタ) を選択します。

    1. [Current toolchain] (現在のツールチェーン) を選択します。

    2. [Current builder] (現在のビルダー) を選択します。

    e-squared studio プロパティウィンドウ
  10. ナビゲーションペインで [設定] を選択します。[Toolchain] (ツールチェーン) タブで、ツールチェーンの [Version] (バージョン) を選択します。

    Renesas CCRX バージョン v3.01.00 のツールチェーン統合設定。ツールチェーンを変更するオプションがあります。

    [Tool Settings] (ツール設定) タブを選択して、[Converter] (コンバーター) を展開し、[Output] (出力) を選択します。メインウィンドウで [Output hex file] (16 進数ファイルの出力) が選択されていることを確認し、[Output file type] (出力ファイルタイプ) を選びます。

    出力 16 進ファイル、出力ファイルタイプ、出力ディレクトリ、ファイル分割オプションなどのコンパイラとリンカーのオプションを表示する C/C++ ビルド設定ウィンドウ。
    スタック分析、ツールチェーンエディタ、C/C++ 全般、MCU、プロジェクトリファレンスなどのオプションを含むインターフェイス設定ツリー。
  11. bootloader プロジェクトで、projects\renesas\rx65n-rsk\e2studio\boot_loader\src\key\code_signer_public_key.h を開き、パブリックキーを入力します。パブリックキーの作成方法については、Amazon Web Services を使用して RX65N で FreeRTOS OTA を実装する方法Renesas MCU ファームウェア更新の設計ポリシーのセクション 7.3「OpenSSL で ECDSA-SHA256 キーペアを生成する」を参照してください。

    CODE_SIGNER_PUBLIC_KEY と PEM エンコードされたコード署名者パブリックキー変数の定義を含む C ヘッダーファイルを示すコードエディタ。

    次にプロジェクトを構築して、boot_loader.mot を作成します。

  12. aws_demos プロジェクトを開きます。

    1. AWS IoT コンソールを開きます。

    2. 左のナビゲーションペインの [Settings] (設定) を選択します。[Device data endpoint] (デバイスデータエンドポイント) テキストボックスのカスタムエンドポイントをメモします。

    3. [Manage] (管理) を選択して、[Things] (モノ) を選択します。ボードの AWS IoT モノの名前を書き留めます。

    4. aws_demos プロジェクトで、demos/include/aws_clientcredential.h を開き、次の値を指定します。

      #define clientcredentialMQTT_BROKER_ENDPOINT[] = "Your AWS IoT endpoint"; #define clientcredentialIOT_THING_NAME "The AWS IoT thing name of your board"
      AWS IoT モノの名前とブローカーエンドポイントの設定を示すコードスニペット。
    5. tools/certificate_configuration/CertificateConfigurator.html ファイルを開きます。

    6. ダウンロード済みの証明書 PEM ファイルとプライベートキー PEM ファイルをインポートします。

    7. [Generate and save aws_clientcredential_keys.h] (aws_clientcredential_keys.h の生成と保存) を選択して、demos/include/ ディレクトリのこのファイルを置き換えます。

      証明書設定ツールには、 AWS IoT コンソールからクライアント証明書とプライベートキーの PEM ファイルを提供するフィールドと、aws_clientcredential_keys.h ファイルを生成して保存するボタンがあります。
    8. vendors/renesas/boards/rx65n-rsk/aws_demos/config_files/ota_demo_config.h ファイルを開いて、次の値を指定します。

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

      ここで、your-certificate-key はファイル secp256r1.crt の値です。証明書の各行の後に必ず「\」を追加してください。secp256r1.crt ファイルの作成方法については、Amazon Web Services を使用して RX65N で FreeRTOS OTA を実装する方法Renesas MCU ファームウェア更新の設計ポリシーのセクション 7.3「OpenSSL で ECDSA-SHA256 キーペアを生成する」を参照してください。

      編集された証明書データを含む PEM エンコードされたコード署名者証明書の定数文字列を定義する C コードを示すソースコードファイル。
  13. タスク A: ファームウェアの初期バージョンをインストールする

    1. vendors/renesas/boards/board/aws_demos/config_files/aws_demo_config.h ファイルを開き、#define CONFIG_CORE_MQTT_MUTUAL_AUTH_DEMO_ENABLED をコメントアウトして、CONFIG_OTA_MQTT_UPDATE_DEMO_ENABLED または CONFIG_OTA_HTTP_UPDATE_DEMO_ENABLED を定義します。

    2. demos/include/ aws_application_version.h ファイルを開き、ファームウェアの初期バージョンを 0.9.2 に設定します。

      メジャー、マイナー、ビルドバージョン番号のマクロなど、アプリケーションのバージョン定義を示すコードスニペット。
    3. [Section Viewer] (セクションビューワー) で以下の設定を変更します。

      メモリアドレス、SU、SI、レジスターなどのセクション名、ネットワークバッファ、例外、アクションボタンなどのインターフェイスコンポーネントを示すセクションビューワーウィンドウ。
    4. [Build] (構築) を選択して、aws_demos.mot ファイルを作成します。

  14. Renesas Secure Flash Programmer を使用してファイル userprog.mot を作成します。userprog.motaws_demos.motboot_loader.mot の組み合わせです。このファイルを RX65N-RSK にフラッシュすると、初期ファームウェアをインストールできます。

    1. https://github.com/renesas/Amazon-FreeRTOS-Tools をダウンロードして、Renesas Secure Flash Programmer.exe を開きます。

    2. [Initial Firm] (初期ファーム) タブを選択し、以下のパラメータを設定します。

      • [Private Key Path] (プライベートキーのパス): secp256r1.privatekey の場所。

      • [Boot Loader File Path] (ブートローダーファイルパス): boot_loader.mot の場所 (projects\renesas\rx65n-rsk\e2studio\boot_loader\HardwareDebug)。

      • [File Path] (ファイルパス): aws_demos.mot の場所 (projects\renesas\rx65n-rsk\e2studio\aws_demos\HardwareDebug)。

      MCU、ファームウェア検証、シーケンス番号、AES キーパス、およびファイルパスフィールドを含む Renesas Secure Flash Programmer ウィンドウ。
    3. init_firmware という名前のディレクトリを作成し、userprog.mot を生成して init_firmware ディレクトリに保存します。生成が成功したことを確認します。

  15. RX65N-RSK で初期ファームウェアをフラッシュします。

    1. Renesas Flash Programmer (プログラミング GUI) の最新バージョンを https://www.renesas.com/tw/en/products/software-tools/tools/programmer/renesas-flash-programmer-programming-gui.html からダウンロードします。

    2. vendors\renesas\rx_mcu_boards\boards\rx65n-rsk\aws_demos\flash_project\erase_from_bank\ erase.rpj ファイルを開いて銀行のデータを消去します。

    3. [Start] (開始) を選択して、銀行を消去します。

      RX グループのマイクロコントローラープロジェクトの詳細、ファイルパス、および消去、プログラム、開始ボタンと OK ボタンによる検証などのフラッシュオペレーションオプションを示す Renesas Flash Programmer ウィンドウ。
    4. userprog.mot をフラッシュするには、[Browse...] (参照...) を選択して init_firmware ディレクトリに移動し、userprog.mot ファイルを選択して、[Start] (開始) を選択します。

      Renesas Flash Programmer ウィンドウには、マイクロコントローラー RX グループ、プログラムファイルを参照するオプション、削除ボタンと開始ボタン、および削除する選択したブロックのステータスの詳細など、削除オペレーション設定が表示されます。
  16. バージョン 0.9.2 (初期バージョン) のファームウェアが RX65N-RSK にインストールされました。RX65N-RSK ボードは OTA 更新をリッスンするようになりました。PC で Tera Term を開いている場合、初期ファームウェアの実行時に次のように表示されます。

    ------------------------------------------------- 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
  17. タスク B: ファームウェアのバージョンを更新する

    1. demos/include/aws_application_version.h ファイルを開き、APP_VERSION_BUILD トークン値を 0.9.3 に増やします。

    2. プロジェクトを再構築します。

  18. Renesas Secure Flash Programmer で userprog.rsu ファイルを作成し、ファームウェアのバージョンを更新します。

    1. Amazon-FreeRTOS-Tools\Renesas Secure Flash Programmer.exe ファイルを開きます。

    2. [Update Firm] (ファームの更新) タブを選択し、以下のパラメータを設定します。

      • [File Path] (ファイルパス): aws_demos.mot ファイルの場所 (projects\renesas\rx65n-rsk\e2studio\aws_demos\HardwareDebug)。

    3. update _firmware という名前のディレクトリを作成します。userprog.rsu を生成して、update_firmware ディレクトリに保存します。生成が成功したことを確認します。

      MCU 選択、ファームウェア検証タイプ、シーケンス番号、AES MAC キーフィールド、およびセキュアなファームウェアを生成するためのファイルパス入力を含む Renesas Secure Flash Programmer ウィンドウ。
  19. 更新を保存する Amazon S3 バケットを作成する のとおり、ファームウェア更新 userproj.rsu を Amazon S3 バケットに更新します。

    フォルダ、アップロード、バージョン、アクセス許可オプションを含む Amazon S3 バケット管理インターフェイス
  20. RX65N-RSK でファームウェアを更新するジョブを作成します。

    AWS IoT Jobs は、1 つ以上の接続されたデバイスに保留中のジョブ を通知するサービスです。ジョブは、多数のデバイスの管理、デバイス上のファームウェアおよびセキュリティ証明書の更新、デバイスの再起動や診断の実行などの管理タスクの実行に使用できます。

    1. AWS IoT コンソール にサインインします。ナビゲーションペインで、[Manage] (管理)、[Jobs] (ジョブ) の順に選択します。

    2. [Create a job] (ジョブの作成) を選択して、[Create OTA Update job] (OTA 更新ジョブの作成) を選択します。モノを選択して、[Next] (次へ) を選択します。

    3. FreeRTOS OTA 更新ジョブを次のように作成します。

      • [MQTT] を選択します。

      • 前のセクションで作成したコード署名プロファイルを選択します。

      • Amazon S3 バケットにアップロードしたファームウェアイメージを選択します。

      • [Pathname of firmware image on device] (デバイスのファームウェアイメージのパス名) で、test と入力します。

      • 前のセクションで作成した IAM ロールを選択します。

    4. [次へ] をクリックします。

      新しいファームウェアに署名するオプション、以前に署名したファームウェアを選択するオプション、カスタム署名付きファームウェアを使用するオプション、コード署名プロファイル、ファームウェアイメージファイル、デバイスのパス、および OTA 更新ジョブの IAM ロールを指定するオプションを含むファームウェアイメージ署名と OTA 更新設定。
    5. ID を入力して、[Create] (作成) を選択します。

  21. Tera Term を再度開いて、ファームウェアが OTA デモバージョン 0.9.3 に正常に更新されたことを確認します。

    スレッドの初期化とブローカーへの接続を示すコマンドライン出力。
  22. AWS IoT コンソールで、ジョブのステータスが「成功」であることを確認します。

    1 つのリソースが成功したことを示す AFR OTA デモテストジョブの概要。