• 検索結果がありません。

カーネル共通定義

ドキュメント内 mitron402.book (ページ 95-99)

第 3 章 µITRON4.0 仕様の概念と共通定義 51

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の機能説明を参 照すること.

ドキュメント内 mitron402.book (ページ 95-99)