C
NXP IMXRT1060-EVKB でZephyr を使用する。
対応バージョン
Qt Quick Ultralite forZephyr はZephyr 4.1.0 でテストされています。これはNXP IMXRT1060-EVKB で公式にサポートされているバージョンです。
前提条件
- Qt Quick Ultralite 2.12.0
- 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
ビルド済みバイナリのフラッシュ
Qt for MCUs は、さまざまなデモやサンプルを示すビルド済みバイナリのセレクションを提供します。これらをフラッシュするには、フラッシュ手順に従ってください。
Zephyr 環境の準備
セットアップZephyr
Zephyr のスタートガイドに従って、開発環境をセットアップする。ガイドにあるblinkyのサンプルをビルドし、フラッシュすることができるはずです。
環境のセットアップ
アプリケーションをビルドする前に、以下の環境変数を設定してください:
アプリケーションをビルドする前に、以下の環境変数を設定してください。export QUL_ROOT=$HOME/Qt/QtMCUs/2.12.0 export ZEPHYR_DIR=/path/to/zephyrproject
set QUL_ROOT=C:\Qt\QtMCUs\2.12.0 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
注意: このエクスポートは、アプリケーションプロジェクトごとに一度だけ必要です。CMake は QML ファイルの変更を自動的に検出し、最初のエクスポート後に生成されるコードを更新します。
注意: いくつかの例では、コード内にmain() 関数がありません。これらの例をエクスポートする場合は、独自のmain() 関数を記述しない限り、--generate-entrypoint引数を使用してください。Qt Quick Ultraliteを初期化するmain() 関数の書き方については、アプリケーションでQt Quick Ultraliteを実行するを参照してください。
Qt Quick Ultraliteアプリケーションが異なるバリアント用のセレクタを使用する場合、--selector引数をqmlprojectexporter に与える必要があります。 例えば、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 documentation、QmlProject manual、Generate projects forZephyrを参照してください。
Zephyr® アプリケーションの構築
Python 仮想環境を有効にして、west コマンドを利用できるようにします:
source $ZEPHYR_DIR/.venv/bin/activate
%ZEPHYR_DIR%\.venv\Scripts\activate.bat
west で点滅を有効にするには、PATH 環境変数で点滅ツールを利用可能にする:
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
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
古いRK043FN02H-CTディスプレイ・シールドを選択するには、west build コマンドに--shield rk043fn02h_ct 引数を使用します。引数を指定しない場合、デフォルトでRK043FN66HS-CTGが使用されます。
注: デフォルトでは、west は J-Link が使用されることを想定しています。使用される点滅ツールは、--runner linkserver を指定することで、NXP MCUXpresso LinkServer に変更できます。詳細については、Zephyr ドキュメントを参照してください。
デバッグ
Zephyr は、直接デバッグするか、デバッグ・サーバーを起動してデバッガで接続することで、west でのデバッグをサポートしています。以下の手順では、west でデバッグ・サーバーを起動する方法と、GNU Project Debugger (GDB) を使用してデバッグ・サーバーに接続する方法を示します。
デバッグ・サーバー(J-Linkgdbserver など)をPATH 環境変数で利用可能にし、west でデバッグできるようにします:
export PATH=$PATH:/path/to/debug_server
set PATH=%PATH%;C:\path\to\debug_server
デバッグサーバーを起動します:
west debugserver
注: デフォルトでは、west は J-Link gdbserver が使用されることを想定しています。使用するデバッグ・サーバーは、--runner <debug_server> を指定することで変更できます。詳細については、Zephyr ドキュメントを参照してください。
デフォルトのデバッグ・サーバーは、ポート2331をリッスンするTCPソケットを設定します:
.cd $ZEPHYR_DIR/zephyr/build $GNUARMEMB_TOOLCHAIN_PATH/bin/arm-zephyr-eabi-gdb -tui -ex "target remote localhost:2331" zephyr/zephyr.elf
cd %ZEPHYR_DIR%\zephyr\build $GNUARMEMB_TOOLCHAIN_PATH\bin\arm-zephyr-eabi-gdb -tui -ex "target remote localhost:2331" zephyr\zephyr.elf