C
Infineon でのPSOC Edgeプラットフォームの始め方
概要
このトピックでは、Qt Quick Ultralite でサポートされているInfineon PSOC™ Edge プラットフォームの使用を開始するために必要なすべての情報を提供します。
「Infineon Online Software Delivery Tool」を使用して、Qt for MCUs のデモアプリケーションをフラッシュしてください。Infineon およびQt Groupによって開発されたこれらのアプリケーションは、EVKの高性能なグラフィックス機能を実証するものです。
対応バージョン
Qt Quick Ultraliteは、ModusToolbox Tools Package バージョン3.7.0での動作確認が完了しています。
前提条件のインストール
開発環境をセットアップする前に、前提条件をインストールしてください。
Infineon PSOC Edge E84 評価キット
- Qt Quick Ultralite 2.12.3
- Qt Quick UltraliteInfineon PSOC Edge E84 評価キット プラットフォームパッケージ
- Infineon PSOC Edge E84 評価キット
- Infineon ModusToolbox ソフトウェア
- ModusToolbox ツールパッケージ 3.7.0
- ModusToolbox 用 Eclipse IDE 2025.8.0 以降
- ModusToolbox Edge Protect セキュリティスイート 1.6.1
- ModusToolbox プログラミングツール 1.7.0
- GNU Arm GCC 14.2.1 または LLVM Embedded Toolchain for Arm 19.1.5
注:一部の Qt Quick Ultraliteデモアプリケーション(swipe_game、Thermostat、Watchデモなど)をInfineon PSOC Edge E84評価キット上で実行するには、1 Gbitの外部オクタルSPIフラッシュが必要です。1 Gbitフラッシュを活用するには、『Infineon Edge Protect Bootloader for PSOC Edge MCU』アプリケーションノートを参照してください。
ModusToolboxプロジェクトの準備
ModusToolboxプロジェクトでQt Quick Ultraliteを実行するには、追加の設定が必要です。空のPSOC Edgeアプリケーションに加えて、以下の設定が必要です。
注:このセクションでは 、ModusToolbox用Eclipse IDEに関する知識が必要です。ソフトウェアの使用方法については、『ModusToolbox用Eclipse IDEユーザーガイド』を参照してください。
ライブラリ
ModusToolboxのLibrary Manager 内にあるproj_cm55に対して、以下のライブラリを追加してください:
| ライブラリ名 | バージョン |
|---|---|
| display-dsi-waveshare-4-3-lcd | 1.0.0 |
| touch-ctp-ft5406 | 1.0.0 |
| retarget-io | 1.9.0 |
| serial-memory | 3.1.0 |
QSPIの設定
Qt Quick UltraliteでPSRAMを動作させるには、ModusToolboxのQSPI Configurator に以下のQSPI設定を追加してください:
| 設定変数 | 値 |
|---|---|
| QSPI インスタンス | 1 |
| スレーブスロット | 2 |
| メモリ品番 | S70KS1283 |
| 構成 | 200 MHz |
| データセレクト | 8ビットSPIデータ[0:7] |
| メモリマップ | 有効 |
| スロットとペア | なし |
| 開始アドレス | 0x64000000 |
| サイズ | 0x1000000 |
| 終了アドレス | 0x64FFFFFF |
| 書き込み有効 | 有効 |
| フラッシュ内の設定データ | 無効 |
| 暗号化 | 無効 |
| XIPトランザクションのマージ | 16サイクル以内 |
デバイス設定
ModusToolboxで以下の設定を変更してくださいDevice Configurator
グラフィックスを有効にする
Peripherals -> System で、「Graphics 」を有効にし、以下のパラメータ値を変更してください:
| パラメータ | 値 |
|---|---|
| メインクロック | CLK_HF1 root_clk [SHARED] |
| MIPI DPHY PLL クロック | CLK_HF12 root_clk [USED] |
| GPUを有効にする | 有効 |
| ディスプレイタイプ | MIPI DSIビデオモード |
| 転送タイプ | ビデオモード バースト |
| 幅 | 832 |
| 高さ | 480 |
| 目標FPS | 60 |
| ディスプレイインターフェース | DPI-24ビット |
| HSync幅 | 10 |
| HFP | 210 |
| HBP | 20 |
| VSync幅 | 5 |
| VFP | 20 |
| VBP | 20 |
| ピクセルクロック(kHz) | 33768 |
| DSIレーン数 | 1 |
| レーンあたりの最大転送速度(Mbps) | 850 |
| レーンあたりの最大Mbpsを使用する | 有効 |
| レーンごとの必要Mbps | 850 |
| LPでのCMD転送を許可する | 有効 |
| VIDEOでのLP遷移を許可する | 有効 |
| グラフィックス/ビデオレイヤーを有効にする | 有効 |
| Overlay0を有効にする | 無効 |
| オーバーレイ1を有効にする | 無効 |
| 表示状態 | 有効 |
| 入出力フォーマット | RGB565 |
| X座標 | 0 |
| Y 位置 | 0 |
| 幅 | 832 |
| 高さ | 480 |
| Z順序 | 0 |
I2Cクロック周波数とデータ転送速度の変更
Peripherals -> Communication で、Serial Communication Block (SCB) 0 を有効にし、パラメータを以下の値に変更してください:
| パラメータ | 値 |
|---|---|
| モード | マスター |
| 手動データレート制御 | 無効 |
| データレート (kbps) | 100 |
| TX FIFO を使用 | 有効 |
| RX FIFOを使用 | 有効 |
| ディープスリープモードからのウェイクアップを有効にする | 無効 |
| クロック | 16 ビット分周器 0 clk (CYBSP_I2C_CONTROLLER_CLK_DIV) [使用済み] |
| SCL | P8[0] digital_inout (CYBSP_I2C_SCL) [使用済み] |
| SDA | P8[1] digital_inout (CYBSP_I2C_SDA) [使用中]SCL |
| SCL出力 (scl_trig) | <未割り当て> |
| RXトリガー出力 | <未割り当て> |
| TX トリガー出力 | <未割り当て> |
| 実データレート (kbps) | 97 |
| tLow (ns) | 5120 |
| tHigh (ns) | 5120 |
| クロック周波数 | 3.125 MHz |
| 設定をフラッシュメモリに保存 | 有効 |
「Actual Data Rate 」セクションの値はクロック設定に依存しており、ここでは変更できません。これらの値を変更するには、Clocks -> Dividers -> Peripheral -> Peri 0 -> Peri 0 Clock Group 1 -> 16 bit -> 16 bit Divider 0 内の「16 bit Divider 0 clk (CYBSP_I2C_CONTROLLER_CLK_DIV) 」で以下のパラメータを設定してください:
| パラメータ | 値 |
|---|---|
| ソースクロック | CLK_HF10 root_clk [SHARED] |
| 分周器 | 32 |
| 周波数 | 3.125 MHz |
| リセット時に起動 | 有効 |
| 周辺機器 | シリアル通信ブロック (SCB) 0 clock_scb_en (CYBSP_I2C_CONTROLLER) |
Qt Quick Ultralite用PSRAMメモリ領域を有効にする
Peripherals -> Communication -> Quad Serial memory Interface (QSPI) 1 -> QSPI 1 Core 0 が有効になっていることを確認してください。Memory -> Memory Regions に移動し、Serial Memory Interface block 1, memory 2 (S70KS1283) を開き、UNALLOCATED 領域の横にある「Plus 」ボタンをクリックして、「Add region 」を選択します。新しい領域に対して、以下のプロパティを設定します:
| プロパティ | 値 |
|---|---|
| リージョン ID | m55_psram |
| ドメイン | M55 (ドメイン 2) |
| オフセット | 0x00000000 |
| サイズ (バイト) | 0x01000000 |
「OK 」をクリックして、リージョンを作成します。
こちらの手順に従って、Qt Quick Ultralite で PSRAM サポートを有効にしてください。
プロジェクトの設定
プロジェクトがQt Quick Ultraliteに対応するには、以下の変更が必要です:
proj_cm55にFreeRTOSConfig.hが存在する場合は、それを削除してください。エクスポートされたQt Quick Ultralite アプリケーションには、Qt Quick Ultralite 用に事前設定されたFreeRTOSConfig.hファイルが含まれています。- 追加
COMPONENTS+=GFXSS
common.mk に追加してください。
アプリケーションのビルド
環境の設定
アプリケーションをビルドする前に、以下の環境変数を設定してください:
export QUL_ROOT=$HOME/Qt/QtMCUs/2.12.3
set QUL_ROOT=C:\Qt\QtMCUs\2.12.3
「Qt Quick Ultralite」アプリケーションのエクスポート
qmlprojectexporter を使用してアプリケーションコードをエクスポートします:
注: LLVM サポート付きのQt Quick Ultralite アプリケーションをエクスポートするには 、Qt Quick Ultralite ライブラリを LLVM ツールチェーンでビルドする必要があります。ビルド手順については、「 PSOC Edge E84 における LLVM サポート」を参照してください。
ARM GCC:
$QUL_ROOT/bin/qmlprojectexporter \ /path/to/your/project.qmlproject \ --boarddefaults=$QUL_ROOT/platform/boards/infineon/psoc-edge-e84-freertos/cmake/BoardDefaults_16bpp_default.qmlprojectconfig \ --toolchain GNU \ --platform psoc-edge-e84-freertos \ --extend-project /path/to/mtw/your_ModusToolbox_application_project/proj_cm55/Makefile \ --project-type ModusToolbox \ --generate-entrypoint \ --platform-metadata $QUL_ROOT/lib/QulPlatformTargets_psoc-edge-e84-freertos_16bpp_Linux_armgcc-export.json
LLVM:
$QUL_ROOT/bin/qmlprojectexporter \ /path/to/your/project.qmlproject \ --boarddefaults=$QUL_ROOT/platform/boards/infineon/psoc-edge-e84-freertos/cmake/BoardDefaults_16bpp_default.qmlprojectconfig \ --toolchain LLVM \ --platform psoc-edge-e84-freertos \ --extend-project /path/to/mtw/your_ModusToolbox_application_project/proj_cm55/Makefile \ --project-type ModusToolbox \ --generate-entrypoint \ --platform-metadata $QUL_ROOT/lib/QulPlatformTargets_psoc-edge-e84-freertos_16bpp_Linux_llvm-arm-export.json
ARM GCC:
%QUL_ROOT%\bin\qmlprojectexporter ^ C:\path\to\your\project.qmlproject ^ --boarddefaults=%QUL_ROOT%\platform\boards\infineon\psoc-edge-e84-freertos\cmake\BoardDefaults_16bpp_default.qmlprojectconfig ^ --toolchain GNU ^ --platform psoc-edge-e84-freertos ^ --extend-project C:\path\to\mtw\your_ModusToolbox_application_project\proj_cm55\Makefile ^ --project-type ModusToolbox ^ --generate-entrypoint ^ --platform-metadata %QUL_ROOT%\lib\QulPlatformTargets_psoc-edge-e84-freertos_16bpp_Windows_armgcc-export.json
LLVM:
%QUL_ROOT%\bin\qmlprojectexporter ^ C:\path\to\your\project.qmlproject ^ --boarddefaults=%QUL_ROOT%\platform\boards\infineon\psoc-edge-e84-freertos\cmake\BoardDefaults_16bpp_default.qmlprojectconfig ^ --toolchain LLVM ^ --platform psoc-edge-e84-freertos ^ --extend-project C:\path\to\mtw\your_ModusToolbox_application_project\proj_cm55\Makefile ^ --project-type ModusToolbox ^ --generate-entrypoint ^ --platform-metadata %QUL_ROOT%\lib\QulPlatformTargets_psoc-edge-e84-freertos_16bpp_Windows_llvm-arm-export.json
エクスポートが正常に完了した場合、ModusToolbox プロジェクトの `proj_cm55` 配下に `QtMCUs ` ディレクトリが作成されているはずです。
proj_cm55/Makefile を編集し、## QUL BEGIN ## というコメントの直前にFREERTOS_DIR 変数を追加してください:
FREERTOS_DIR=$(patsubst %/,%,$(CY_GETLIBS_SHARED_PATH))/$(CY_GETLIBS_SHARED_NAME)/freertos/release-v10.6.202/Source
注:この エクスポートは、アプリケーション・プロジェクトごとに1回だけ必要です。ModusToolboxプロジェクトは、QMLファイルの変更を自動的に検出し、C++コードを再生成します。
Qt Quick のUltraliteアプリケーションで異なるバリアントのセレクタを使用する場合は、qmlprojectexporter の--selector 引数にそれらを追加してください。たとえば、Qt Quick のUltraliteサーモスタットデモでは、以下のセレクタが使用されています:
--selector normal,small
Infineon のPSOC Edgeプラットフォームのデフォルト設定では、Release 構成でビルドされたQt Quick Ultraliteライブラリがエクスポートされます。別のビルド構成(Debug など)でQt Quick Ultraliteライブラリをビルドした場合は、qmlprojectexporter コマンドに--qul-build-type引数を追加して、ビルドタイプを上書きしてください:
--qul-build-type Debug
Qt Quick Ultraliteに同梱されているいくつかのサンプルでは、アプリケーションコード内にmain() 関数が含まれていません。main() 関数を追加する場合を除き、これらのサンプルをエクスポートする際には--generate-entrypoint引数を使用してください。Qt Quick Ultraliteを初期化するmain() 関数の記述に関する詳細については、「アプリケーションでのQt Quick Ultraliteの実行」を参照してください。
qmlprojectexporter およびQmlProjectの詳細については、qmlprojectexporterのドキュメントおよび『QmlProjectマニュアル』を参照してください。
ModusToolbox プロジェクトのビルドとフラッシュ
注: このセクションでは 、ModusToolbox 用 Eclipse IDE に関する知識が必要です。ソフトウェアの使用方法については、『Eclipse IDE for ModusToolbox ユーザーガイド』を参照してください。
Eclipse IDE for ModusToolbox からアプリケーションをビルドおよびフラッシュするには、以下の手順に従ってください。
- ModusToolboxプロジェクトを選択します。
- Quick Panel -> <ModusToolbox project name> から「Build Application 」をクリックして、プロジェクトをビルドします。
- Quick Panel -> Launches から「<ModusToolbox project name> Program Application 」をクリックし、アプリケーションをボードに書き込みます。
デバッグ
デバッグメッセージの読み取り
デフォルトでは、Qt Quick Ultralite は、qul_printf およびQul::PlatformInterface::log 呼び出しからのすべての出力を仮想シリアルポートにリダイレクトします。この仮想シリアルポートには、USB を使用してホストマシンからアクセスできます。初期のプロジェクト設定では、出力ボーレートは 115200 bps です。
UARTポートの速度を変更するには、以下の変更を行ってください。
Peripheral -> Communication -> Serial Communication Block (SCB) 2 (CYBSP_DEBUG_UART )内で、以下の値を変更してください:
| パラメータ | デフォルト値 |
|---|---|
| 通信モード | 標準 |
| ボーレート (bps) | 115200 |
| オーバーサンプリング | 10 |
| ビット順 | LSBファースト |
| データ幅 | 8ビット |
| パリティ | なし |
| ストップビット | 1ビット |
Actual Baud Rate が希望のボーレートと一致していることを確認してください:
| パラメータ | デフォルト値 |
|---|---|
| 実際のボーレート (bps) | 114942 |
| ボーレート精度 (%) | 0.224 |
| クロック周波数 | 1.149425 MHz |
Clocks -> Dividers -> Peripheral -> Peri 0 -> Peri 0 Clock Group 1 -> 16 bit -> 16 bit Divider 1 (CYBSP_DEBUG_UART_CLK_DIV )を変更することで、実際のボーレートを変更できます:
| パラメータ | デフォルト値 |
|---|---|
| ソースクロック | CLK_HF10 root_clk [SHARED] |
| 分周器 | 87 |
| 周波数 | 1.149 MHz |
| リセット時に起動 | 有効 |
| 周辺機器 | シリアル通信ブロック (SCB) 2 clock_scb_end (CYBSP_DEBUG_UART) [使用中] |
デバッガの使用
注:このセクションでは 、ModusToolbox 用 Eclipse IDE に関する知識が必要です。ソフトウェアの使用方法については、『ModusToolbox 用 Eclipse IDE ユーザーガイド』を参照してください。
以下の手順は、Eclipse IDE for ModusToolbox でプロジェクトをデバッグする方法を示しています:
- ModusToolbox プロジェクトを選択します。
- Quick Panel -> Launches から「<ModusToolbox project name> Debug MultiCore 」をクリックして、デバッガーを起動します。
proj_cm55サブプロジェクトを選択し、続いて [Quick Panel -> Launches] から [<ModusToolbox project name> Debug ] を選択することで、デバッグの対象を M55 プロジェクトのみに限定することができます。
注:大規模な アプリケーションの場合、デフォルトの KitProg3 デバッガを使用する際には、「Attach 」設定が必要になることがあります。設定はRun -> Debug Configurations.. から確認できます。
ボード固有の情報
現在サポートされているInfineon PSOC Edgeターゲットを以下に示します。Qt Quick Ultraliteでサポートされているすべてのターゲットの詳細については、「サポート対象のターゲットボードおよび開発ホスト」を参照してください。
Tier 2: 検証済みターゲット
| ハードウェアボード | MCU | コンパイラ | オペレーティングシステム | ホスト |
|---|---|---|---|---|
| Infineon PSOC Edge E84 評価キット | PSE846GPS2DBZC4 | GNU Arm GCC 14.2.1、Arm用LLVM Embedded Toolchain 19.1.5 | FreeRTOS | Windows および Linux ホスト |
リソースキャッシュポリシー
デフォルトでは、アプリケーションのリソースデータは起動時に SDRAM にコピーされます。これらのリソースをフラッシュメモリに保持し、起動時に RAM に読み込まないようにするには、qmlproject ファイルに次の QmlProject オプションを追加してください:
MCU.Config {
resourceCachePolicy: "NoCaching"
}あるいは、次のように個々のイメージに対してのみ有効にすることもできます:
ImageFiles {
files: [
"big/button.png"
]
MCU.resourceCachePolicy: "NoCaching"
}特定の Qt ライセンスの下で利用可能です。
詳細はこちら。