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

組込みグラフィックス

組込みグラフィックスという用語は多くのことを意味します。

まず、組込みという用語は、人によってさまざまなことを意味します。 一部の人にとって、組込みシステムは非常に信頼できる旧型の8ビット・マイクロコントローラを意味します。オペレーティング・システムがなく、事実上RAM、ROM、またはGPIOも搭載していないものです。 他の人にとっては、すべてをギガバイトで搭載する最新のスマート・フォンを意味することもあります。

2つ目に、グラフィックスという用語はさまざまに解釈できます。 一部の人にとっては、お気に入りのペインティング・プログラムで自分独自のピクセルを描画することを意味します。 これも別の人にとっては、自分のゲーム機で実行される3D描画ソフトウェアを意味します。

TouchGFXにおいて、組込みシステムはSTM32マイクロコントローラをベースにしたシステムを意味します。 さらにグラフィックスは、毎秒60フレームで実行される、ユーザ・インタフェースとのインタラクティブなアプリケーションを意味します。

4つの主要部分

このようなプラットフォームでグラフィックアプリケーションを実行するために、直接関係する4つの主要コンポーネントを検討します。 当然、組み込みシステムにはさらに多くのコンポーネントが存在する可能性がありますが、これらはグラフィックスの表示とはあまり関係がありません。

マイクロコントローラ、RAM、Flash、ディスプレイ

手短に言えば、TouchGFXはマイクロコントローラを使用して、Flashメモリにあるパーツを組み立てることで、RAM内に画像を作成および更新します。 作成された画像は、ディスプレイへ転送されます。 このプロセスが、可能かつ必要なだけ繰り返されます。

マイクロコントローラ

マイクロコントローラはこのプロセスの困難な部分をすべて担います。 Flash内の画像を読み取り、RAMに書き込みます。 半透明の赤色のテキストを画像にマージするときに結果の色を計算し、これらをRAMに保存します。 円のすべてのピクセルを描画してRAMに保存します。 画像をRAMからディスプレイに転送します。

マイクロコントローラはCPU、内部Flash、内部RAMなどを提供します。

STM32マイクロコントローラには、LTDC、Chrom-ART、Chrom-GRCなどの固有の機能があり、これらはグラフィックスの実現に役立ちます。

RAM

RAMには計算後の結果の画像(フレームバッファ)が保存されます。 グラフィックスの更新時に、マイクロコントローラはRAMに対して読取り / 書込みを行います。 さらに、結果の画像をディスプレイに転送するときに、再度読み取ります。

多くの場合、結果の画像はマイクロコントローラ内部のRAMに保存されます。 結果のイメージを内部RAMに含めることが不可能な場合は、外部RAMをセットアップに追加できます。

Further reading

Flash

Flashにはすべての静的データが配置されます。 画像、フォント、およびテキストです。 Flashはマイクロコントローラによって読み取られ、その内容がRAMに書き込まれたり結合されたりします。

ほとんどの場合、外部Flashがセットアップに追加されます。すべてのグラフィック・アセットを保持できるほどの容量を、内部Flashが備えていることはほとんどないからです。 ただし、非常にシンプルなアプリケーションであれば、内部Flashで十分です。

理論上、Flashはメモリ・マップドなので、ピクセルをFlashから直接読み取り、RAMに書き込むことができます。 一方、Flashがメモリ・マップドでない場合には、FlashのコンテンツをRAMに転送し、そこから読み取ることができます。

Further reading

ディスプレイ

ディスプレイは、画像が人の目の前に実際に表示される場所です。

RAMに保存されている計算された画像(フレームバッファ)は、マイクロコントローラによりディスプレイに一定間隔で転送されます。

Further reading
  • 選択可能なハードウェアの詳細については、「ハードウェア選択」を参照してください。
  • ボードとコンポーネントの設定については、「ボード立ち上げ」を参照してください。