メイン・コンテンツまでスキップ

ディスプレイ

Displayグループには、ディスプレイに関連する設定(インタフェース、寸法、バッファリング戦略など)が含まれます。

TouchGFX Generatorの[Display]設定

インタフェースと寸法

現在、STM32マイクロコントローラでは、次に示すような複数のディスプレイ・インタフェースを使用できます。

  • パラレルRGB(LTDC)
  • MIPI DSI
  • FMC
  • SPI

ディスプレイがLTDCまたはFMCのインタフェースで接続されたマイクロコントローラの場合、TouchGFX Generatorは、接続されたディスプレイにフレームバッファを転送するためのコードを生成できます。 DSIおよびSPIインタフェースのドライバは、開発者自身で実装する必要があります。

Further reading
さまざまなディスプレイ・インタフェースのコードの具体例については、「シナリオ」を参照してください。

フレームバッファのピクセル・フォーマット

TouchGFX Generatorによって、以下のフレームバッファのピクセル・フォーマットが現在サポートされています。 Customディスプレイ・インタフェースを使用する場合はすべてのオプションを使用できます。それ以外の場合、オプションはディスプレイ・コントローラの設定に制限されます(たとえば、LTDCフレームバッファの形式を「RGB565」に設定すると、TouchGFX Generatorのオプションは「RGB565」に制限されます)。

  1. BW(1bpp)
  2. Grey2(2bpp)
  3. Grey4(4bpp)
  4. ABRG2222(8bpp)
  5. ARGB2222(8bpp)
  6. BGRA2222(8bpp)
  7. RGBA2222(8bpp)
  8. RGB565(16bpp)
  9. RGB888(24bpp)
  10. ARGB8888(32bpp)
  11. XRGB8888(32bpp)
Note
一部のピクセル・フォーマットでは、ChromART(DMA2D)のサポートがないか、一部のみになります。

Framebuffer Stride

For some display interfaces (e.g. MIPI-DSI) having a larger framebuffer stride than the actual width of the display can increase the data transfer rate to the display if the larger stride is better aligned with the data packet size. Use of a larger framebuffer stride can be configured as:

  • No - The framebuffer stride and display width are equal in size.
  • Yes - Allows the user to specify a framebuffer stride length.

バッファリング戦略とロケーション

TouchGFX Generatorを介して、次のフレームバッファ戦略を設定できます。

  • Single Buffer - アプリケーション・フレームバッファを1つだけ使用します。 パフォーマンスが制限される可能性がありますが、メモリの使用量は少なくて済みます。 [Buffer Location]設定で使用して、内部RAMに配置します。 さらに最適化するには、ディスプレイ・コントローラによって現在処理されているラインを返す関数をユーザが定義できます。 このメソッドはフレームワークによって使用され、このフレーム中にすでにディスプレイに転送済みのメモリへの更新ができるようになります。
  • Double Buffer - 2つのフレームバッファを使用します。 通常、多くのメモリを必要としますが、パフォーマンスが向上します。
  • Partial Buffer - 1つ以上のユーザ定義のメモリ領域をフレームバッファとして使用します。 この戦略は外部RAMに頼らないが、ディスプレイのフレームバッファ全体では使用可能なメモリ量を超える可能性がある場合の低コストのソリューションをターゲットにしています。

シングル・バッファとダブル・バッファの場合、ユーザは[Buffer Location]設定で次のオプションを使用して場所を設定できます。

  • By Allocation - リンカがリンカ・スクリプトに従ってフレームバッファのメモリを配置します。 デフォルトは内部RAMです。
  • By Address - ユーザが1つ(シングル)または2つ(ダブル)のフレームバッファ・アドレスを定義できます。

パーシャル・バッファ戦略では、ユーザは以下のパラメータを定義できます。

  • ブロック数(常に内部RAMに配置される)
  • ブロック・サイズ(バイト)

パーシャル・バッファ戦略に関する主要な概念を理解するには、パーシャル・フレームバッファを使用してメモリ要件を軽減する方法に関する専門の記事を参照してください。 この記事はパーシャル・フレームバッファを実現する方法を概念的に示したものなので、この記事に示すコードはTouchGFX Generatorによって生成されるコードと少し異なっています。 これらの戦略で生成されるコードの具体例については、「フレームバッファ戦略」を参照してください。

Caution
STM32F7/H7の場合、フレームバッファがライトスルーのキャッシュ・メモリ(SRAMなど)に配置されていれば、DMA2D(Generatorで設定されている場合)がアクセスする前に、生成されたコードによってDCacheに書き込まれます。 このキャッシュ・メカニズムを機能させるには、STM32CubeMXで[Cortex M7][System Core]設定にある[CPU Cache]を必ず有効化してください。
Further reading
CPUキャッシュの詳細については、「F7およびH7のキャッシュ」サブセクションを参照してください。