このページでは

C

NXP (Zephyr)

概要

このトピックでは、Qt Quick UltraliteでサポートされているNXP プラットフォームを使い始めるために必要なすべての情報を提供します。

注記: これらの説明は、Zephyr® 上で実行されるNXP ターゲットを使用している場合に適用されます。BareMetal、FreeRTOS または Linux 上で実行されるNXP ターゲットを使用する方法については、 NXP (BareMetal およびFreeRTOS) および NXP (Linux) を参照してください。

互換バージョン

Qt Quick Ultralite forZephyr®は、Zephyr® 4.1.0でテストされています。これは、NXP IMXRT1060-EVKBで公式にサポートされているバージョンです。

前提条件のインストール

Zephyr® 環境を準備する前に、すべての前提条件がインストールされていることを確認してください。

NXP i.MX RT1060 EVKB

NXP i.MX RT1064 EVK

ビルド済みバイナリのフラッシュ

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 \
--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

注意: このエクスポートは、アプリケーションプロジェクトごとに一度だけ必要です。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 documentationQmlProject manualGenerate 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

ボード固有の情報

現在サポートされているZephyr 上で動作するNXP ターゲットを以下に示す。Qt Quick Ultraliteでサポートされている全ターゲットの詳細については、サポートされているターゲットボードと開発ホストを参照してください。

階層 1: 参照ターゲット

ハードウェアボードMCUコンパイラオペレーティングシステム
MIMXRT1064-EVKMIMXRT1064DVL6AGNU Arm GCC 12.3.rel1、IAR Build Tools for Arm V9.40Zephyr

階層 2: 検証済みターゲット

ハードウェアボードMCU / MPUコンパイラオペレーティング・システム
mimxrt1060-evkbmimxrt1060dvl6b mcuGNU Arm GCC 12.3.rel1、IAR Build Tools for Arm V9.40Zephyr

リソースキャッシュポリシー

デフォルトでは、アプリケーションのリソース・データは起動時に SDRAM にコピーされます。これらのリソースをフラッシュに保持し、起動時に RAM にロードしないようにするには、qmlproject ファイルに以下の QmlProject オプションを追加します:

MCU.Config {
    resourceCachePolicy: "NoCaching"
}

あるいは、このように個々のイメージに対してのみ有効にすることもできます:

ImageFiles {
    files: [
        "big/button.png"
    ]
    MCU.resourceCachePolicy: "NoCaching"
}


詳細はこちらをご覧ください。