C
NXP (ベアメタルおよび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.0 - 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.0 - MIMXRT1170-EVKB-FREERTOS 32BPP.
- Configure Project を選択します。

プロジェクトが設定されたら、Run を選択するか、キーボードのCtrl+rを押してバイナリをビルドし、ターゲットにフラッシュします。
コマンド・プロンプトを使用したアプリケーションのビルド
ベアメタルとFreeRTOS
以下の例は、MIMXRT1170-EVKB 用のminimal サンプルの構築方法を示しています。
QUL_ROOT およびQUL_TOOLS は、以下のコマンドラインの例では環境変数として設定されているかのように使用されます。例えば
export QUL_ROOT=$HOME/Qt/QtMCUs/2.12.0 export QUL_TOOLS=$HOME/Qt/Tools/QtMCUs
set QUL_ROOT=C:\Qt\QtMCUs\2.12.0 set QUL_TOOLS=C:\Qt\Tools\QtMCUs
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=/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
注意: monitor reset gdbコマンドでデバイスがリセットされない場合は、loadコマンドを使用してください。JLinkスクリプトファイルはSDKパッケージに同梱されています。
DAP-Linkによるデバッグ
注: この方法は、MCUXpresso IDE v11.8.0が必要です。
便宜上、MCUXpresso IDEの一部であるRedlinkツールを指す環境変数を設定することができます。
ここで、は環境変数ですexport REDLINK=$MCUXPRESSO_IDE_PATH/ide/LinkServer/binaries/crt_emu_cm_redlink
set 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に接続します。ターミナルウィンドウを開き、以下のコマンドを実行します。GDBサーバーは、現在リッスン中です。
注: 以下のコマンド例では、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\cmake
GDBサーバーは現在、ポート
50032でTCP接続をリッスンしています。注:
redlink_serverが使用する TCP ポートを変更するには、--server :50032を別の値に変更してください。 arm-none-eabi-gdbを別のコンソールで実行する ./path/to/bin/arm-none-eabi-gdb <PATH_TO>/your_app.elf
C:\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 でサポートされているすべてのターゲットに関する詳細は、サポートされているターゲットボードと開発ホストを参照してください。
階層 1: 参照ターゲット
| ハードウェアボード | MCU | コンパイラ | オペレーティング・システム |
|---|---|---|---|
| mimxrt1050-evkb | mimxrt1052dvl6b | GNU Arm GCC 12.3.rel1、IAR Build Tools for Arm V9.40 | ベアメタル FreeRTOS |
| MIMXRT1064-EVK | MIMXRT1064DVL6A | GNU Arm GCC 12.3.rel1、IAR Arm V9.40用ビルドツール | FreeRTOS |
| mimxrt1170-evkb | ミムザート1176DVMAA | GNU Arm GCC 12.3.rel1、IAR ビルドツール (Arm V9.40) | FreeRTOS |
階層 2: 検証済みターゲット
| ハードウェアボード | MCU / MPU | コンパイラ | オペレーティング・システム |
|---|---|---|---|
| mimxrt1060-evkb | mimxrt1060dvl6b mcu | GNU Arm GCC 12.3.rel1、IAR Build Tools for Arm V9.40 | ベアメタル |
リソースキャッシュポリシー
デフォルトでは、アプリケーションのリソース・データは起動時に SDRAM にコピーされます。これらのリソースをフラッシュに保持し、起動時に RAM にロードしないようにするには、qmlproject ファイルに以下の QmlProject オプションを追加します:
MCU.Config {
resourceCachePolicy: "NoCaching"
}あるいは、このように個々のイメージに対してのみ有効にすることもできます:
ImageFiles {
files: [
"big/button.png"
]
MCU.resourceCachePolicy: "NoCaching"
}