Everything

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を越えた