組込みグラフィックス
組込みグラフィックスという用語は多くのことを意味します。
まず、組込みという用語は、人によってさまざまなことを意味します。一部の人にとって、組込みシステムは非常に信頼できる旧型の8ビット・マイクロコントローラを意味します。オペレーティング・システムがなく、事実上RAM、ROM、またはGPIOも搭載していないものです。他の人にとっては、すべてをギガバイトで搭載する最新のスマート・フォンを意味することもあります。
2つ目に、グラフィックスという用語はさまざまに解釈できます。一部の人にとっては、お気に入りのペインティング・プログラムで自分独自のピクセルを描画することを意味します。これも別の人にとっては、自分のゲーム機で実行される3D描画ソフトウェアを意味します。
TouchGFXにおいて、組込みシステムはSTM32マイクロコントローラをベースにしたシステムを意味します。さらにグラフィックスは、毎秒60フレームで実行される、ユーザ・インタフェースとのインタラクティブなアプリケーションを意味します。
4つの主要部分
このようなプラットフォームでグラフィックアプリケーションを実行するために、直接関係する4つの主要コンポーネントを検討します。 当然、組み込みシステムにはさらに多くのコンポーネントが存在する可能性がありますが、これらはグラフィックスの表示とはあまり関係がありません。
手短に言えば、TouchGFXはマイクロコントローラを使用して、Flashメモリにあるパーツを組み立てることで、RAM内に画像を作成および更新します。作成された画像は、ディスプレイへ転送されます。このプロセスが、可能かつ必要なだけ繰り返されます。
マイクロコントローラ
マイクロコントローラはこのプロセスの困難な部分をすべて担います。 Flash内の画像を読み取り、RAMに書き込みます。半透明の赤色のテキストを画像にマージするときに結果の色を計算し、これらをRAMに保存します。円のすべてのピクセルを描画してRAMに保存します。画像をRAMからディスプレイに転送します。
STM32マイクロコントローラには、LTDC、Chrom-ART、Chrom-GRCなどの固有の機能があり、これらはグラフィックスの実現に役立ちます。
Further reading
RAM
RAMには計算後の結果の画像(フレームバッファ)が保存されます。グラフィックスの更新時に、マイクロコントローラはRAMに対して読取り / 書込みを行います。さらに、結果の画像をディスプレイに転送するときに、再度読み取ります。
多くの場合、結果の画像はマイクロコントローラ内部のRAMに保存されます。結果のイメージを内部RAMに含めることが不可能な場合は、外部RAMをセットアップに追加できます。
Further reading
Flash
Flashにはすべての静的データが配置されます。画像、フォント、およびテキストです。 Flashはマイクロコントローラによって読み取られ、その内容がRAMに書き込まれたり結合されたりします。
ほとんどの場合、外部Flashがセットアップに追加されます。すべてのグラフィック・アセットを保持できるほどの容量を、内部Flashが備えていることはほとんどないからです。ただし、非常にシンプルなアプリケーションであれば、内部Flashで十分です。
理論上、Flashはメモリ・マップドなので、ピクセルをFlashから直接読み取り、RAMに書き込むことができます。一方、Flashがメモリ・マップドでない場合には、FlashのコンテンツをRAMに転送し、そこから読み取ることができます。
Further reading
ディスプレイ
ディスプレイは、画像が人の目の前に実際に表示される場所です。
RAMに保存されている計算された画像(フレームバッファ)は、マイクロコントローラによりディスプレイに一定間隔で転送されます。
