追加機能
プロジェクト設定で何らかの追加機能が使用可能になると、[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
ベクタ・レンダリング
TouchGFX Generatorでベクタ・レンダリングを設定するには、フレームバッファのピクセル・フォーマットがRGB565またはRGB888でなければなりません。 ベクタ・レンダリング機能に関して、開発者には次の2つのオプションがあります。
- Enabled - アプリケーションでのベクタ・レンダリングのサポートを有効にします。 TouchGFX DesignerでSVGImageウィジェットを使用する場合に必要です。
- Disabled - アプリケーションでのベクタ・レンダリングのサポートを無効にします。
Caution
Tip
Further reading
8bit LTDCカラー・ルックアップ・テーブル
フレームバッファをL8フォーマットで読み出すようにLTDCが設定されており、TouchGFXがABRG2222、 ARGB222、BGRA2222、またはRGBA2222のいずれかでレンダリングを行う場合、TouchGFX Generatorは、TouchGFXHAL::initialize()
の実行時にLTDCにロードされるCLUTを提供します。 LTDCおよびCLUTの使用方法の詳細については、STM32マイクロコントローラのリファレンスマニュアルを参照してください。