μT-Kernel 2.0とは

μT-Kernel 2.0は、2013年トロンフォーラムが全世界にむけて仕様書を公開し、最も広く使われているリアルタイムOS μT-Kernelのバージョン。ソフトウェアの流通性を高くするため、T2シリーズOS(T-Kernel 2.0, μT-Kernel 2.0, MP T-Kernel 2.0, …)間の互換性を重視。
μT-Kernel 2.0は、国際規格IEEE2050-2018としてIEEE標準としても成立しています(※IEEE 2050-2018 IEEE Standard for a Real-Time Operating System (RTOS) for Small-Scale Embedded Systems)。ユーシーテクノロジはμT-Kernel 2.0の開発キットを提供しています。
μT-Kernel 2.0の主な3つの特長
Ⅰ. サービスプロファイルを導入
μT-Kernel 2.0の実装仕様に関する情報を機械処理可能な形式で記述
µT-Kernel 2.0 は小規模組込みシステムを前提とし仕様のサブセット化により効率の良い実装をすることを許容します。その上で、ミドルウェアやアプリケーションの流通性・移植性を維持するため、他の μT-Kernel 2.0 実装との間の差異をサービスプロファイルと呼ぶ記法(C言語の定数マクロ定義の列挙)で記述します。ミドルウェア開発者はサービスプロファイルを用いて、ソフトウェアの流通性を向上することができます。
- C言語のマクロ定義によりヘッダファイルとして提供
例: ユーザバッファ指定( TA_USERBUF )のサポート有無
#define TK_SUPPORT_USERBUF TRUE
→サービスプロファイル一覧

サービスプロファイルを用いたコード記述を行うことで、異なるMCUに実装されたμT2間の差異が吸収され、ミドルウェアやアプリケーションコードの共通化が可能

Ⅱ. μT-Kernelと比較して大幅に標準化範囲を拡大
標準化範囲を拡大することで、T2シリーズOS間のミドルウェアやアプリケーションコードの共有を可能にする。
- 標準化された仕様
- 物理タイマ管理機能
- 微少待ち
- 高速ロック・マルチロック
- その他
Ⅲ. 最適化・チューニングのために仕様を見直し
CONSTの導入(T-Kernel 2.0仕様に準拠)
- 参照専用の変数であることをAPI仕様で明示
ID tskid = tk_cre_tsk( CONST T_CTSK *pk_ctsk ); - 読込み専用変数のROM領域への配置が可能
- ROM・RAMともに消費を削減することが可能
タスク優先度最大値に関する仕様を緩和
- 140 (μT1) → 16以上の値 (μT2)
- タスク数が少ないシステムでは、スケジューラの最高優先度探索処理の効率化が可能
- RAM使用量を削減可能
割込み関連の仕様を整理
- 「割込み番号」の概念を導入し、「割込みハンドラ番号」と「割り込みベクタ番号」を統一