このページでは

C

NXP i.MX RT1170(MIMXRT1170-EVKB)評価キット

このトピックでは、NXP の i.MX RT1170 に関するボード固有の情報を提供します。このトピックでは、i.MX RT1170のボード固有の情報について説明します。

ボードの特徴

  • 1GHzのARM Cortex-M7コアと400MhzのCortex-M4コアを搭載したMIMXRT1176DVMAA MCU
  • 5.5インチ720x1280 TFT LCDタッチ・ディスプレイ
  • 2 MBの内部SRAM(Cortex-M7用512 KBのTCMおよびCortex-M4用256 KBのTCM付き
  • 16 MBハイパーフラッシュ
  • 512 Mビット外部SDRAM
  • 2 x Gb ENET(AVBおよびTSN付き

対応色深度

このボードのリファレンス・ポートは32bppの色深度をサポートしています。このボードはItemLayer API で 16bpp と 24bpp もサポートしていますが、QUL_COLOR_DEPTH ではサポートしていません。詳細については、色深度を参照してください。

対応ディスプレイ

リファレンス・ポートは、RK055HDMIPI4MRK055HDMIPI4MA0 の2つのディスプレイをサポートしています。RK055HDMIPI4MA0 のディスプレイの方が新しく、現在NXP で販売されていますが、RK055HDMIPI4M は現在販売されていません。これらのディスプレイの仕様はほぼ同じですが、TFT ドライバなど一部の重要なコンポーネントは異なるため、独自の初期化値と関数コールが必要です。

ビルド済みライブラリとバイナリは、デフォルトでRK055HDMIPI4MA0 が有効になっています。古いディスプレイモデルをお持ちで、それを使用したい場合は、Qt Quick Ultraliteインストールディレクトリのplatform/boards/nxp/mimxrt1170-evkb-freertos/platform_config.h.inUSE_MIPI_PANEL 定義をMIPI_PANEL_RK055AHD091 に変更し、Qt Quick Ultralite (Platform) ライブラリを再コンパイルする必要があります。新しいディスプレイモデルのサポートを復元するには、USE_MIPI_PANEL の定義をMIPI_PANEL_RK055MHD091 に戻し、ライブラリを再コンパイルしてください。

カスタムレイヤー要件

ウルトラライト NXP i.MX RT1170 Evaluation Kitはグラフィカル・ハードウェア・レイヤーをサポートしています。Qt for MCUs はこのボードのハードウェア・レイヤーをサポートしていますが、望ましい結果を得るためには、以下の要件が満たされていることを確認してください。

  • レイヤーはディスプレイの境界を越えてはならない。無効な位置が要求された場合、可能な限り近い位置が計算され、代わりに使用されます。Qt for MCUs は、レイヤーがディスプレイ境界内にあることを保証するために、以下の式を使用します。
    • 0 < x + layer.width < display.width
    • 0 < y + layer.height < display.height

    注: レイヤーのサイズが少なくとも一方向の表示サイズを超える場合、それは初期化されず表示されません。この場合、レンダリングリソースの消費を避けるため、フレームバッファ用のメモリは割り当てられません。

また、このプラットフォームのハードウェアレイヤーサポートには、以下の制限があります:

  • レイヤーのsizez の順序は初期化後は一定で、実行時に変更することはできません。
  • 要求されたz の順序がすでに使用されている場合、次に使用可能な高い値が使用されます。Qt for MCUs は、高い値が使用可能でない場合、0から始まる次に使用可能な値を検索します。
  • 最大8つのレイヤーを作成できる。
  • レイヤーのグローバルopacity は現在サポートされていません。レイヤーの不透明度を変更するには、レイヤーのフレームバッファからアルファチャンネルを使用します。
  • NXP i.MX RT1170はハードウェアスプライトをサポートしていません。この制限を克服するために、Qt for MCUs は、SpriteLayer のソフトウェア実装を提供しています。これは、SpriteLayer'の子にオフセット位置を提供し、opacityenabled のプロパティをそれらに伝搬します。SpriteLayerwidth,height,z プロパティは無視される。

回転画像の最適化

Vivante Imaging Engine のキャッシュ使用量を最適化するには、ImageFiles.MCU.resourceOptimizeForRotationプロパティを使用して、回転画像のタイル形式を有効にします。回転イメージにタイル形式を使用すると、単一のテクスチャのレンダリング時間を大幅に短縮できます。

フォーマット変換は、リソースに属するすべてのテクスチャに対して実行時に行われます。変換されたテクスチャは、プリプロセスキャッシュというセクションのSDRAMに保存されます。

キャッシュの最小サイズは、回転用に最適化された最大の画像のサイズです。キャッシュの最適サイズは、同時に表示されるすべての回転最適化画像を保持できるサイズです。キャッシュがいっぱいになると、最も古いアクセス時間を持つテクスチャが解放されます。

テクスチャ前処理キャッシュサイズの設定

CMakeで

キャッシュサイズはQUL_PREPROCESS_CACHE_SIZE プロパティで設定します。

cmake [...] -DQUL_PREPROCESS_CACHE_SIZE=1M

CMakeなし

キャッシュ・サイズは、グローバル・リンカー・シンボルを作成することで設定します。

GCC
--config_def __qul_preprocess_cache_size__=1M
IAR
-Xlinker --defsym=__qul_preprocess_cache_size__=1M

Monotype Spark フォントエンジンの使用

ベクトルフォントレンダリングの使用

Monotype Spark フォントエンジンを使用する場合は、実験的な機能であるQt Quick Ultralite を有効にすると、テキストのレンダリングにベクトルアウトラインを使用できます。これは、ベクターハードウェアアクセラレーションを使用してフォントを描画します。

MCU.Config.fontVectorOutlinesDrawingQmlProject オプションを使用して、ベクトル・アウトラインを有効にします。Monotype Spark フォントエンジンの使用方法の詳細については、「テキストレンダリングとフォント」を参照してください。

注: このプラットフォームでは、ベクトルフォントのレンダリングをサポートするためにテキストキャッシュが必要です。デフォルトではQUL_DIR/platform/boards/nxp/mimxrt1170-evkb-freertos/cmake/coreLibrary.cmake

パフォーマンスの考慮事項

最高のパフォーマンスを得るには、MCU.Config.fontCacheSizeを設定することをお勧めします。

ビルド済みのデモと例

のパッケージには NXP i.MX RT1170 Evaluation Kitボードには、以下のビルド済みデモとサンプルが付属しています:

これらはdemo_images ディレクトリにあります。

デバッグメッセージの読み込み

デフォルトでは、qul_printfQul::PlatformInterface::log 呼び出しの出力は、USB経由でホスト・マシンに公開されている仮想シリアル・ポートにリダイレクトされる。

JTagによるデバッグ

MIMXRT1170-EVKB上のアプリケーションコードをデバッグするには、ハードウェアデバッガをボードのJTagポートに接続し、J-Linkソフトウェアをここからインストールする必要があります。

J5-J8ピン(JTagソケットの下)は無効にする必要があります。

警告 J5-J8ピンを無効にすると、DAP-Link経由での点滅ができなくなります。DAP-Link を再度使用する前に、これらのピンを再度有効にする必要があります。

  • gdb サーバーを起動します。
    JLinkGDBServer -endian little -noir -speed auto -port 2331 -vd -device MIMXRT1176xxxA_M7 -if SWD -halt -reportuseraction -JLinkScriptFile evkbmimxrt1170_connect_cm4_cm7side.jlinkscript
  • 別のコンソールでarm-none-eabi-gdb
    c:\path\to\bin\arm-none-eabi-gdb.exe path\to\compiled.elf -ex "target remote localhost:2331"
    (gdb) monitor reset halt
    (gdb) continue

    注意: monitor reset gdbコマンドでデバイスがリセットされない場合は、loadコマンドを使用してください。JLinkスクリプトファイルはSDKパッケージに同梱されています。

注: この方法は、MCUXpresso IDE v11.8.0が必要です。

便宜上、MCUXpresso IDEの一部であるRedlinkツールを指す環境変数を設定することができます。

ここで、は環境変数です
export REDLINK=$MCUXPRESSO_IDE_PATH/ide/LinkServer/binaries/crt_emu_cm_redlink
set REDLINK=%MCUXPRESSO_IDE_PATH%\ide\LinkServer\binaries\crt_emu_cm_redlink

ここで、MCUXPRESSO_IDE_PATH はMCUXpresso IDEのインストールディレクトリを指す環境変数です。

注: MCUXpresso IDEのバージョンが11.8またはそれ以前の場合、crt_emu_cm_redlink バイナリはIDE自体にインストールされ、<MCUXPRESSO_IDE_PATH>/ide/binaries/crt_emu_cm_redlink からアクセスできます。

  • USBケーブルをボード(J11)とホストPCに接続します。ターミナル・ウィンドウを開き、以下のコマンドを実行する:
    %REDLINK% --server :50032 --mi -2 -vc -p MIMXRT1176xxxxx --ConnectScript RT1170_connect_M7_wake_M4.scp --resetscript RT1170_reset.scp -x .\platform\boards\nxp\mimxrt1170-evkb-freertos\cmake

    GDBサーバーがポート50032 でTCP接続をリッスンしています。

    注: redlink_server が使用するTCPポートを変更するには、--server :50032 を別の値に変更してください。

  • arm-none-eabi-gdb を別のコンソールで実行する コンソールの を使ってターゲットに接続する。
    /path/to/bin/arm-none-eabi-gdb <PATH_TO>/your_app.elf
    C:\path\to\bin\arm-none-eabi-gdb.exe <PATH_TO>\your_app.elf
  • を使用して、arm-none-eabi-gdb コンソールのgdbserver 経由でターゲットに接続する。
    (gdb) target remote :50032
  • あるいは、arm-none-eabi-gdb コンソールから以下のコマンドを使用してターゲット・デバイスをフラッシュする:
    (gdb) load


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