- 244 名前:login:Penguin mailto:sage [2013/01/05(土) 22:25:43.51 ID:rHMC6K/o]
- ttp://spritesmods.com/?art=spitft&page=3
ドライバ もちろん、Linuxシステムに接続されたLCDパネルだけでは何も表示することはできず、 それ用のソフトウェアドライバが必要になります。 私はLinuxカーネル用の フレームバッファ・デバイスドライバをわざわざ書いたので、プログラムを走らせて フレームバッファデバイスに直接書けるため、Xを走らせたり等に、 Linuxコンソール用のLCDを使うことができます。 普通は、フレームバッファにはCPUが直接ビデオメモリにアクセスする機能を持っているものだから、 例えばXサーバは直接それに書くことができるのです。 これはちょっと風変わりなSPIドライバなのですが、 幸運にもカーネルはそのための解決策を持っていたのです。 RAMのランダムビットを、 Linuxカーネルがフレームバッファ・メモリに割り当てることができますす。 そしたら、遅延I/Oフレームワークの支援を得られるようになり、常時そのメモリの一部が どのメモリ・ページに書かれたのかを知らせてくれるようになるのです。 そしたら、それをRAM内フレームバッファメモリを実際のディスプレイデバイスに同期させられます。 幾つかの調査のあと、LCDに内蔵のSSD1289を既にサポートしているドライバを2つ私は見つけました。 私が配線したSPIインターフェースはサポートしていないものの、それらのドライバいずれにも癖があり、 片方のドライバにはLinuxカーネルの遅延I/O機能を使わないが、LCDに現在のフレームバッファの内容を 転送するのにCPU100%貼付きを炸裂させ、もう片方のドライバは私が全てのカーネルインターフェースを 実装しなかったのだが、LCDをコンソール化するのを不可能にした。 それら2案をひとつにまとめ、 さらに私が作ったコードを埋め込むことでLCDをシフトレジスタ越しに制御できるようにしたのである。 図表参照:ttp://meuk.spritesserver.nl/foto/foto/misc14/IMG_6890.JPG もし、LCDをあなたの組み込みデバイスに搭載したいなら、Linuxカーネル向けにパッチしたドライバを パッケージ化してあるので、それを好みのSPIベースの組み込みデバイス向のカーネルに適用し、 ドライバをイネーブルするためにカーネル設定ファイルにオプションを組み入れてやればよい。
|

|