第 3 章 µITRON4.0仕様の概念と共通定義 49
3.11 カーネル共通定義
3.11.1 カーネル共通定数 (1) オブジェクト属性
TA_HLNG 0x00 高級言語用のインタフェースで処理単位を起動
TA_ASM 0x01 アセンブリ言語用のインタフェースで処理単位
を起動
TA_TFIFO 0x00 タスクの待ち行列をFIFO順に
TA_TPRI 0x01 タスクの待ち行列をタスクの優先度順に
TA_MFIFO 0x00 メッセージのキューをFIFO順に
TA_MPRI 0x02 メッセージのキューをメッセージの優先度順に
【µITRON3.0仕様との相違】
TA_HLNGとTA_ASMの値を逆にした.
(2) カーネルで用いるメインエラーコード
カーネルでは,2.3.2節に規定されているメインエラーコードの中で,E_CLS,
E_WBLK,E_BOVRの3つを除いたメインエラーコードを用いる.
【スタンダードプロファイル】
スタンダードプロファイルで発生し,検出しなければならないメインエラー コードは次の通りである.
E_OBJ オブジェクト状態エラー
E_QOVR キューイングオーバフロー
E_RLWAI 待ち状態の強制解除
E_TMOUT ポーリング失敗またはタイムアウト
スタンダードプロファイルに準拠したカーネル上でポータビリティを確保し たいアプリケーションは,上に挙げた以外のメインエラーコードが検出される ことに依存してはならない.
【補足説明】
スタンダードプロファイルで発生しないか,検出を省略することができるメイ ンエラーコードは,次の通りである.
(a)カーネルでは使用しないもの E_CLS,E_WBLK,E_BOVR
(b)スタンダードプロファイルの機能では発生しないもの E_OACV,E_NOID,E_NOEXS,E_DLT
(c) 発生するかどうかは実装に依存するもの E_SYS,E_RSFN,E_NOMEM
(d)検出を省略することができるもの
E_NOSPT,E_RSATR,E_PAR,E_ID,E_CTX,E_MACV,E_ILUSE (3) サービスコールの機能コード
カーネルのサービスコールには,(–0xe0)〜(–0x05)の範囲の機能コードを割り 付ける.ただし,cal_svcには機能コードを割り付けない.機能コードの具体的 な割付けは,第4章において機能単位毎に規定する.
(–0xe0)〜(–0x05)の範囲の機能コードで,この仕様で割り付けられていないも
のは,将来のカーネルの機能拡張のために予約されている.(–0x100)〜(–0xe1) の範囲の機能コードは,実装独自のサービスコールに用いることができる.(–
0x200)〜(–0x101)の範囲の機能コードは,将来のカーネルの機能拡張のために
予約されているが,必要であれば実装独自のサービスコールに用いてもよいも のとする.
【µITRON3.0仕様との相違】
機能コードの値を割り付けなおした.
【仕様決定の理由】
スタンダードプロファイルに含まれるサービスコールの機能コードを(–0x80)
〜(–0x05)の範囲としているが,これは,8ビットで表現できるようにするため
である.
(4) その他のカーネル共通定数
TSK_SELF 0 自タスク指定
TSK_NONE 0 該当するタスクが無い
【µITRON3.0仕様との相違】
TSK_NONEを新たに導入した.µITRON3.0仕様では.該当するタスクが無い場
合にはFALSE(=0)を用いている.
3.11.2 カーネル共通構成定数
(1) 優先度の範囲
TMIN_TPRI タスク優先度の最小値(=1)
TMAX_TPRI タスク優先度の最大値
TMIN_MPRI メッセージ優先度の最小値(=1)
TMAX_MPRI メッセージ優先度の最大値
【スタンダードプロファイル】
スタンダードプロファイルでは,これらのカーネル構成定数を定義しなければ
ならない.また,TMAX_TPRIは16以上,TMAX_MPRIはTMAX_TPRI以上で なければならない.
【補足説明】
TMIN_TPRIとTMIN_MPRIは,この仕様上は1に固定されているが,実装独自の
拡張として,1以外の値でカーネルを構成できるようにすることは許される.
(2) バージョン情報
TKERNEL_MAKER カーネルのメーカコード
TKERNEL_PRID カーネルの識別番号
TKERNEL_SPVER ITRON仕様のバージョン番号
TKERNEL_PRVER カーネルのバージョン番号
【スタンダードプロファイル】
スタンダードプロファイルでは,これらのカーネル構成定数を定義しなければ ならない.
【補足説明】
バージョン情報をあらわす定数値の意味については,ref_verの機能説明を参照 すること.