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

追加機能

プロジェクト設定で何らかの追加機能が使用可能になると、[Additional Features]グループが表示されます。

TouchGFX Generatorの[Additional Features]設定

外部データ・リーダ

RGB565フレームバッファ・ピクセル・フォーマットでは、TouchGFXはデータ・リーダのインタフェースをサポートしています。これにより開発者は、メモリ内で追加バッファが必要となるキャッシュを行うのではなく、メモリマップされないシリアルFlashから直接データを読み出せます。 データ・リーダを実装して、メモリマップされないFlashチップからアプリケーション・アセットを取得する方法の例については、SerialFlashの記事を参照してください。

通常、データ・リーダのオプションは、追加バッファ用に十分なメモリを備えていない低コストのソリューション(STM32G0など)で使用されます。

開発者は以下の設定を行うことができます。

  • External Data Reader: この機能を有効化または無効化します。 有効化すると、TouchGFXは生成済みのインタフェースを介してアセットのデータを直接取得します。 無効化した場合は、開発者がメモリ内のバッファに画像をキャッシュする必要があります。
  • External Data Reader: Memory base address: 外部データ・リーダ・メモリの開始アドレスを指定します。
  • External Data Reader: Memory size: 外部データ・リーダ・メモリのサイズを指定します。
  • External Data Reader: Line Buffer Size: 画像またはテキストをフレームバッファにブレンドするための2つのバッファを作成します。 デフォルト値は、一画面の幅 x 4バイトで、ARGB8888ピクセル・フォーマットでフル・サイズの画像をサポートします。
  • External Data Reader: Minimum DMA transfer size: DMA転送を開始するための最小限必要なバイト数を設定します。 これより少ないバイト数が要求された場合、DMAは使用されません。

[External Data Reader]を有効にしてコードを生成すると、TouchGFX Generatorにより以下の追加ファイルが作成され、メモリマップされないFlashからアセットを直接取得できるようになります。

  • TouchGFX/target/generated/TouchGFXGeneratedDataReader.cpp
  • TouchGFX/target/generated/TouchGFXGeneratedDataReader.hpp
  • TouchGFX/target/TouchGFXDataReader.cpp
  • TouchGFX/target/TouchGFXDataReader.hpp

通常通り、TouchGFX Generatorによって生成されたALアーキテクチャに対して、TouchGFXGeneratedDataReaderは読出し専用であり、ユーザによる変更はTouchGFXDataReaderクラス内で行う必要があります。 TouchGFXGeneratedDataReaderのタイプはtouchgfx::FlashDataReaderです。

以下のファイルが変更され、DataReaderを使用するようにTouchGFX HALが設定されます。

  • TouchGFX/target/generated/TouchGFXConfiguration.cpp
  • TouchGFX/target/generated/TouchGFXGeneratedHAL.cpp
  • TouchGFX/target/generated/TouchGFXGeneratedHAL.hpp
Note
データ・リーダの[Additional Feature]は、DMA2DとLTDCが無効になっている場合にのみ使用できます。

ベクタ・レンダリング

TouchGFX Generatorでベクタ・レンダリングを設定するには、フレームバッファのピクセル・フォーマットがRGB565またはRGB888でなければなりません。 ベクタ・レンダリング機能に関して、開発者には次の2つのオプションがあります。

  • Enabled - アプリケーションでのベクタ・レンダリングのサポートを有効にします。 TouchGFX DesignerでSVGImageウィジェットを使用する場合に必要です。
  • Disabled - アプリケーションでのベクタ・レンダリングのサポートを無効にします。
Caution
アプリケーションでTouchGFX DesignerのSVGImageウィジェットを使用する場合は、TouchGFX Generatorでベクタ・レンダリングが有効に設定されていることを確認します。 そうでない場合、コンパイル時に"no definition for touchgfx::VectorRenderer::getInstance()"エラーが表示されます。
Tip
お使いのデバイスでGPU2D(NeoChrom)が使用可能な場合(STM32U599など)は、これを有効化してベクタ・レンダリングのパフォーマンスを最適化することができます。
Further reading
TouchGFXでのSVGのレンダリング方法の詳細については、SVGの記事を参照してください。

8bit LTDCカラー・ルックアップ・テーブル

フレームバッファをL8フォーマットで読み出すようにLTDCが設定されており、TouchGFXがABRG2222ARGB222BGRA2222、またはRGBA2222のいずれかでレンダリングを行う場合、TouchGFX Generatorは、TouchGFXHAL::initialize()の実行時にLTDCにロードされるCLUTを提供します。 LTDCおよびCLUTの使用方法の詳細については、STM32マイクロコントローラのリファレンスマニュアルを参照してください。