C
NXP のIMXRT1060-EVKBでZephyr を使用する
対応バージョン
Qt Quick Ultralite Zephyr は、 のIMXRT1060-EVKB上で動作する 4.1.0および 4.4.0に対応しています。タッチ入力ドライバは、使用中の のバージョンに基づいて自動的に選択されます。詳細については、「NXP Zephyr Zephyr Zephyr タッチ入力ドライバの選択」を参照してください。
前提条件
- Qt Quick Ultralite 2.12.3
- Qt Quick UltraliteNXP i.MX RT1060 EVKB プラットフォームパッケージ
- NXP i.MX RT1060 EVKB
- RK043FN66HS-CTGまたはRK043FN02H-CTディスプレイシールド
- Zephyr RTOS 4.1.0またはZephyr RTOS 4.4.0
- Segger J-Link デバッグプローブまたはMCUXpresso IDEのいずれか
あらかじめビルド済みのバイナリの書き込み
Qt for MCUs では、さまざまなデモやサンプルを示す、あらかじめビルド済みのバイナリがいくつか用意されています。これらを書き込むには、書き込み手順に従ってください。
Zephyr 環境の準備
セットアップZephyr
Zephyr の「はじめに」ガイドに従ってください。これにより、開発環境がセットアップされます。ガイドに記載されている blinky サンプルをビルドしてフラッシュできるようになります。
環境のセットアップ
アプリケーションをビルドする前に、以下の環境変数を設定してください:
export QUL_ROOT=$HOME/Qt/QtMCUs/2.12.3 export ZEPHYR_DIR=/path/to/zephyrproject
set QUL_ROOT=C:\Qt\QtMCUs\2.12.3 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 \ --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 ^ --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,small
Zephyr プラットフォームのデフォルト設定では、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_tool
set 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 flash --runner linkserver
set 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 flash --runner linkserver
west build コマンドの引数として--shield rk043fn02h_ct を指定すると、旧型のRK043FN02H-CTディスプレイシールドが選択されます。引数が指定されない場合は、デフォルトでRK043FN66HS-CTGが使用されます。
タッチ入力ドライバの選択
このプラットフォームは、2つのZephyr タッチ入力バックエンドをサポートしており、これらはビルド時にQUL_ZEPHYR_USE_KSCAN ビルドオプションを通じて選択されます:
ON- 従来のZephyr KScanドライバを使用します。これがデフォルトであり、Zephyr 4.1.0で利用可能です。OFF-Zephyr Input API を使用します。
KScanがデフォルトです。Zephyr 4.2.0ではKScanドライバが削除されたため、Zephyr 4.2.0以降でビルドする場合は、QUL_ZEPHYR_USE_KSCAN をOFF に設定してください:
west build /path/to/project_output_dir -- -DQUL_ZEPHYR_USE_KSCAN=OFF
デバッグ
Zephyr west を使用したデバッグをサポートしており、直接デバッグを行うか、デバッグサーバーを起動してデバッガーから接続するかのいずれかの方法が可能です。以下の手順では、 を使用してデバッグサーバーを実行する方法と、GNU Project Debugger (GDB) を使用してそれに接続する方法を説明します。west
west でのデバッグを有効にするには、PATH 環境変数にデバッグサーバー(LinkServer など)を指定してください:
export PATH=$PATH:/path/to/debug_server
set PATH=%PATH%;C:\path\to\debug_server
デバッグサーバーを起動します:
west debugserver --runner linkserver
LinkServerはポート3333でリスニングするTCPソケットを設定します。別のターミナルでGDBを使用してこれに接続できます:
cd $ZEPHYR_DIR/zephyr/build $GNUARMEMB_TOOLCHAIN_PATH/bin/arm-none-eabi-gdb -tui -ex "target remote localhost:3333" zephyr/zephyr.elf
cd %ZEPHYR_DIR%\zephyr\build %GNUARMEMB_TOOLCHAIN_PATH%\bin\arm-none-eabi-gdb -tui -ex "target remote localhost:3333" zephyr\zephyr.elf
特定のQtライセンスの下で利用可能です。
詳細はこちらをご覧ください。