【サービス関数とは?】
PICROSは、ユーザに提供するサービスとしていくつかのサービス関数を用意しています。
このサービス関数により、ユーザはタスクの起動、停止、待ち合わせの制御をすることが
できます。
いずれもC言語の関数の形式になっており、直ぐ実行元に戻るようになっています。しかし
この戻る時に割込みを許可して戻ることを基本にしていますのでタスクの作成時には注意が
必要です。つまりタスクは割込み禁止状態で作成されることは無いという前提です。
特別に割込み禁止状態にしたいときには、ユーザー側で割込み禁止状態を管理する必要が
あります。
【サービス関数一覧】
PICROSがサポートしているサービス関数には下表のものがあります。
いずれもCの関数として作成されています。そして関数の中は割込み禁止状態で
実行され、実行から戻る時に割込み許可されて戻ることを基本としています。
実際の使い方は次の「タスクの構成方法」のページで説明します。
名 称
機 能
パラメータ
Trigger_Task (task) 主に割込み処理から指定タスクを起動し、実行待ち状態とします。
戻る時に割込み禁止状態となります。起動タスクNo Request_Task (task) 主にタスクから指定タスクの起動を要求し実行待ち状態とします。
戻る時には割込み許可状態です。起動タスクNo Exit_Task ( ) 実行もとのタスクを停止状態にする。
割込みは禁止状態で戻ります。無し Suspend_Task (task) 実行元タスクを、指定したタスクからのイベント待ち状態とします。
割込み禁止状態で戻ります。待合せタスクNo Resume_Task ( ) 実行元タスクを待合せているタスクのなかで最も優先順位の高いタスクの待合せを解除します。
戻る時は割込み許可状態です。無し Get_Trigger ( ) 実行元タスクが起動された起動条件を返り値として戻ります
割込み許可禁止には影響を与えません。
戻り値は下記となっています。
0 : Request_taskかTrigger_Task関数で通常起動された
1 : イベント待ちをResume_Taskで解除され起動された
2 : タイマ待ちをタイムアップで解除され起動された無し Wait_Timer (time) 実行元タスクをタイマ待ち状態とする。
待ち時間は 約10msec * time となる
割込み許可状態で戻ります。待ち時間