Everything

ras_tex

iras_tex

概要
タスク例外処理の要求
C言語形式
 ER      ras_tex ( ID tskid, TEXPTN rasptn );
 ER      iras_tex ( ID tskid, TEXPTN rasptn );
パラメータ
I/O
パラメータ
説明
I
 ID      tskid;
タスクのID
TSK_SELF: 自タスク
数値: タスクのID
I
 TEXPTN  rasptn;
要求するタスク例外要因

機能
tskidで指定されたタスクに対して,タスク例外処理を要求します。対象タスクの保留例外要因を,rasptn で示された値との論理和に更新します。
本サービス・コール発行後,「6.2.3 タスク例外処理ルーチンの起動条件」に示す条件がすべて揃った場合には,RI600PXはタスク例外処理ルーチンを起動する処理を行います。
タスク例外処理ルーチン起動時には,保留例外要因は0クリアされ,タスク例外は禁止されます。タスク例外処理ルーチンには,引数として0クリア前の保留例外要因と,タスクの拡張情報が渡されます。
タスク例外処理ルーチンが終了すると,タスク例外許可状態に変更され,そのタスクはタスク例外処理ルーチン起動直前の地点から実行を再開します。
タスク例外処理ルーチンからのリターン時,RI600PXはタスクのユーザ・スタックにタスクのコンテキストレジスタを保存します。この処理においてユーザ・スタックのオーバー・フローを検出した場合は,システム・ダウンとなります。
タスク例外処理ルーチンでCPUロック状態に移行した場合,タスク例外処理ルーチンからリターンするまでにCPUロック状態を解除しなければなりません。CPUロック状態のままタスク例外処理ルーチンからリターンした場合,システム・ダウンとなります。
割り込み優先レベル(PSW.IPL)は,タスク例外処理ルーチンの起動前後,タスク例外処理ルーチンからのリターン前後で変化しません。割り込み優先レベルがカーネル割り込みマスクレベルより高い状態で,タスク例外処理ルーチンからリターンした場合は,システム・ダウンとなります。
戻り値
マクロ
数値
意味
E_OK
0
正常終了
E_PAR
-17
パラメータ・エラー
- rasptn == 0
E_ID
-18
不正ID番号
- tskid < 0
- tskid > VTMAX_TSK
- iras_texを発行した際,tskidTSK_SELFを指定した。
E_CTX
-25
コンテキスト・エラー
- CPUロック状態から本サービス・コールを発行した。
- タスクからiras_texを発行した。
- 非タスクからras_texを発行した。
- 「PSW.IPL > カーネル割り込みマスクレベル」の状態から本サービス・コールを発行した。
E_MACV
-26
メモリ・アクセス違反(ras_texのみ)
- スタック・ポインタが呼出しタスクのユーザ・スタック領域の範囲外を指している。
E_OBJ
-41
オブジェクト状態不正
- tskidのタスクがDORMANT状態である。
- tskidのタスクにタスク例外処理ルーチンが定義されていない。
E_NOEXS
-42
オブジェクト未生成
- tskidのタスクが存在しない。