システム構成
目標を、LCDコントローラ制御とフレームメモリ処理と したので、2つのデバイスを扱うプログラムが必要です。 下記構成で、デバイスを接続し、動かすことにしました。LCDコントローラは、SH-4が内蔵しているので、これを活用 します。フレームメモリは、マイコンとしては広大なメモリ空間 をもつ、SH-4に接続されているメモリを利用します。
LCDコントローラ
LCDコントローラについては、SH-4のデータシートを 一読して、大体の動作がわかりました。SH-4は、ルネサス が販売していますが、三菱の半導体部門との合併前には、 日立製作所の半導体部門が担当していたので、不明な点が あれば、昔の仲間に聞けばよいと考えて、先に進むことに しました。 日立製作所のACRTCのマニュアルと同程度に、SH-4 のLCDコントローラの記述がわかりにくいこと。自分が、 勤めていた頃と変わりなく、わかりにくく、本当にユーザー が使えないように書いているなという印象でした。 SileconLinux社のCAT760のページに、LCDと 接続して、風景を表示している写真がありました。 おそらくドライバがCD-ROMの中に入っているだろう と考えて、見てみうると、カーネルを展開した次の ディレクトリにありました。 /drivers/video ファイル名は、sh7760fb.cです。 自分で開発しないでも、利用できれば、充分と考えました。
フレームメモリ
SH-4のデータシートに目を通すと、LCDコントローラ の内部レジスタに、アドレス指定で、コントローラが 自動的に、そこからデータを取出してくれるようです。 この機能を利用することにしました。 さらに、LinuxとFrameBufferというキーワードで検索する と、/dev/fb0、/dev/fb1のようにデバイスノードアクセス が可能という記述を見つけました。 さらに、デバイスノードにデータをライトすると、表示が できると書いていたので、それを信じて使うことにしました。