C
NXP (Zephyr) のはじめに
概要
このトピックでは、Qt Quick Ultralite でサポートされているNXP プラットフォームを使い始めるために必要なすべての情報を提供します。
注:この手順は 、Zephyr®上で動作するNXP ターゲットを使用する場合に適用されます。BareMetal、FreeRTOS 、またはLinux上で動作するNXP ターゲットの使用開始方法については、「NXP (BareMetalおよびFreeRTOS )の使用開始」および「NXP (Linux)の使用開始」を参照してください。
互換性のあるバージョン
Qt Quick Zephyr® 向け Ultralite は、 ® 4.1.0 上でテスト済みです。これは、 IMXRT1060-EVKB に対して公式にサポートされているバージョンです。Zephyr NXP
前提条件のインストール
Zephyr® 環境を準備する前に、すべての前提条件がインストールされていることを確認してください。
NXP i.MX RT1060 EVKB
- Qt Quick Ultralite 2.12.2
- Qt Quick UltraliteNXP i.MX RT1060 EVKB プラットフォームパッケージ
- NXP i.MX RT1060 EVKB
- RK043FN66HS-CTGまたはRK043FN02H-CTディスプレイシールド
- Zephyr® RTOS 4.1.0
- Segger J-Link デバッグプローブまたはMCUXpresso IDEのいずれか
NXP i.MX RT1064 EVK
- Qt Quick Ultralite 2.12.2
- Qt Quick UltraliteNXP i.MX RT1064 EVK プラットフォームパッケージ
- NXP i.MX RT1064 EVK
- RK043FN66HS-CTGまたはRK043FN02H-CTディスプレイシールド
- Zephyr® RTOS 4.1.0
- Segger J-Link デバッグプローブまたはMCUXpresso IDEのいずれか
あらかじめビルド済みのバイナリの書き込み
Qt for MCUs では、さまざまなデモやサンプルを示す、あらかじめビルド済みのバイナリが用意されています。これらを書き込むには、書き込み手順に従ってください。
Zephyr®環境の準備
Zephyr® のセットアップ
Zephyr の「はじめに」ガイドに従ってください。これにより、開発環境がセットアップされます。ガイドに記載されているblinkyサンプルをビルドし、フラッシュできるようになります。
環境のセットアップ
アプリケーションをビルドする前に、以下の環境変数を設定してください:
export QUL_ROOT=$HOME/Qt/QtMCUs/2.12.2
export ZEPHYR_DIR=/path/to/zephyrprojectset QUL_ROOT=C:\Qt\QtMCUs\2.12.2
set ZEPHYR_DIR=C:\path\to\zephyrprojectアプリケーションの構築
Qt Quick Ultralite アプリケーションのエクスポート
qmlprojectexporter を使用してアプリケーションコードをエクスポートします:
$QUL_ROOT/bin/qmlprojectexporter \
/path/to/your/project.qmlproject \
--boarddefaults=$QUL_ROOT/platform/boards/nxp/mimxrt1060-evkb-zephyr/cmake/BoardDefaults_16bpp.qmlprojectconfig \
--toolchain GNU \
--platform mimxrt1060-evkb-zephyr \
--outdir /path/to/project_output_dir \
--project-type zephyr \
--generate-entrypoint \
--platform-metadata $QUL_ROOT/platform/boards/nxp/mimxrt1060-evkb-zephyr/mimxrt1060-evkb-zephyr_16bpp_Linux_armgcc-metadata.json%QUL_ROOT%\bin\qmlprojectexporter ^
C:\path\to\your\project.qmlproject ^
--boarddefaults=%QUL_ROOT%\platform\boards\nxp\mimxrt1060-evkb-zephyr\cmake\BoardDefaults_16bpp.qmlprojectconfig ^
--toolchain GNU ^
--platform mimxrt1060-evkb-zephyr ^
--outdir C:\path\to\project_output_dir ^
--project-type zephyr ^
--generate-entrypoint ^
--platform-metadata %QUL_ROOT%\platform\boards\nxp\mimxrt1060-evkb-zephyr\mimxrt1060-evkb-zephyr_16bpp_Windows_armgcc-metadata.json注:この エクスポートは、アプリケーションプロジェクトごとに1回だけ実行すれば十分です。CMakeは、最初のエクスポート後にQMLファイルの変更を自動的に検出し、生成されたコードを更新します。
注:一部のサンプルでは 、コード内にmain() 関数が含まれていません。これらのサンプルをエクスポートする際は、独自のmain() 関数を記述する場合を除き、--generate-entrypoint引数を使用してください。Qt Quick Ultraliteを初期化するmain() 関数の記述に関する詳細については、「アプリケーションでのQt Quick Ultraliteの実行」を参照してください。
Qt Quick Ultraliteアプリケーションが異なるバリアントに対してセレクタを使用している場合、qmlprojectexporter に対して--selector引数を指定する必要があります。たとえば、thermo デモは、以下のセレクタを使用して構成できます。
--selector normal,smallZephyr プラットフォームのデフォルト設定では、MinSizeRel 構成でビルドされたQt Quick Ultraliteライブラリがエクスポートされます。Qt Quick Ultraliteライブラリを別のビルド構成(Debug など)でビルドした場合は、qmlprojectexporter コマンドに--qul-build-typeを追加することで、エクスポートされるライブラリのビルドタイプを上書きできます:
--qul-build-type Debug--include-metadata-extra-target 引数を指定してサンプルをエクスポートする際は、--outdir がサンプルのソースディレクトリ内に含まれていないことを確認してください。
qmlprojectexporter、qmlprojects、およびZephyr によるプロジェクト生成に関する詳細については、qmlprojectexporterのドキュメント、QmlProjectマニュアル、および「 Zephyr によるプロジェクトの生成」を参照してください。
Zephyr® アプリケーションのビルド
Pythonの仮想環境を有効にして、west コマンドが利用できるようにします:
source $ZEPHYR_DIR/.venv/bin/activate%ZEPHYR_DIR%\.venv\Scripts\activate.bat`PATH ` 環境変数にフラッシュ用ツールを設定し、west によるフラッシュを有効にします:
export PATH=$PATH:/path/to/flashing_toolset PATH=%PATH%;C:\path\to\flashing_toolアプリケーションをビルドしてフラッシュします:
export ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb
export GNUARMEMB_TOOLCHAIN_PATH=$HOME/Qt/Tools/QtMCUs/arm_gcc_12_3_1
cd $ZEPHYR_DIR/zephyr
west build /path/to/project_output_dir
west flashset ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb
set GNUARMEMB_TOOLCHAIN_PATH=C:\Qt\Tools\QtMCUs\arm_gcc_12_3_1
cd %ZEPHYR_DIR%\zephyr
west build C:\path\to\project_output_dir
west flashwest build コマンドの引数として--shield rk043fn02h_ct を指定すると、旧型のRK043FN02H-CTディスプレイシールドが選択されます。引数が指定されない場合は、デフォルトでRK043FN66HS-CTGが使用されます。
注:デフォルトでは 、west では J-Link の使用が想定されています。--runner linkserver を指定することで、使用するフラッシュツールをNXP MCUXpresso LinkServer に変更できます。詳細については、Zephyr のドキュメントを参照してください。
デバッグ
Zephyr west によるデバッグをサポートしており、直接デバッグを行うか、デバッグサーバーを起動してデバッガから接続するかのいずれかの方法が可能です。以下の手順では、 を使用してデバッグサーバーを実行する方法と、GNU Project Debugger (GDB) を使用してそれに接続する方法を説明します。west
west を使用したデバッグを有効にするには、PATH 環境変数にデバッグサーバー(J-Linkgdbserver など)を指定してください:
export PATH=$PATH:/path/to/debug_serverset PATH=%PATH%;C:\path\to\debug_serverデバッグサーバーを起動します:
west debugserver注:デフォルトでは 、west はJ-Linkのgdbserverが使用されることを想定しています。使用するデバッグサーバーは、--runner <debug_server> を指定することで変更できます。詳細については、Zephyr のドキュメントを参照してください。
デフォルトのデバッグサーバーは、ポート 2331 をリッスンする TCP ソケットを設定します。別のターミナルで GDB を使用して、このソケットに接続できます:
cd $ZEPHYR_DIR/zephyr/build
$GNUARMEMB_TOOLCHAIN_PATH/bin/arm-zephyr-eabi-gdb -tui -ex "target remote localhost:2331" zephyr/zephyr.elfcd %ZEPHYR_DIR%\zephyr\build
$GNUARMEMB_TOOLCHAIN_PATH\bin\arm-zephyr-eabi-gdb -tui -ex "target remote localhost:2331" zephyr\zephyr.elfボード固有の情報
現在、Zephyr 上で動作するNXP のサポート対象ターゲットは以下の通りです。Qt Quick Ultraliteがサポートするすべてのターゲットに関する詳細については、「サポート対象のターゲットボードおよび開発用ホスト」を参照してください。
Tier 1: リファレンス・ターゲット
| ハードウェアボード | MCU | コンパイラ | オペレーティングシステム |
|---|---|---|---|
| MIMXRT1064-EVK | MIMXRT1064DVL6A | GNU Arm GCC 12.3.rel1 | Zephyr |
Tier 2: 検証済みターゲット
| ハードウェアボード | MCU / MPU | コンパイラ | オペレーティングシステム |
|---|---|---|---|
| MIMXRT1060-EVKB | MIMXRT1060DVL6B MCU | GNU Arm GCC 12.3.rel1 | Zephyr |
リソースキャッシュポリシー
デフォルトでは、アプリケーションのリソースデータは起動時に SDRAM にコピーされます。これらのリソースをフラッシュメモリに保持し、起動時に RAM に読み込まないようにするには、qmlproject ファイルに次の QmlProject オプションを追加してください:
MCU.Config {
resourceCachePolicy: "NoCaching"
}あるいは、次のように個々のイメージに対してのみ有効にすることもできます:
ImageFiles {
files: [
"big/button.png"
]
MCU.resourceCachePolicy: "NoCaching"
}特定の Qt ライセンスの下で利用可能です。
詳細はこちらをご覧ください。