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 ではサポートしていません。詳細については、色深度を参照してください。
対応ディスプレイ
リファレンス・ポートは、RK055HDMIPI4M とRK055HDMIPI4MA0 の2つのディスプレイをサポートしています。RK055HDMIPI4MA0 のディスプレイの方が新しく、現在NXP で販売されていますが、RK055HDMIPI4M は現在販売されていません。これらのディスプレイの仕様はほぼ同じですが、TFT ドライバなど一部の重要なコンポーネントは異なるため、独自の初期化値と関数コールが必要です。
ビルド済みライブラリとバイナリは、デフォルトでRK055HDMIPI4MA0 が有効になっています。古いディスプレイモデルをお持ちで、それを使用したい場合は、Qt Quick Ultraliteインストールディレクトリのplatform/boards/nxp/mimxrt1170-evkb-freertos/platform_config.h.in のUSE_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.width0 < y + layer.height < display.height
注: レイヤーのサイズが少なくとも一方向の表示サイズを超える場合、それは初期化されず表示されません。この場合、レンダリングリソースの消費を避けるため、フレームバッファ用のメモリは割り当てられません。
また、このプラットフォームのハードウェアレイヤーサポートには、以下の制限があります:
- レイヤーの
sizeとzの順序は初期化後は一定で、実行時に変更することはできません。 - 要求された
zの順序がすでに使用されている場合、次に使用可能な高い値が使用されます。Qt for MCUs は、高い値が使用可能でない場合、0から始まる次に使用可能な値を検索します。 - 最大8つのレイヤーを作成できる。
- レイヤーのグローバル
opacityは現在サポートされていません。レイヤーの不透明度を変更するには、レイヤーのフレームバッファからアルファチャンネルを使用します。 NXP i.MX RT1170はハードウェアスプライトをサポートしていません。この制限を克服するために、Qt for MCUs は、SpriteLayer のソフトウェア実装を提供しています。これは、SpriteLayer'の子にオフセット位置を提供し、opacityとenabledのプロパティをそれらに伝搬します。SpriteLayer のwidth,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ボードには、以下のビルド済みデモとサンプルが付属しています:
- FreeRTOS
これらはdemo_images ディレクトリにあります。
デバッグメッセージの読み込み
デフォルトでは、qul_printf とQul::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パッケージに同梱されています。
DAP-Linkによるデバッグ
注: この方法は、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