C
NXP の導入(BareMetal およびFreeRTOS )
概要
このトピックでは、Qt Quick Ultralite でサポートされているNXP プラットフォームの利用を開始するために必要なすべての情報を提供します。
注:この 手順は 、BareMetalまたはFreeRTOS 上で動作するNXP ターゲットを使用する場合に適用されます。LinuxまたはZephyr®上で動作するNXP ターゲットの使用開始方法については、「NXP (Linux)の使用開始」および「NXP (Zephyr )の使用開始」を参照してください。
前提条件のインストール
開発環境をセットアップする前に、すべての前提条件がインストールされていることを確認してください。
開発環境のセットアップ
Qt Creator IDEの設定(BareMetalおよびFreeRTOS )
Qt Creator IDEを使用してMCU向けの開発を行うには、MCUプラグインが必要です。Qt Online Installer では、Qt for MCUs SDKをインストールすると、このプラグインがデフォルトで有効になります。
MCU上でアプリケーションをビルドして実行するには、キットを作成する必要があります:
- 「Edit > Preferences > SDKs > MCU 」を選択します。
注: 「MCU」タブが表示されない場合は 、「Help > About Plugins 」を選択し、 Qt for MCUs プラグインを有効にし、Qt Creator を再起動して変更を反映させてください。
- まだ設定されていない場合は、Qt for MCUs のインストールディレクトリへのパスを指定してください。

- [ Target supported by the Qt for MCUs SDKを選択します。例: Qt for MCUs 2.12.2 - MIMXRT1170-EVKB-FREERTOS 32BPP。
- 「Requirements 」セクションで、プラットフォーム固有の要件が満たされていることを確認してください。
- キットを自動的に作成するには、[Automatically create kits for all available targets on start ] を選択します。
注: 「Create Kit 」および「Update Kit 」を使用して、キットを手動で作成または更新することもできます 。
- キットを自動的に作成する場合は、「Apply 」を選択し、「Qt Creator 」を再起動してください。
CMake変数の設定
コマンドプロンプトから開発環境を設定することも可能です。NXP ボード向けのアプリケーション開発において、Qt Quick UltraliteとCMakeを併用する方法の詳細については、『NXP ボード用CMakeマニュアル』を参照してください。
ファームウェアの書き込み(BareMetal およびFreeRTOS )
NXP ボードへのファームウェア書き込みおよびデバッグを行うには、ボードにOpenSDAファームウェアが搭載されている必要があります。不適切なファームウェアを書き込んだ場合、ツールがデバイスとの接続を確立できない可能性があります。
ファームウェアを確認するには、デバイスを開発用ホストに接続し、マウントされたUSBストレージデバイスを開きます。「DETAILS.TXT 」ファイル内で、「USB Interfaces」で始まる行を探してください。そこに「CDC」と「HID」が記載されている必要があります。これらが記載されていない場合は、おそらく誤ったファームウェアを使用している可能性があります。
NXP では、ファームウェアのダウンロードを提供しています。ダウンロードページで、お使いのボードの種類を選択し、「Default firmware application, DAPLink」をダウンロードしてください。NXP の指示に従ってこれをボードに書き込んだ後、CDC および HID インターフェースが一覧に表示されるはずです。
Qt Quick のUltraliteライブラリを使用してアプリケーションを構築する
Qt Creator IDE を使用したアプリケーションのビルド
- ビルドしたい例のCMakeプロジェクトファイルを開きます。
- 「Configure Project 」ウィンドウで:
- 適切なキットを選択します。例えば、 Qt for MCUs 2.12.2 - MIMXRT1170-EVKB-FREERTOS 32BPP.
- 「Configure Project 」を選択します。

プロジェクトの設定が完了したら、「Run 」を選択するか、キーボードのCtrl+rキーを押して、バイナリをビルドし、ターゲットに書き込みます。
コマンドプロンプトを使用したアプリケーションのビルド
BareMetal およびFreeRTOS
以下の例では、MIMXRT1170-EVKB向けのminimal サンプルをビルドする方法を説明します。
QUL_ROOT また、以下のコマンドラインの例では、QUL_TOOLS が環境変数として設定されているかのように使用されています。例えば:
export QUL_ROOT=$HOME/Qt/QtMCUs/2.12.2
export QUL_TOOLS=$HOME/Qt/Tools/QtMCUsset QUL_ROOT=C:\Qt\QtMCUs\2.12.2
set QUL_TOOLS=C:\Qt\Tools\QtMCUscd $QUL_ROOT/examples/minimal
mkdir build
cd build
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=MinSizeRel -DQul_ROOT=$QUL_ROOT -DCMAKE_TOOLCHAIN_FILE=$QUL_ROOT/lib/cmake/Qul/toolchain/armgcc.cmake -DQUL_TARGET_TOOLCHAIN_DIR=$QUL_TOOLS/arm_gcc_12_3_1 -DQUL_BOARD_SDK_DIR=$QUL_TOOLS/NXP/SDK_2_15_0_MIMXRT1170-EVKB -DQUL_PLATFORM=MIMXRT1170-EVKB-freertos -DMCUXPRESSO_IDE_PATH=/path/to/the/MCUXpressoIDE -DFREERTOS_DIR=$QUL_TOOLS/NXP/SDK_2_15_0_MIMXRT1170-EVKB/rtos/freertos/freertos-kernel
cmake --build .cd %QUL_ROOT%\examples\minimal
mkdir build
cd build
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=MinSizeRel -DQul_ROOT=%QUL_ROOT% -DCMAKE_TOOLCHAIN_FILE=%QUL_ROOT%\lib\cmake\Qul\toolchain\armgcc.cmake -DQUL_TARGET_TOOLCHAIN_DIR=%QUL_TOOLS%\arm_gcc_12_3_1 -DQUL_BOARD_SDK_DIR=%QUL_TOOLS%\NXP\SDK_2_15_0_MIMXRT1170-EVKB -DQUL_PLATFORM=MIMXRT1170-EVKB-freertos -DMCUXPRESSO_IDE_PATH=C:\path\to\the\MCUXpressoIDE -DFREERTOS_DIR=%QUL_TOOLS%\NXP\SDK_2_15_0_MIMXRT1170-EVKB\rtos\freertos\freertos-kernel
cmake --build .minimal のサンプルアプリケーションのビルドが正常に完了したら、次のコマンドを使用してフラッシュを行ってください:
cmake --build . --target flash_minimalこの手順は、他のアプリケーションにも同様に適用されます。
デバッグ
デバッグメッセージの読み取り
デフォルトでは、qul_printf およびQul::PlatformInterface::log の呼び出しによる出力は、USB経由でホストマシン上に公開される仮想シリアルポートにリダイレクトされます。
JTag によるデバッグ
アプリケーションコードをデバッグするには、ボードのJTagポートにハードウェアデバッガを接続し、こちらからJ-Linkソフトウェアをインストールする必要があります。
注: 以下のコマンド例では、MIMXRT1170-EVKBボード を使用しています。その他のNXP ボードの詳細については、「ボード固有の情報」の下にあるリンクを参照してください。
JTag 経由でデバッグを行う場合は、ジャンパー JP5 を有効にする必要があります。
警告: ジャンパー JP5を有効にすると 、DAP-Link によるフラッシュ書き込みができなくなります。DAP-Link を再度使用する前に、必ず無効にしてください。
- gdb サーバーを起動します
JLinkGDBServer -endian little -noir -speed auto -port 2331 -vd -device MIMXRT1176xxxA_M7 -if SWD -halt -reportuseraction -JLinkScriptFile evkbmimxrt1170_connect_cm4_cm7side.jlinkscript - 別のコンソールで `
arm-none-eabi-gdb` を実行しますc:\path\to\bin\arm-none-eabi-gdb.exe path\to\compiled.elf -ex "target remote localhost:2331" (gdb) monitor reset halt (gdb) continue注: gdb の monitor reset コマンドでデバイスがリセットされない場合は 、load コマンドを使用してください。JLink スクリプトファイルは SDK パッケージに含まれています。
DAP-Link を使用したデバッグ
利便性のため、MCUXpresso IDE に含まれる Redlink ツールを指す環境変数を設定することができます。
export REDLINK=$MCUXPRESSO_IDE_PATH/ide/LinkServer/binaries/crt_emu_cm_redlinkset REDLINK=%MCUXPRESSO_IDE_PATH%\ide\LinkServer\binaries\crt_emu_cm_redlinkここで、MCUXPRESSO_IDE_PATH は、MCUXpresso IDE のインストールディレクトリを指す環境変数です。
注: MCUXpresso IDE のバージョンが 11.8 以前の場合 、crt_emu_cm_redlink バイナリは IDE 自体にインストールされており、<MCUXPRESSO_IDE_PATH>/ide/binaries/crt_emu_cm_redlink からアクセスできます。
- USBケーブルをボード(J11)とホストPCに接続します。ターミナルウィンドウを開き、次のコマンドを実行します。
注: 以下のコマンド例では、MIMXRT1170-EVKBボード を使用しています。他のNXP ボードの詳細については、「ボード固有の情報」の下にあるリンクを参照してください。
$REDLINK --server :50032 --mi -2 -vc -p MIMXRT1176xxxxx --ConnectScript RT1170_connect_M7_wake_M4.scp --resetscript RT1170_reset.scp -x .\platform\boards\nxp\mimxrt1170-evkb-freertos\cmake%REDLINK% --server :50032 --mi -2 -vc -p MIMXRT1176xxxxx --ConnectScript RT1170_connect_M7_wake_M4.scp --resetscript RT1170_reset.scp -x .\platform\boards\nxp\mimxrt1170-evkb-freertos\cmakeGDBサーバーは現在、
50032ポートでTCP接続を待機しています。注:
redlink_serverが使用する TCP ポートを変更するには 、--server :50032の値を別の値に変更してください。 - 別のコンソールで `
arm-none-eabi-gdb` を実行してください。/path/to/bin/arm-none-eabi-gdb <PATH_TO>/your_app.elfC:\path\to\bin\arm-none-eabi-gdb.exe <PATH_TO>\your_app.elf arm-none-eabi-gdbコンソールの「gdbserver」を使用して、以下のコマンドでターゲットに接続します。(gdb) target remote :50032- あるいは、
arm-none-eabi-gdbコンソールから次のコマンドを使用して、ターゲットデバイスにフラッシュを実行します:(gdb) load
ボード固有の情報
BareMetal またはFreeRTOS 上で動作する、現在サポートされているNXP ターゲットを以下に示します。Qt Quick Ultralite でサポートされているすべてのターゲットの詳細については、「サポートされているターゲットボードおよび開発ホスト」を参照してください。
Tier 1: リファレンス・ターゲット
| ハードウェアボード | MCU | コンパイラ | オペレーティングシステム |
|---|---|---|---|
| MIMXRT1050-EVKB | MIMXRT1052DVL6B | GNU Arm GCC 12.3.rel1、IAR Build Tools for Arm V9.40 | BareMetal、 FreeRTOS |
| MIMXRT1064-EVK | MIMXRT1064DVL6A | GNU Arm GCC 12.3.rel1、IAR Build Tools for Arm V9.40 | FreeRTOS |
| MIMXRT1170-EVKB | MIMXRT1176DVMAA | GNU Arm GCC 12.3.rel1、IAR Build Tools for Arm V9.40 | FreeRTOS |
Tier 2: 検証済みターゲット
| ハードウェアボード | MCU / MPU | コンパイラ | オペレーティングシステム |
|---|---|---|---|
| MIMXRT1060-EVKB | MIMXRT1060DVL6B MCU | GNU Arm GCC 12.3.rel1、IAR Build Tools for Arm V9.40 | BareMetal |
リソースキャッシュポリシー
デフォルトでは、アプリケーションのリソースデータは起動時に SDRAM にコピーされます。これらのリソースをフラッシュメモリに保持し、起動時に RAM に読み込まないようにするには、qmlproject ファイルに次の QmlProject オプションを追加してください:
MCU.Config {
resourceCachePolicy: "NoCaching"
}あるいは、次のように個々のイメージに対してのみ有効にすることもできます:
ImageFiles {
files: [
"big/button.png"
]
MCU.resourceCachePolicy: "NoCaching"
}特定の Qt ライセンスの下で利用可能です。
詳細はこちらをご覧ください。