ここでは、T-Engine リファレンスボード (tef_em1d) 用の以下のデバイスドライバのソースコードの構成に関して説明します。
各デバイスドライバの機能仕様に関しては、トロンフォーラム から公開されている「T-Engine 標準デバイスドライバ仕様」を、実装に依存する部分に関しては、 「T-Kernel 2.0(tef_em1d)実装仕様書」 を参照してください。
デバイスドライバのソースコードは、T-Kernel ソースコードパッケージの中に含まれています。
デバイスドライバのソース全体のディレクトリ構成図を以下に示します。
T-Kernel ソースディレクトリの "lib", "include", "etc" は、デバイスドライバの構築のために使用します。
デバイスドライバは、基本的に実行対象とするハードウェアごとに異なるため T-Kernel のディレクトリ構成の基本ルールとは異なり、"<機種名>" ディレクトリを上位に配置しています。
<機種名> は "tef_em1d" となります。
tkernel_source
|
|-- ... ( T-Kernel ソースディレクトリ )
|-- lib ライブラリ
|-- include 定義ファイル (ヘッダファイル)
| `-- device デバイスドライバ定義ファイル
|-- etc make ルール、各種スクリプト
|
|-- driver デバイスドライバソースディレクトリ
`-- <機種名>
|
|-- clk 時計ドライバ
| |-- build
| `-- src
| `-- svc 拡張 SVC インタフェース用
|
|-- console コンソールドライバ
| |-- build
| `-- src
| `-- svc 拡張 SVC インタフェース用
|
|-- kbpd KB/PD ドライバ
| |-- build
| `-- src
|
|-- lowkbpd KB/PD - 実I/Oドライバ
| |-- build
| `-- src
|
|-- screen スクリーンドライバ
| |-- build
| `-- src
|
|-- sysdsk システムディスクドライバ
| |-- build
| |-- obj MMC 用オブジェクトファイル
| `-- src
|
`-- build 全体構築ディレクトリ
T-Engine リファレンスボード上の RTC に対応した時計ドライバのソースです。
RTC のアクセスで必要になるシリアルインタフェース (I2C,SPI) は、他のデバイスドライバでも使用するため、サブシステムとして分離して実装し、拡張 SVC でアクセスするようにしています。そのため、拡張 SVC のインタフェースライブラリが必要になります。
構築ディレクトリで make を実行すると、ドライバのオブジェクトファイルと、拡張 SVC のインタフェースライブラリの両方が構築されます。インタフェースライブラリのソース、および定義ファイルは"src/svc" サブディレクトリに置かれますが、存在しない場合は、"perl" スクリプトにより自動的に生成されます。
構築ディレクトリで構築したオブジェクトファイルは、"driver/<機種名>/build" ディレクトリにコピーされ、インタフェースライブラリ (libem1diic.a) は、"tkernel_source/lib/build/<機種名>" ディレクトリにコピーされます。
T-Engine リファレンスボード上のシリアルポートに対応したコンソールドライバのソースです。
コンソールドライバは、サブシステムとして実装され、拡張 SVC でアクセスされますので、拡張 SVC のインタフェースライブラリが必要になります。
構築ディレクトリで make を実行すると、ドライバのオブジェクトファイルと、拡張 SVC のインタフェースライブラリの両方が構築されます。インタフェースライブラリのソース、および定義ファイルは "src/svc" サブディレクトリに置かれますが、存在しない場合は、"perl" スクリプトにより自動的に生成されます。
構築ディレクトリで構築したオブジェクトファイルは、"driver/<機種名>/build" ディレクトリにコピーされ、インタフェースライブラリ (libconsolesvc.a) は、"tkernel_source/lib/build/<機種名>" ディレクトリにコピーされます。
一般的なキーボードとポインティングデバイス(マウス)に対応した KB/PD ドライバのソースです。 本ドライバでは、実際のデバイスに依存しない論理的な処理のみを行い、実際のデバイスに対応した処理は実 I/O ドライバ (lowkbpd)で行います。
構築ディレクトリで構築したオブジェクトファイルは、"driver/<機種名>/build" ディレクトリにコピーされます。
T-Engine リファレンスボードに接続されるタッチパネル、およびボード上のボタンスイッチに対応した実I/O ドライバのソースです。
タッチパネルをポインティングデバイスとみなして、ボタンスイッチをキーボードのキーとみなして処理します。
構築ディレクトリで構築したオブジェクトファイルは、"driver/<機種名>/build" ディレクトリにコピーされます。
T-Engine リファレンスボードに接続される LCD に対応したスクリーンドライバのソースです。
構築ディレクトリで構築したオブジェクトファイルは、"driver/<機種名>/build" ディレクトリにコピーされます。
T-Engineリファレンスボード上のマイクロ SD カードスロットに対応したシステムディスクドライバのソースです。
ただし、マイクロ SD カード(MMC)アクセス用関数のソースファイルは含まれていません。"obj" サブディレクトリにオブジェクトファイルが置かれています。
マイクロ SD カード(SD, SDHC) にのみ対応し、他のディスクメディアには対応していません。
構築ディレクトリで構築したオブジェクトファイルは、"driver/<機種名>/build" ディレクトリにコピーされます。
すべてのデバイスドライバを一括して構築する構築ディレクトリです。構築した各デバイスドライバのオブジェクトファイルは、本ディレクトリに置かれ、その際、古いオブジェクトファイルは、"!OLD" の名称のサブディレクトリにバックアップされます。
本ディレクトリに置かれた各デバイスドライバのオブジェクトファイルは、T-Kernel の実行イメージ構築の際に使用されます。