翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Infineon OPTIGA Trust X と XMC4800 IoT Connectivity Kit の開始方法
重要
このリファレンス統合は、非推奨の Amazon-FreeRTOS リポジトリでホストされています。新しいプロジェクトを作成するときは、ここから始めることをお勧めします。現在非推奨の Amazon-FreeRTOS リポジトリをベースにした既存の FreeRTOS プロジェクトが既にある場合は、「Amazon-FreeRTOS Github リポジトリ移行ガイド」を参照してください。
このチュートリアルでは、Infineon OPTIGA Trust X セキュアエレメントと XMC4800 IoT Connectivity Kit の使用を開始するための手順について説明します。Infineon XMC4800 IoT Connectivity Kit の開始方法 チュートリアルとは異なり、このガイドでは、Infineon OPTIGA Trust X セキュアエレメントを使用してセキュアな認証情報を提供する方法を示します。
以下のハードウェアが必要です。
ここで説明する手順を実行するには、ボードとのシリアル接続を開いて、ログおよびデバッグ情報を表示する必要があります (いずれかのステップで、ボードのシリアルデバッグ出力からパブリックキーをコピーし、ファイルに貼り付ける必要があります)。そのためには、XMC4800 IoT Connectivity Kit に加えて、3.3V USB/シリアルコンバータが必要です。JBtek EL-PN-47310126
開始する前に、デバイスを AWS クラウドに接続するように、AWS IoT と FreeRTOS ダウンロードを設定する必要があります。手順については、「オプション #2: オンボードプライベートキーの生成」を参照してください。このチュートリアルでは、FreeRTOS ダウンロードディレクトリへのパスを
とします。freertos
概要
このチュートリアルでは、以下の手順が含まれています。
-
ホストマシンにソフトウェアをインストールし、マイクロコントローラーボード用の組み込みアプリケーションを開発およびデバッグします。
-
FreeRTOS デモアプリケーションをバイナリイメージにクロスコンパイルします。
-
アプリケーションバイナリイメージをボードにロードし、アプリケーションを実行します。
-
モニタリングおよびデバッグの目的で、シリアル接続経由でボード上で実行されているアプリケーションを操作します。
開発環境をセットアップする
FreeRTOS は、XMC4800 のプログラミングに Infineon の DAVE 開発環境を使用します。開始する前に、DAVE および一部の J-Link ドライバーをダウンロードしてインストールし、オンボードデバッガーと通信できるようにします。
DAVE をインストールする
-
Infineon の DAVE software download
ページに移動します。 -
ご使用のオペレーティングシステム向けの DAVE パッケージを選択し、登録情報を送信します。登録後、.zip ファイルをダウンロードするためのリンクが記載された確認メールが届きます。
-
DAVE パッケージ .zip ファイル (
DAVE_
) をダウンロードして、DAVE をインストールする場所 (例えば、version
_os
_date
.zipC:\DAVE4
) に解凍します。注記
一部の Windows ユーザーから、ファイルの解凍に Windows エクスプローラーを使用する際の問題が報告されています。7-Zip などのサードパーティー製のプログラムを使用することをお勧めします。
-
DAVE を起動するには、解凍された
DAVE_
フォルダで検出された実行可能ファイルを実行します。version
_os
_date
.zip
詳細については DAVE Quick Start Guide
Segger J-Link ドライバーをインストールする
XMC4800 IoT Connectivity Kit のオンボードデバッグプローブと通信するには、J-Link ソフトウェアおよびドキュメントパックに含まれているドライバが必要です。Segger の J-Link software download
シリアル接続の確立
USB/シリアルコンバータケーブルを Infineon Shield2Go Adapter に接続します。これにより、開発マシンで表示可能な形式でボードからログとデバッグ情報を送信できるようになります。シリアル接続の設定方法は、以下の通りです。
-
RX ピンを USB/シリアルコンバータの TX ピンに接続します。
-
TX ピンを USB/シリアルコンバータの RX ピンに接続します。
-
シリアルコンバータの Ground (接地) ピンを、ボード上の GND ピンのいずれかに接続します。デバイスは、共通の接地を持っている必要があります。
電力は USB デバッグポートから供給されるため、シリアルアダプタの正電圧ピンをボードに接続することはしないでください。
注記
一部のシリアルケーブルは、5V シグナルレベルを使用します。XMC4800 ボードと Wi-Fi クリックモジュールには、3.3V が必要です。ボードのシグナルを 5V に変更するために、ボードの IOREF ジャンパーを使用することはしないでください。
ケーブルが接続されると、GNU Screen
クラウドの MQTT メッセージのモニタリング
FreeRTOS デモプロジェクトを実行する前に、デバイスが AWS クラウドに送信するメッセージをモニタリングするために、AWS IoT コンソールで MQTT クライアントをセットアップすることができます。
AWS IoT MQTT クライアントで MQTT トピックをサブスクライブするには
-
AWS IoT コンソール
にサインインします。 -
ナビゲーションペインで、[テスト] を選択し、[MQTT テストクライアント] を選択して MQTT クライアントを開きます。
-
[Subscription topic] (トピックのサブスクリプション) で
と入力し、[Subscribe to topic] (トピックへのサブスクライブ) を選択します。your-thing-name
/example/topic
デバイス上でデモプロジェクトが正常に実行されると、「Hello World!」が 購読しているトピックに複数回送信されたことを確認できます。
FreeRTOS デモプロジェクトを構築して実行する
FreeRTOS デモを DAVE にインポートする
-
DAVE を起動します。
-
DAVE で、[File] (ファイル) を選択し、[Import] (インポート) を選択します。[Infineon] フォルダを展開し、[DAVE Project] (DAVE プロジェクト) を選択してから [Next] (次へ) を選択します。
-
[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 にコピー) がオフになっていることを確認します。
-
[Finish] (終了) を選択します。
aws_demos
プロジェクトは、WorkSpace にインポートされ、アクティブ化されます。 -
[Project] (プロジェクト) メニューから [Build Active Project] (アクティブなプロジェクトを構築) を選択します。
プロジェクトがエラーなしでビルドされていることを確認します。
FreeRTOS デモプロジェクトを実行する
-
[Project] (プロジェクト) メニューから、[Rebuild Active Project] (アクティブなプロジェクトの再構築) を選択して、
aws_demos
を再構築し、設定変更が取得されたことを確認します。 -
[Project Explorer] (プロジェクトエクスプローラー) から
aws_demos
を右クリックして [Debug As] (デバッグ方法) を選択し、[DAVE C/C++ Application] (DAVE C/C++ アプリケーション) を選択します。 -
[GDB SEGGER J-Link Debugging] (GDB SEGGER J-Link デバッグ) をダブルクリックして、デバッグ情報を作成します。[Debug] (デバッグ) を選択します。
-
デバッガーが
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
FreeRTOS 開発に IDE を使用しない場合は、代わりに CMake を使用して、サードパーティーのコードエディタおよびデバッグツールを使用して開発した、デモアプリケーションまたはアプリケーションを構築して実行できます。
CMake で FreeRTOS デモを構築するには
-
GNU Arm Embedded Toolchain をセットアップします。
-
Arm Embedded Toolchain ダウンロードページ
から Windows バージョンのツールチェーンをダウンロードします。 注記
「8-2018-q4-major」バージョンについては、objcopy ユーティリティでバグが報告されている
ため、それ以外のバージョンをダウンロードすることをお勧めします。 -
ダウンロードしたツールチェーンインストーラーを開き、ウィザードの指示に従います。
-
インストールウィザードの最後のページで、[Add path to environment variable] (パスを環境変数に追加) を選択してツールチェーンパスをシステムのパス環境変数に追加します。
-
-
CMake および MinGW をインストールします。
手順については、「CMake の前提条件」を参照してください。
-
生成されたビルドファイルを格納するフォルダ (
build-folder
) を作成します。 -
ディレクトリを 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 -
ディレクトリをビルドディレクトリ (
build-folder
) に変更し、次のコマンドを使用してバイナリをビルドします。cmake --build . --parallel 8
このコマンドにより、ビルドディレクトリにバイナリ出力
aws_demos.hex
がビルドされます。 -
JLINK を使用してイメージをフラッシュして実行します。
-
ビルドディレクトリ (
build-folder
) から、次のコマンドを使用してフラッシュスクリプトを作成します。echo loadfile aws_demos.hex > flash.jlink echo r >> flash.jlink echo g >> flash.jlink echo q >> flash.jlink
-
JLNIK 実行可能ファイを使用してイメージをフラッシュします。
JLINK_PATH
\JLink.exe -device XMC4800-2048 -if SWD -speed auto -CommanderScript flash.jlinkボードで確立したシリアル接続を介してアプリケーションログが表示されます。続いて、オプション #2: オンボードプライベートキーの生成 のパブリックキーの抽出手順に進みます。すべての手順が完了したら、AWS IoT コンソールに移動します。以前に設定した MQTT クライアントは、デバイスから送信された MQTT メッセージを表示します。
-
トラブルシューティング
一般的なトラブルシューティング情報については、「トラブルシューティングの開始方法」を参照してください。