このページでは

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-lcd1.0.0
touch-ctp-ft54061.0.0
retarget-io1.9.0
serial-memory3.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
目標FPS60
ディスプレイインターフェースDPI-24ビット
HSync幅10
HFP210
HBP20
VSync幅5
VFP20
VBP20
ピクセルクロック(kHz)33768
DSIレーン数1
レーンあたりの最大転送速度(Mbps)850
レーンあたりの最大Mbpsを使用する有効
レーンごとの必要Mbps850
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) [使用済み]
SCLP8[0] digital_inout (CYBSP_I2C_SCL) [使用済み]
SDAP8[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 」を選択します。新しい領域に対して、以下のプロパティを設定します:

プロパティ値
リージョン IDm55_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 からアプリケーションをビルドおよびフラッシュするには、以下の手順に従ってください。

  1. ModusToolboxプロジェクトを選択します。
  2. Quick Panel -> <ModusToolbox project name> から「Build Application 」をクリックして、プロジェクトをビルドします。
  3. 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 でプロジェクトをデバッグする方法を示しています:

  1. ModusToolbox プロジェクトを選択します。
  2. 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 評価キットPSE846GPS2DBZC4GNU Arm GCC 14.2.1、Arm用LLVM Embedded Toolchain 19.1.5FreeRTOSWindows および Linux ホスト

リソースキャッシュポリシー

デフォルトでは、アプリケーションのリソースデータは起動時に SDRAM にコピーされます。これらのリソースをフラッシュメモリに保持し、起動時に RAM に読み込まないようにするには、qmlproject ファイルに次の QmlProject オプションを追加してください:

MCU.Config {
    resourceCachePolicy: "NoCaching"
}

あるいは、次のように個々のイメージに対してのみ有効にすることもできます:

ImageFiles {
    files: [
        "big/button.png"
    ]
    MCU.resourceCachePolicy: "NoCaching"
}

特定の Qt ライセンスの下で利用可能です。
詳細はこちら。