C
Infineon PSOC Edgeプラットフォームで始める
概要
このトピックでは、Qt Quick Ultralite がサポートするInfineon PSOC™ Edge プラットフォームを使い始めるために必要な情報を提供します。
Qt for MCUs デモをフラッシュするには、Infineon Online Software Delivery Toolを使用します。Infineon と Qt Group が開発したこれらのアプリケーションは、EVK の高性能グラフィックス機能を紹介するものです。
対応バージョン
Qt Quick UltraliteはModusToolbox Tools Package バージョン3.7.0でテストされています。
前提条件のインストール
開発環境をセットアップする前に、前提条件をインストールしてください。
Infineon PSOC Edge E84評価キット
- Qt Quick ウルトラライト 2.12.1
- Qt Quick UltraliteInfineon PSOC Edge E84 評価キット・プラットフォーム・パッケージ
- Infineon PSOC Edge E84 評価キット
- Infineon ModusToolboxソフトウェア
- ModusToolboxツールパッケージ3.7.0
- ModusToolbox 2025.8.0以降のEclipse IDE
- ModusToolbox Edge プロテクト・セキュリティ・スイート 1.6.1
- ModusToolboxプログラミングツール1.7.0
- GNU Arm GCC 14.2.1またはLLVM Embedded Toolchain for Arm 19.1.5
注: Infineon PSOC Edge E84 評価キットで実行するには、Qt Quick Ultralite デモ・アプリケーションの一部 (swipe_game、サーモスタット、Watch デモなど) に 1Gbit 外部オクタル SPI フラッシュが必要です。1Gbit フラッシュを利用するには、Infineon のメモリ構成手順を参照してください。
ModusToolboxプロジェクトの準備
ModusToolboxプロジェクトでは、Qt Quick Ultraliteを実行するために追加の設定が必要です。空のPSOC Edge アプリケーションの上に、以下の設定が必要です。
注: このセクションでは、Eclipse IDE for ModusToolbox ソフトウェアの知識が必要です。ソフトウェアの使用方法については、Eclipse IDE for ModusToolboxユーザーガイドを参照してください。
ライブラリ
ModusToolboxLibrary Manager のproj_cm55に以下のライブラリを追加します:
| ライブラリ名 | バージョン |
|---|---|
| ディスプレイ-dsi-waveshare-4-3-LCD | 1.0.0 |
| タッチ-ctp-ft5406 | 1.0.0 |
| リターゲットイオ | 1.9.0 |
| シリアルメモリ | 3.1.0 |
QSPIコンフィギュレーション
Qt Quick UltraliteでPSRAMを動作させるために、ModusToolboxQSPI Configurator に以下のQSPI設定を追加してください:
| 設定変数 | 値 |
|---|---|
| QSPIインスタンス | 1 |
| スレーブ・スロット | 2 |
| メモリ部品番号 | S70KS1283 |
| 構成 | 200MHz |
| データ選択 | オクタルSPI-Data[0:7] |
| メモリマップド | 有効 |
| スロットとペア | なし |
| 開始アドレス | 0x64000000 |
| サイズ | 0x1000000 |
| 終了アドレス | 0x64FFFFFF |
| 書き込み有効 | 有効 |
| フラッシュコンフィグデータ | 無効 |
| 暗号化 | 無効 |
| XIPトランザクションのマージ | 16サイクル以内 |
デバイス構成
ModusToolboxで以下の設定を変更します。Device Configurator
グラフィックを有効にする
Peripherals -> System で、Graphics を有効にし、以下のパラメータ値を変更します:
| パラメータ | 値 |
|---|---|
| メイン・クロック | CLK_HF1 root_clk [SHARED] MIPI DPHY PLL クロック。 |
| MIPI DPHY PLLクロック | CLK_HF12 ルートクロック [USED] |
| GPUを有効にする | 有効 |
| ディスプレイタイプ | MIPI DSIビデオモード |
| 転送タイプ | ビデオモードバースト |
| バースト幅 | 832 |
| 高さ | 480 |
| 目標FPS | 60 |
| ディスプレイインターフェース | DPI-24bit |
| HSync幅 | 10 |
| 最大出力 | 210 |
| HBP | 20 |
| VSync幅 | 5 |
| VFP | 20 |
| VBP | 20 |
| ピクセルクロック(KHz) | 33768 |
| DSIレーン数 | 1 |
| 最大レーン数 Mbps | 850 |
| レーンあたりの最大Mbps | 有効 |
| レーンあたり必要Mbps | 850 |
| LPでCMD転送を許可 | 有効 |
| VIDEOでのLP遷移許可 | 有効 |
| グラフィック/ビデオレイヤー有効 | 有効 |
| オーバーレイ0を有効にする | 無効 |
| 有効 オーバーレイ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クロック(CYBSP_I2C_CONTROLLER_CLK_DIV)[USED] |
| SCL | P8[0] digital_inout (CYBSP_I2C_SCL) [USED] デジタル入力。 |
| SDA | P8[1] digital_inout (CYBSP_I2C_SDA) [USED] SDA |
| 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.1set QUL_ROOT=C:\Qt\QtMCUs\2.12.1Qt Quick Ultraliteアプリケーションのエクスポート
qmlprojectexporterを使ってアプリケーションコードをエクスポートしてください:
注: Qt Quick Ultralite アプリケーションを LLVM サポート付きでエクスポートするには、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.jsonLLVM:
$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.jsonARM 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.jsonLLVM:
%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注意: このエクスポートは、アプリケーション・プロジェクトごとに一度だけ必要です。ModusToolboxプロジェクトは自動的にQMLファイルの変更を検出し、C++コードを再生成します。
Qt Quick Ultraliteアプリケーションが異なるバリアント用のセレクタを使用する場合、qmlprojectexporter の引数--selector に追加します。例えば、Qt Quick Ultralite Thermostat Demoは以下のセレクタを使用します:
--selector normal,smallInfineon PSOC Edgeプラットフォームのデフォルト構成では、Release 構成でビルドされたQt Quick Ultraliteライブラリをエクスポートします。Qt Quick Ultraliteライブラリを別のビルド構成(Debug など)でビルドした場合は、qmlprojectexporter コマンドに--qul-build-type引数を追加してビルドタイプを上書きしてください:
--qul-build-type DebugQt Quick Ultraliteとともに出荷されたいくつかのサンプルは、アプリケーションコードにmain() 関数を持っていません。main() 関数を追加する場合を除き、これらの例をエクスポートする際には--generate-entrypoint引数を使用してください。Qt Quick Ultraliteを初期化するmain() 関数の書き方については、アプリケーションでQt Quick Ultraliteを実行するを参照してください。
qmlprojectexporter と QmlProject の詳細については、qmlprojectexporter ドキュメントと QmlProject マニュアルを参照してください。
ModusToolboxプロジェクトのビルドとフラッシュ
注: このセクションでは、Eclipse IDE for ModusToolboxソフトウェアの知識が必要です。ソフトウェアの使用方法については、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) [使用済み] |
デバッガの使用
注: このセクションでは、Eclipse IDE for ModusToolbox ソフトウェアの知識が必要です。ソフトウェアの使用方法についてはEclipse IDE for ModusToolbox User Guide を参照してください。
次のステップでは、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でサポートされているすべてのターゲットの詳細については、サポートされているターゲットボードと開発ホストを参照してください。
階層 2: 検証済みターゲット
| ハードウェアボード | MCU | コンパイラ | オペレーティング・システム | ホスト |
|---|---|---|---|---|
| Infineon PSOC Edge E84評価キット | PS846GPS2DBZC4 | GNU Arm GCC 14.2.1、LLVM Embedded Toolchain for Arm 19.1.5 | FreeRTOS | WindowsおよびLinuxホスト |
リソースキャッシュポリシー
デフォルトでは、アプリケーションのリソース・データは起動時に SDRAM にコピーされます。これらのリソースをフラッシュに保持し、起動時に RAM にロードしないようにするには、qmlproject ファイルに以下の QmlProject オプションを追加します:
MCU.Config {
resourceCachePolicy: "NoCaching"
}また、以下のように個々のイメージに対してのみ有効にすることもできます:
ImageFiles {
files: [
"big/button.png"
]
MCU.resourceCachePolicy: "NoCaching"
}