ここでは、T-Engine リファレンスボード (tef_em1d) 用の T-Monitor のソースコードの構成に関して説明します。
T-Monitor の機能仕様に関しては、トロンフォーラム から公開されている「T-Monitor 仕様書」を、実装に依存する部分に関しては、 「T-Kernel 2.0(tef_em1d)実装仕様書」 を参照してください。
T-Monitor のソースコードは、T-Kernel ソースコードパッケージの中に含まれています。
T-Monitor ソース全体のディレクトリ構成図を以下に示します。
T-Kernel ソースディレクトリの "include", "etc", "bin" は、T-Monitor の構築のために使用します。
T-Monitor は、実行対象とするハードウェアに強く依存し、大部分がハードウェア依存となりますので、T-Kernel のディレクトリ構成の基本ルールとは一部異なっています。
<機種名> は "tef_em1d" となります。
一部のディレクトリの中には、"_dmy" という名称のファイルが入っています。このファイルは、アーカイバなどの利用を考慮し、ディレクトリが空になることを避けるためのダミーファイルで展開後は不要です。
tkernel_source
|
|-- ... ( T-Kernel ソースディレクトリ)
|-- include 定義ファイル(ヘッダファイル)
|-- etc make ルール、各種スクリプト
|-- bin 実行イメージファイル
|
|-- monitor T-Monitor ソースディレクトリ
|
|-- include 定義ファイル(ヘッダファイル)
| `-- arm [ハードウェア依存部]
|
|-- tmmain 全体構築ディレクトリ
| `-- build
| `-- <機種名>
|
|-- cmdsvc コマンド/サービスコール処理
| |-- build
| | `-- <機種名>
| `-- src
| `-- armv6 [ハードウェア(CPU)依存部]
|
|-- hwdepend システム依存処理 [ハードウェア依存部]
| `-- <機種名>
| |-- build
| `-- src
|
|-- driver デバイスドライバ [ハードウェア依存部]
| |-- flash フラッシュ ROM ドライバ
| | |-- build
| | | `-- <機種名>
| | `-- src
| |
| |-- memdisk メモリディスクドライバ
| | |-- build
| | | `-- <機種名>
| | `-- src
| |
| `-- sio シリアル入出力ドライバ
| |-- build
| | `-- <機種名>
| `-- src
|
`-- bin 構築結果オブジェクト
`-- <機種名>
T-Monitor 固有の定義ファイルです。
"arm" サブディレクトリはハードウェア依存部となります。
T-Monitor 全体の構築ディレクトリです。
必要なモジュールの構築を一括して行い、それらをリンクして、T-Monitor の実行イメージファイルを構築します。
構築した T-Monitor の実行イメージファイルは、"tkernel_source/bin/<機種名>" ディレクトリにコピーされます。
T-Monitor のコマンドおよびサービスコールの処理を行うソースです。
"src" サブディレクトリ直下はハードウェアに依存しないソースで、"src/armv6" サブディレクトリはハードウェア(CPUのみ)依存部となります。
構築ディレクトリで構築したオブジェクトファイルは、"bin/<機種名>" ディレクトリにコピーされます。
ハードウェアに依存した、リセット起動、ハードウェア初期化、例外/割り込み、メモリアクセスなどの処理を行うソースです。
すべてハードウェアに依存するため、"<機種名>" サブディレクトリの下に"src" と "build" サブディレクトリを置く構成としています。
構築ディレクトリで構築したオブジェクトファイルは、"bin/<機種名>" ディレクトリにコピーされます。
T-Monitor で使用する以下のデバイスドライバのソースです。
flash ディレクトリ: フラッシュ ROM ドライバ
memdisk ディレクトリ: メモリディスクドライバ
sio ディレクトリ: シリアル入出力ドライバ
これらのデバイスドライバは、割り込み禁止状態で動作可能するため、割り込みを使用しない T-Monitor 専用のドライバです。
各ドライバの構築ディレクトリで構築した各ドライバのオブジェクトファイルは、"bin/<機種名>" ディレクトリにコピーされます。
以下の構築ディレクトリで構築した構築結果のオブジェクトファイルが、"<機種名>" のサブディレクトリに置かれます。その際、古いオブジェクトファイルは、"!OLD" の名称のサブディレクトリにバックアップされます。
cmdsvc/build/<機種名>
hwdepend/<機種名>/build
driver/flash/build/<機種名>
driver/memdisk/build/<機種名>
driver/sio/build/<機種名>
ここに置かれたオブジェクトファイルは、構築ディレクトリ "tmmain/build/<機種名>" で最終的な T-Monitor の実行イメージを構築する際に使用されます。