sus_tsk

isus_tsk

概要

SUSPENDED状態への移行

C言語形式

 ER      sus_tsk ( ID tskid );
 
 ER      isus_tsk ( ID tskid );
 

アセンブリ言語形式

 MOV     A, #tskid
 CALL    !!_sus_tsk
 
 MOV     A, #tskid
 CALL    !!_isus_tsk
 

パラメータ

I/O

パラメータ

説明

I

 ID      tskid;
タスクのID

TSK_SELF: 自タスク

数値: タスクのID

 

機能

tskidで指定されたタスクのサスペンド要求カウンタに0x1を加算したのち,対象タスクをRUNNING状態からSUSPENDED状態へ,READY状態からSUSPENDED状態へ,またはWAITING状態からWAITING-SUSPENDED状態へと遷移させます。

ただし,本サービス・コールを発行した際,対象タスクがSUSPENDED状態,またはWAITING-SUSPENDED状態へと遷移していた場合には,状態操作処理は実行されず,サスペンド要求カウンタの加算処理のみが実行されます。

なお,SUSPENDED状態の解除は,以下の場合に行われ,SUSPENDED状態からREADY状態へと遷移します。

 
SUSPENDED状態の解除操作

エラー・コード

rsm_tskの発行により,解除要求が発行された

E_OK

irsm_tskの発行により,解除要求が発行された

E_OK

frsm_tskの発行により,SUSPENDED状態を強制的に解除された

E_OK

ifrsm_tskの発行により,SUSPENDED状態を強制的に解除された

E_OK



備考1 本サービス・コールを発行した際,対象タスクが自タスクの場合は,レディ・キューから外れ,RI78V4のスケジューリング対象から除外されます。

備考2 RI78V4が管理するサスペンド要求カウンタは,7ビット幅で構成されています。このため,本サービス・コールの発行により,サスペンド要求数が最大カウント値127を越える場合には,カウンタ操作処理は実行されず,戻り値として“E_QOVR”が返されます。

戻り値

マクロ

数値

意味

E_OK

0

正常終了

E_OBJ

-41

対象タスクがDORMANT状態である

E_QOVR

-43

サスペンド要求数が127を越えた