Infineon OPTIGA Trust X と XMC4800 IoT Connectivity Kit の開始方法 - FreeRTOS

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

Infineon OPTIGA Trust X と XMC4800 IoT Connectivity Kit の開始方法

重要

これは、FreeRTOS リリース 202012.00 で使用する FreeRTOS ユーザーガイドのアーカイブ版です。このドキュメントの最新バージョンについては、FreeRTOS ユーザーガイドを参照してください。

このチュートリアルでは、Infineon OPTIGA Trust X セキュアエレメントと XMC4800 IoT Connectivity Kit の使用を開始するための手順について説明します。Infineon XMC4800 IoT 接続キットの開始方法 チュートリアルとは異なり、このガイドでは、Infineon OPTIGA Trust X セキュアエレメントを使用してセキュアな認証情報を提供する方法を示します。

以下のハードウェアが必要です。

  1. ホスト MCU - Infineon XMC4800 IoT Connectivity Kit については、 AWS Partner Device Catalog にアクセスして当社のパートナーから購入してください。

  2. セキュリティ拡張パック:

    • セキュアエレメント - Infineon OPTIGA Trust X。

      AWS Partner Device Catalog にアクセスして、当社のパートナーから購入してください。

    • パーソナライゼーションボード - Infineon OPTIGA パーソナライゼーションボード。

    • アダプターボード - Infineon MyIoT アダプター。

ここで説明する手順を実行するには、ボードとのシリアル接続を開いて、ログおよびデバッグ情報を表示する必要があります (いずれかのステップで、ボードのシリアルデバッグ出力からパブリックキーをコピーし、ファイルに貼り付ける必要があります)。そのためには、XMC4800 IoT Connectivity Kit に加えて、3.3V USB/シリアルコンバータが必要です。JBtek EL-PN-47310126 USB/シリアルコンバータは、このデモで動作することがわかっています。シリアルケーブルを Infineon MyIoT アダプターボードに接続するには、3 本のオス - オスジャンパー線 (受信 (RX)、送信 (TX)、接地 (GND) 用) も必要です。

開始する前に、 AWS IoT と FreeRTOS ダウンロードを設定して、デバイスを AWS クラウドに接続する必要があります。手順については、オプション #2: オンボードプライベートキーの生成 を参照してください。このチュートリアルでは、FreeRTOS ダウンロードディレクトリへのパスを freertos とします。

概要

このチュートリアルでは、以下の手順が含まれています。

  1. ホストマシンにソフトウェアをインストールし、マイクロコントローラーボード用の組み込みアプリケーションを開発およびデバッグします。

  2. FreeRTOS デモアプリケーションをバイナリイメージにクロスコンパイルします。

  3. アプリケーションバイナリイメージをボードにロードし、アプリケーションを実行します。

  4. モニタリングおよびデバッグの目的で、シリアル接続経由でボード上で実行されているアプリケーションを操作します。

開発環境をセットアップする

FreeRTOS は、XMC4800 のプログラミングに Infineon の DAVE 開発環境を使用します。開始する前に、DAVE および一部の J-Link ドライバーをダウンロードしてインストールし、オンボードデバッガーと通信できるようにします。

DAVE をインストールする

  1. Infineon の DAVE software download ページに移動します。

  2. ご使用のオペレーティングシステム向けの DAVE パッケージを選択し、登録情報を送信します。登録後、.zip ファイルをダウンロードするためのリンクが記載された確認メールが届きます。

  3. DAVE パッケージ .zip ファイル (DAVE_version_os_date.zip) をダウンロードして、DAVE をインストールする場所 (例えば、C:\DAVE4) に解凍します。

    注記

    一部の Windows ユーザーから、ファイルの解凍に Windows エクスプローラーを使用する際の問題が報告されています。7-Zip などのサードパーティー製のプログラムを使用することをお勧めします。

  4. DAVE を起動するには、解凍された DAVE_version_os_date.zip フォルダで検出された実行可能ファイルを実行します。

詳細については DAVE Quick Start Guide を参照してください。

XMC4800 IoT Connectivity Kit のオンボードデバッグプローブと通信するには、J-Link ソフトウェアおよびドキュメントパックに含まれているドライバが必要です。Segger の J-Link software download ページから、J-Link ソフトウェアとドキュメントパックをダウンロードできます。

シリアル接続の確立

USB/シリアルコンバータケーブルを Infineon Shield2Go Adapter に接続します。これにより、開発マシンで表示可能な形式でボードからログとデバッグ情報を送信できるようになります。シリアル接続の設定方法は、以下の通りです。

  1. RX ピンを USB/シリアルコンバータの TX ピンに接続します。

  2. TX ピンを USB/シリアルコンバータの RX ピンに接続します。

  3. シリアルコンバータの Ground (接地) ピンを、ボード上の GND ピンのいずれかに接続します。デバイスは、共通の接地を持っている必要があります。

電力は USB デバッグポートから供給されるため、シリアルアダプタの正電圧ピンをボードに接続することはしないでください。

注記

一部のシリアルケーブルは、5V シグナルレベルを使用します。XMC4800 ボードと Wi-Fi クリックモジュールには、3.3V が必要です。ボードのシグナルを 5V に変更するために、ボードの IOREF ジャンパーを使用することはしないでください。

ケーブルが接続されると、GNU Screen などのターミナルエミュレーターでシリアル接続を開くことができます。ボーレートはデフォルトで 115200 に設定されており、8 データビット、パリティなし、1 ストップビットです。

クラウドの MQTT メッセージのモニタリング

AWS IoT コンソールで MQTT クライアントを使用して、デバイスが AWS クラウドに送信するメッセージをモニタリングできます。デバイスでデモプロジェクトを実行する前に、このクライアントを設定することをお勧めします。

MQTT クライアントで AWS IoT MQTT トピックをサブスクライブするには
  1. AWS IoT コンソール にサインインします。

  2. ナビゲーションペインで、[Test] (テスト) を選択して MQTT クライアントを開きます。

  3. [Subscription topic] (トピックのサブスクリプション) で your-thing-name/example/topic と入力し、[Subscribe to topic] (トピックへのサブスクライブ) を選択します。

FreeRTOS デモプロジェクトを構築して実行する

FreeRTOS デモを DAVE にインポートする

  1. DAVE を起動します。

  2. DAVE で、[File] (ファイル) を選択し、[Import] (インポート) を選択します。[Infineon] フォルダを展開し、[DAVE Project] (DAVE プロジェクト) を選択してから [Next] (次へ) を選択します。

  3. [Import DAVE Projects] (DAVE プロジェクトのインポート) で、[Select Root Directory] (ルートディレクトリの選択)、[Browse] (参照) の順に選択してから、XMC4800 デモプロジェクトを選択します。

    FreeRTOS のダウンロードを解凍したディレクトリで、デモプロジェクトは projects/infineon/xmc4800_plus_optiga_trust_x/dave4/aws_demos/dave4 にあります。

    [Copy Projects Into Workspace] (プロジェクトを Workspace にコピー) がオフになっていることを確認します。

  4. [Finish] (終了) を選択します。

    aws_demos プロジェクトは、WorkSpace にインポートされ、アクティブ化されます。

  5. [Project] (プロジェクト) メニューから [Build Active Project] (アクティブなプロジェクトを構築) を選択します。

    プロジェクトがエラーなしでビルドされていることを確認します。

FreeRTOS デモプロジェクトを実行する

  1. [Project] (プロジェクト) メニューから、[Rebuild Active Project] (アクティブなプロジェクトの再構築) を選択して、aws_demos を再構築し、設定変更が取得されたことを確認します。

  2. [Project Explorer] (プロジェクトエクスプローラー) から aws_demos を右クリックして [Debug As] (デバッグ方法) を選択し、[DAVE C/C++ Application] (DAVE C/C++ アプリケーション) を選択します。

  3. [GDB SEGGER J-Link Debugging] (GDB SEGGER J-Link デバッグ) をダブルクリックして、デバッグ情報を作成します。[Debug] (デバッグ) を選択します。

  4. デバッガーが main() のブレークポイントで停止したら、[Run] (実行) メニューから [Resume] (再開) を選択します。

この時点で、オプション #2: オンボードプライベートキーの生成 のパブリックキーの抽出手順に進みます。すべてのステップが完了したら、 AWS IoT コンソールに移動します。以前に設定した MQTT クライアントは、デバイスから送信された MQTT メッセージを表示します。デバイスのシリアル接続を介して UART 出力が以下のように表示されます。

0 0 [Tmr Svc] Starting key provisioning... 1 1 [Tmr Svc] Write root certificate... 2 4 [Tmr Svc] Write device private key... 3 82 [Tmr Svc] Write device certificate... 4 86 [Tmr Svc] Key provisioning done... 5 291 [Tmr Svc] Wi-Fi module initialized. Connecting to AP... .6 8046 [Tmr Svc] Wi-Fi Connected to AP. Creating tasks which use network... 7 8058 [Tmr Svc] IP Address acquired [IP Address] 8 8058 [Tmr Svc] Creating MQTT Echo Task... 9 8059 [MQTTEcho] MQTT echo attempting to connect to [MQTT Broker]. ...10 23010 [MQTTEcho] MQTT echo connected. 11 23010 [MQTTEcho] MQTT echo test echoing task created. .12 26011 [MQTTEcho] MQTT Echo demo subscribed to iotdemo/# 13 29012 [MQTTEcho] Echo successfully published 'Hello World 0' .14 32096 [Echoing] Message returned with ACK: 'Hello World 0 ACK' .15 37013 [MQTTEcho] Echo successfully published 'Hello World 1' 16 40080 [Echoing] Message returned with ACK: 'Hello World 1 ACK' .17 45014 [MQTTEcho] Echo successfully published 'Hello World 2' .18 48091 [Echoing] Message returned with ACK: 'Hello World 2 ACK' .19 53015 [MQTTEcho] Echo successfully published 'Hello World 3' .20 56087 [Echoing] Message returned with ACK: 'Hello World 3 ACK' .21 61016 [MQTTEcho] Echo successfully published 'Hello World 4' 22 64083 [Echoing] Message returned with ACK: 'Hello World 4 ACK' .23 69017 [MQTTEcho] Echo successfully published 'Hello World 5' .24 72091 [Echoing] Message returned with ACK: 'Hello World 5 ACK' .25 77018 [MQTTEcho] Echo successfully published 'Hello World 6' 26 80085 [Echoing] Message returned with ACK: 'Hello World 6 ACK' .27 85019 [MQTTEcho] Echo successfully published 'Hello World 7' .28 88086 [Echoing] Message returned with ACK: 'Hello World 7 ACK' .29 93020 [MQTTEcho] Echo successfully published 'Hello World 8' .30 96088 [Echoing] Message returned with ACK: 'Hello World 8 ACK' .31 101021 [MQTTEcho] Echo successfully published 'Hello World 9' 32 104102 [Echoing] Message returned with ACK: 'Hello World 9 ACK' .33 109022 [MQTTEcho] Echo successfully published 'Hello World 10' .34 112047 [Echoing] Message returned with ACK: 'Hello World 10 ACK' .35 117023 [MQTTEcho] Echo successfully published 'Hello World 11' 36 120089 [Echoing] Message returned with ACK: 'Hello World 11 ACK' .37 122068 [MQTTEcho] MQTT echo demo finished. 38 122068 [MQTTEcho] ----Demo finished----

CMake で FreeRTOS デモを構築する

このセクションでは、ネイティブビルドシステムとして MinGW を使用した Windows で CMake を使用する方法について説明します。他のオペレーティングシステムおよびオプションで CMake を使用する方法の詳細については、「FreeRTOS で CMake を使用する」を参照してください。(MinGW は、ネイティブ Microsoft Windows アプリケーション用の最小限の開発環境です。)

FreeRTOS 開発に IDE を使用しない場合は、代わりに CMake を使用して、サードパーティーのコードエディタおよびデバッグツールを使用して開発した、デモアプリケーションまたはアプリケーションを構築して実行できます。

CMake で FreeRTOS デモを構築するには
  1. GNU Arm Embedded Toolchain をセットアップします。

    1. Arm Embedded Toolchain ダウンロードページから Windows バージョンのツールチェーンをダウンロードします。

      注記

      「8-2018-q4-major」バージョンについては、objcopy ユーティリティでバグが報告されているため、それ以外のバージョンをダウンロードすることをお勧めします。

    2. ダウンロードしたツールチェーンインストーラーを開き、ウィザードの指示に従います。

    3. インストールウィザードの最後のページで、[Add path to environment variable] (パスを環境変数に追加) を選択してツールチェーンパスをシステムのパス環境変数に追加します。

  2. CMake および MinGW をインストールします。

    手順については、「CMake の前提条件」を参照してください。

  3. 生成されたビルドファイルを格納するフォルダ (build-folder) を作成します。

  4. ディレクトリを FreeRTOS ダウンロードディレクトリ (freertos) に変更し、次のコマンドを使用してビルドファイルを生成します。

    cmake -DVENDOR=infineon -DBOARD=xmc4800_plus_optiga_trust_x -DCOMPILER=arm-gcc -S . -B build-folder -G "MinGW Makefiles" -DAFR_ENABLE_TESTS=0
  5. ディレクトリをビルドディレクトリ (build-folder) に変更し、次のコマンドを使用してバイナリをビルドします。

    cmake --build . --parallel 8

    このコマンドにより、ビルドディレクトリにバイナリ出力 aws_demos.hex がビルドされます。

  6. JLINK を使用してイメージをフラッシュして実行します。

    1. ビルドディレクトリ (build-folder) から、次のコマンドを使用してフラッシュスクリプトを作成します。

      echo loadfile aws_demos.hex > flash.jlink echo r >> flash.jlink echo g >> flash.jlink echo q >> flash.jlink
    2. JLNIK 実行可能ファイを使用してイメージをフラッシュします。

      JLINK_PATH\JLink.exe -device XMC4800-2048 -if SWD -speed auto -CommanderScript flash.jlink

      ボードで確立したシリアル接続を介してアプリケーションログが表示されます。続いて、オプション #2: オンボードプライベートキーの生成 のパブリックキーの抽出手順に進みます。すべてのステップが完了したら、 AWS IoT コンソールに移動します。以前に設定した MQTT クライアントは、デバイスから送信された MQTT メッセージを表示します。

トラブルシューティング

一般的なトラブルシューティング情報については、「トラブルシューティングの開始方法」を参照してください。