マイコン工作実験日記

Microcontroller を用いての工作、実験記録

emWin(STemWin)を動かす -- その2

2017-11-22 12:58:09 | LCD
前回の記事にも書きましたが、emWinはSTM32 Cubeパッケージの中にMiddlewareとして含まれてはいるものの、次の画面に示すようにCubeMXの構成画面からはアクセスできないというのが、ちょっと取っつきにくい要素のひとつになっているのではないでしょうか。そして、どうしても調査のためには1,000ページを超える分量のあるemWinのマニュアルに目を通さねばならないのが、敷居を高くしている要因でしょうか。



CubeMXはSTemWinに関する情報は何も提供してくれないので、自分で必要なファイルやライブラリパスをプロジェクトに登録してやる必要があります。それらのファイルは、CubeMXからライブラリパッケージをダウンロードしてインストールした場合には、 STM32 Cubeのレポジトリディレクトリの配下にインストールされています。わたしは Mac OSを使用していますので、~/STM32Cube/Repositryの配下に入っており、CubeL4のVersion 1.10.0 の場合は次のようになっています。Windowsの場合には、C:¥STM32 とかC:¥STM32Cubeとかを探してみてください。



STemWinのディレクトリの下にemWinが一式入っていますので、これらのファイルを必要に応じて参照のためのPATHを切ったり、ファイルをプロジェクト内にコピーして使うことになります。簡単に主要ディレクトリに含まれている内容を説明しておきます。

  • Config -- ターゲットで使用するために、設定やコードを追加する必要のあるファイルが入っています。自分のプロジェクトにコピーして使います。
  • Lib -- emWinのライブラリが入っています。リンク時にパスとライブラリ名を指定してやります。ビルド環境に合わせて、Keil, IAR, GCCの3種類のコンパイラでコンパイルされたライブラリが用意されており、それぞれのライブラリはさらにOSの有無、ARGB対応の有無によって個別のファイルが用意されています。ファイル名にotのサフィックスが付いているファイルはコンパイル時に実行時間重視の最適化を施してあるファイルのようです。
  • OS -- ターゲットのOS環境に適合させるためのサンプルファイルが入っています。サンプルとして、OS 無しの場合(GUI_X.c)と FreeRTOSを使用する場合 (GUI_X_OS.c)の2種類が用意されています。これらの環境でemWinを使用するのであれば、そのまま利用可能です。
  • Software -- emWinアプリケーションを作成する際に使用できるツールが入っています。Windows環境用のバイナリです。
  • inc -- emWinアプリが参照するヘッダーファイルが入っています。ビルド時にパスを指定してやります。


結局のところ、Config のディレクトリにあるファイルさえ、適切に変更、コードを追加してやればemWinを動かすことができます。ただし、上記のディレクトリにはemWinの本体がらみのファイルがあるだけで、サンプルのアプリは含まれていません。それらのサンプルは、パッケージのProjectサンプルとして提供されています。



前回の記事で示した画像はこれらのデモの一部になります。デモは何種類か用意されていますが、内容によって使用する資源(RAM, Flashのサイズ)が異なるので、外付けRAMの無いNucleo環境では実行可能なデモの種類や数は限られるようです。