C
NXP IMXRT1064-EVKでZephyr 。
対応バージョン
Qt Quick Ultralite forZephyr はZephyr 4.1.0 でテストされています。これはNXP IMXRT1064-EVK で公式にサポートされているバージョンです。
前提条件
- Qt Quick Ultralite 2.12.1
- 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.1
export ZEPHYR_DIR=/path/to/zephyrprojectset QUL_ROOT=C:\Qt\QtMCUs\2.12.1
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/mimxrt1064-evk-zephyr/cmake/BoardDefaults_16bpp.qmlprojectconfig \
--toolchain GNU \
--platform mimxrt1064-evk-zephyr \
--outdir /path/to/project_output_dir \
--project-type zephyr \
--platform-metadata $QUL_ROOT/platform/boards/nxp/mimxrt1064-evk-zephyr/mimxrt1064-evk-zephyr_16bpp_Linux_armgcc-metadata.json%QUL_ROOT%\bin\qmlprojectexporter ^
C:\path\to\your\project.qmlproject ^
--boarddefaults=%QUL_ROOT%\platform\boards\nxp\mimxrt1064-evk-zephyr\cmake\BoardDefaults_16bpp.qmlprojectconfig ^
--toolchain GNU ^
--platform mimxrt1064-evk-zephyr ^
--outdir C:\path\to\project_output_dir ^
--project-type zephyr ^
--platform-metadata %QUL_ROOT%\platform\boards\nxp\mimxrt1064-evk-zephyr\mimxrt1064-evk-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,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 documentation、QmlProject manual、Generate projects forZephyrを参照してください。
Zephyr® アプリケーションの構築
Python 仮想環境を有効にして、west コマンドを利用できるようにします:
source $ZEPHYR_DIR/.venv/bin/activate%ZEPHYR_DIR%\.venv\Scripts\activate.batwest でフラッシュを有効にするために、PATH 環境変数でフラッシュツールを利用できるようにする:
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 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_serverset 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.elfcd %ZEPHYR_DIR%\zephyr\build
$GNUARMEMB_TOOLCHAIN_PATH\bin\arm-zephyr-eabi-gdb -tui -ex "target remote localhost:2331" zephyr\zephyr.elf