μ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の主な3つの特長

Ⅰ. サービスプロファイルを導入

μT-Kernel 2.0の実装仕様に関する情報を機械処理可能な形式で記述

  • 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使用量を削減可能

割込み関連の仕様を整理

  • 「割込み番号」の概念を導入し、「割込みハンドラ番号」と「割り込みベクタ番号」を統一