ディスプレイ
Displayグループには、ディスプレイに関連する設定(インタフェース、寸法、バッファリング戦略など)が含まれます。
インタフェースと寸法
現在、STM32マイクロコントローラでは、次に示すような複数のディスプレイ・インタフェースを使用できます。
- パラレルRGB(LTDC)
- MIPI DSI
- FMC
- SPI
ディスプレイがLTDCまたはFMCのインタフェースで接続されたマイクロコントローラの場合、TouchGFX Generatorは、接続されたディスプレイにフレームバッファを転送するためのコードを生成できます。 DSIおよびSPIインタフェースのドライバは、開発者自身で実装する必要があります。
Further reading
フレームバッファのピクセル・フォーマット
TouchGFX Generatorによって、以下のフレームバッファのピクセル・フォーマットが現在サポートされています。 Customディスプレイ・インタフェースを使用する場合はすべてのオプションを使用できます。それ以外の場合、オプションはディスプレイ・コントローラの設定に制限されます(たとえば、LTDCフレームバッファの形式を「RGB565」に設定すると、TouchGFX Generatorのオプションは「RGB565」に制限されます)。
- BW(1bpp)
- Grey2(2bpp)
- Grey4(4bpp)
- ABRG2222(8bpp)
- ARGB2222(8bpp)
- BGRA2222(8bpp)
- RGBA2222(8bpp)
- RGB565(16bpp)
- RGB888(24bpp)
- ARGB8888(32bpp)
- XRGB8888(32bpp)
Note
フレームバッファのストライド
ディスプレイの実際の幅よりもフレームバッファのストライドが大きい一部のディスプレイ・インタフェース(MIPI-DSIなど)では、より大きなストライドがデータ・パケット・サイズとよりよく整合している場合に、ディスプレイへのデータ転送速度が向上する可能性があります。 より大きなフレームバッファのストライドを使用する場合、以下のような設定が可能です。
- No - フレームバッファのストライドとディスプレイの幅が同じサイズです。
- Yes - ユーザがフレームバッファのストライド長を指定できます。
バッファリング戦略とロケーション
TouchGFX Generatorを介して、次のフレームバッファ戦略を設定できます。
- Single Buffer - アプリケーション・フレームバッファを1つだけ使用します。 パフォーマンスが制限される可能性がありますが、メモリの使用量は少なくて済みます。 [Buffer Location]設定で使用して、内部RAMに配置します。 さらに最適化するには、ディスプレイ・コントローラによって現在処理されているラインを返す関数をユーザが定義できます。 このメソッドはフレームワークによって使用され、このフレーム中にすでにディスプレイに転送済みのメモリへの更新ができるようになります。
- Double Buffer - 2つのフレームバッファを使用します。 通常、多くのメモリを必要としますが、パフォーマンスが向上します。
- Partial Buffer - GRAM display - Use one or more user defined chunks of memory as the frame buffer, which are transferred to the GRAM on the display. この戦略は外部RAMに頼らないが、ディスプレイのフレームバッファ全体では使用可能なメモリ量を超える可能性がある場合の低コストのソリューションをターゲットにしています。
- Partial Buffer - LTDC driven display - Use a single block of memory that a power-of-2 fraction of the display size, e.g., 1/2, 1/4 or 1/8. This strategy is targeted platforms that do not have external RAM and/or large display resolutions. A LTDC driven display and GFXMMU is required for this strategy.
In the case of Single Buffer, Double Buffer, and Partial Buffer - LTDC driven display users are allowed to configure their location through the "Buffer Location" configuration which offers the following options:
- By Allocation - リンカがリンカ・スクリプトに従ってフレームバッファのメモリを配置します。 デフォルトは内部RAMです。
- By Address - ユーザが1つ(シングル)または2つ(ダブル)のフレームバッファ・アドレスを定義できます。
The Partial Buffer - GRAM display strategy allows the user to define the following parameters:
- ブロック数(常に内部RAMに配置される)
- ブロック・サイズ(バイト)
The Partial Buffer - LTDC driven display strategy allows the user to define the following parameter:
- Number of Partial Blocks (default is 4, meaning a framebuffer block 1/4 the size of the display)
To understand some core concepts regarding framebuffer strategies, refer to the Framebuffer Strategies article.
Several scenarios describe how to get started with different display interfaces and framebuffer strategies with concrete examples: