Everything

wup_tsk

iwup_tsk

概要
タスクの起床
C言語形式
 ER      wup_tsk ( ID tskid );
 ER      iwup_tsk ( ID tskid );
パラメータ
I/O
パラメータ
説明
I
 ID      tskid;
タスクのID
TSK_SELF: 自タスク
数値: タスクのID

機能
tskidで指定されたタスクをWAITING状態(起床待ち状態)からREADY状態へ,またはWAITING-SUSPENDED状態からSUSPENDED状態へと遷移させます。
ただし,本サービス・コールを発行した際,対象タスクが起床待ち状態以外の場合には,状態操作処理は行わず,起床要求カウンタに1を加算します。
備考 RI600PXが管理する起床要求カウンタは,8ビット幅で構成されています。このため,本サービス・コールでは,起床要求数が255回を超える場合には,起床要求のキューイング(起床要求カウンタの加算処理)は行わず,戻り値としてE_QOVRを返します。
戻り値
マクロ
数値
意味
E_OK
0
正常終了
E_ID
-18
不正ID番号
- tskid < 0
- tskid > VTMAX_TSK
- iwup_tskを発行した際,tskidTSK_SELFを指定した。
E_CTX
-25
コンテキスト・エラー
- CPUロック状態から本サービス・コールを発行した。
- タスクからiwup_tskを発行した。
- 非タスクからwup_tskを発行した。
- 「PSW.IPL > カーネル割り込みマスクレベル」の状態から本サービス・コールを発行した。
E_MACV
-26
メモリ・アクセス違反(wup_tskのみ)
- スタック・ポインタが呼出しタスクのユーザ・スタック領域の範囲外を指している。
E_OBJ
-41
オブジェクト状態エラー
- 対象タスクがDORMANT状態である。
E_NOEXS
-42
オブジェクト未生成
- tskidのタスクが存在しない。
E_QOVR
-43
キューイング・オーバフロー
- 起床要求数が255回を超えた。