T-Monitor (tef_em1d 用) ソース構成



1. はじめに

ここでは、T-Engine リファレンスボード (tef_em1d) 用の T-Monitor のソースコードの構成に関して説明します。

T-Monitor の機能仕様に関しては、トロンフォーラム から公開されている「T-Monitor 仕様書」を、実装に依存する部分に関しては、 「T-Kernel 2.0(tef_em1d)実装仕様書」 を参照してください。

2. ディレクトリ構成

T-Monitor のソースコードは、T-Kernel ソースコードパッケージの中に含まれています。

T-Monitor ソース全体のディレクトリ構成図を以下に示します。

  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                 構築結果オブジェクト
            `-- <機種名>

3. include ディレクトリ

T-Monitor 固有の定義ファイルです。

"arm" サブディレクトリはハードウェア依存部となります。

4. tmmain ディレクトリ

T-Monitor 全体の構築ディレクトリです。

必要なモジュールの構築を一括して行い、それらをリンクして、T-Monitor の実行イメージファイルを構築します。

構築した T-Monitor の実行イメージファイルは、"tkernel_source/bin/<機種名>" ディレクトリにコピーされます。

5. cmdsvc ディレクトリ

T-Monitor のコマンドおよびサービスコールの処理を行うソースです。

"src" サブディレクトリ直下はハードウェアに依存しないソースで、"src/armv6" サブディレクトリはハードウェア(CPUのみ)依存部となります。

構築ディレクトリで構築したオブジェクトファイルは、"bin/<機種名>" ディレクトリにコピーされます。

6. hwdepend ディレクトリ

ハードウェアに依存した、リセット起動、ハードウェア初期化、例外/割り込み、メモリアクセスなどの処理を行うソースです。

すべてハードウェアに依存するため、"<機種名>" サブディレクトリの下に"src" と "build" サブディレクトリを置く構成としています。

構築ディレクトリで構築したオブジェクトファイルは、"bin/<機種名>" ディレクトリにコピーされます。

7. driver ディレクトリ

T-Monitor で使用する以下のデバイスドライバのソースです。

    flash ディレクトリ:      フラッシュ ROM ドライバ
    memdisk ディレクトリ:    メモリディスクドライバ
    sio ディレクトリ:        シリアル入出力ドライバ

これらのデバイスドライバは、割り込み禁止状態で動作可能するため、割り込みを使用しない T-Monitor 専用のドライバです。

各ドライバの構築ディレクトリで構築した各ドライバのオブジェクトファイルは、"bin/<機種名>" ディレクトリにコピーされます。

8. bin ディレクトリ

以下の構築ディレクトリで構築した構築結果のオブジェクトファイルが、"<機種名>" のサブディレクトリに置かれます。その際、古いオブジェクトファイルは、"!OLD" の名称のサブディレクトリにバックアップされます。

    cmdsvc/build/<機種名>
    hwdepend/<機種名>/build
    driver/flash/build/<機種名>
    driver/memdisk/build/<機種名>
    driver/sio/build/<機種名>

ここに置かれたオブジェクトファイルは、構築ディレクトリ "tmmain/build/<機種名>" で最終的な T-Monitor の実行イメージを構築する際に使用されます。