最新T-Kernelの活用テクニック(1) ―― 小規模システム向けμT-Kernelとは何か
2. μT-KernelとT-Kernelの違い
● μT-Kernelの設計方針
μT-Kernelは小規模な組み込み機器への適用を前提に設計されているので,大規模システム用としてT-Kernelに用意されていた機能のほとんどが省略されています.
μT-Kernelでは,以下の環境を想定しています.
- 対象CPUはMMUなし
- 1チップ・マイコンの内蔵資源だけでも動作する
- CPUごとの最適化を前提とする
- 16ビット,8ビットCPUを意識した仕様とする
μT-Kernelが対象としている16ビットと8ビットのCPUではMMUは搭載されないことが多く,かつ,機器としてもほとんどが単機能となるため,アプリケーションの動的なロードやコンフィギュレーションの動的な変更は必要ありません.小規模な組み込み機器においては少しでも資源を減らすことの方がより重要です.
特に,μT-Kernel設計の初期段階で与えられた使命として,「1チップ・マイコンの内蔵資源のみで動作可能であること」があります注2 .1チップ・マイコンの内蔵ROMと内蔵RAMの容量は数Kバイト~数十Kバイトと少ないのが一般的なので,μT-Kernelもそれだけのサイズで動作できるように設計されています.
注2;具体的には,H8S/2212を搭載したDiceと呼ばれるボードに対応させることになった(写真1).H8S/2212は内蔵ROMが128Kバイト,内蔵RAMが12Kバイトである.T-Kernelでさえコード・サイズは100Kバイト程度しか必要としないので,ROMサイズは特に問題にならない.しかしRAMが12Kバイトというのはかなり厳しいものがある.
写真1 H8S/2212を搭載したボード「Dice」
● μT-Kernelの実装 とT-Kernelとの違い
μT-KernelはMMUを利用せず,拡張用のT-Kernel/Extensionを利用しないことが前提となっています.そのため,T-Kernel/System Managerの大部分とタスク付属同期に含まれるタスク・イベントに関する処理や待ち禁止などの拡張機能が省略されています(表1).
機 能 | μT-Kernel | T-Kernel | μITRON4.0 |
タスク管理 | 〇*1 | ○ | 〇*2 |
タスク付属同期 | 〇*1 | ○ | 〇*2 |
タスク例外処理 | × | ○ | ○ |
同期・通信 セマフォ イベント・フラグ データ・キュー メール・ボックス | ○ ○ × ○ | ○ ○ × ○ | ○ ○ ○ ○ |
拡張同期・通信 ミューテックス メッセージ・バッファ ランデブ・ポート | ○ ○ ○ | ○ ○ ○ | ○ ○ ○ |
メモリ・プール管理 固定長メモリ・プール 可変長メモリ・プール | ○ ○ | ○ ○ | ○ ○ |
時間管理 システム時刻管理 周期ハンドラ アラーム・ハンドラ オーバラン・ハンドラ | ○ ○ ○ × | ○ ○ ○ × | ○ ○ ○ ○ |
システム状態管理 | 〇*1 | ○ | ○ |
割り込み管理 | 〇*1 | ○ | ○ |
サービス・コール管理 | × | × | ○ |
システム構成情報管理 | × | ○ | × |
サブシステム管理 | 〇*1 | ○ | × |
システム・メモリ管理 | × | ○ | × |
アドレス空間管理 | × | ○ | × |
デバイス管理 | ○ | ○ | × |
I/Oポート・アクセス・サポート | × | ○ | × |
低消費電力 | × | ○ | × |
その一方で,μT-Kernelではサブセットの実装を認めていません.仕様書に規定されている機能はすべてサポートしています.もし,「μT-Kernel」と銘打ったOSを入手したなら,これらの機能をすべてサポートしているので,μITRONで問題になった「サブセット実装による移植性の低下」は発生しません.
● T-Monitorを前提としない
T-MonitorはT-Engineのハードウェアの違いを吸収するモニタ・プログラムです.T-MonitorはT-EngineやT-Kernelそのもののデバッグにも利用できますし,同じモニタ・コマンドがどのCPUボードでも利用できるといった教育効果もあるため,標準化の意義は大きいと思います.
一方で,μT-Kernelは実行プラットホームとしての意味合いが強く,ハードウェアに強く影響される部分については標準化よりは最適化を重視するべきという立場から,T-Monitorは実装されていなくても動作するようになっています注3 .なお,μT-Kernelでは,T-Monitorのデバッグ機能はデバッガ(ICE)を利用することを前提としています.
注3;当然,十分なCPUパワーを確保できるシステムであればT-Monitorがあった方が便利である.T-Monitorを利用する構成にしてはならないという意味ではないので,注意すること.