uC / OS-III時間管理(II)

時間管理は、クロック・ティック、タスクを達成するために、オペレーティングシステムのカーネルメカニズムを実行するため、システム管理時間に基づいて構築さのようなものです。

我々は、次の5つの機能を使用します:

ostimedly()

ostimedlyhmsm()

()へのostimedlyresu

ostimeget()

ostimeset()

各機能の機能を紹介します。

ostimedly()

OSTimeDly()関数は、現在のタスクの実行を停止するために使用され、操作後の時間の遅延時間(タイマはやや似中断します)。以下の表の情報にOSTimeDly()関数。

 

 

 

 

 

関数の引数と呼び出しが正当な機会である場合にOS_TickListInsert()関数は、それは希望、ビートに成功のリストを現在のタスクを設定した場合OSTimeDly()関数は、OS_TickListInsertを呼び出します()関数は、リズムリスト管理に現在のタスクを設定し、 OS_RdyListRemoveを呼び出す()関数は、現在のタスクがタスクリストから削除される設定準備が完了し、システムが別のタスクに切り替え、優先順位の決定に応じてCPUのタスクを使用する権利を割り当てるかどうかを、遅延時間が来るまで待って、と。これは、一般的なプロセスタスクの遅延を達成するためにOSTimeDly()関数です。

ostimedlyhmsm()

OSTimeDlyHMSM()関数と同様の機能OSTimeDly()関数は全く同じではないOSTimeDly()タイミング・フォーマットに比べて現在のタスク実行時間の期間後に遅延が、OSTimeDlyHMSM()関数の実行を停止するために使用されます。しかし、ユーザがOSTimeDlyHMSM()関数を使用して、マクロは1に設定されている(「OS_CFG.h内」にある)OS_CFG_TIME_DLY_HMSM_ENを進めなければなりません。

 

 

 次のテーブル情報でOSTimeDlyHMSM()関数。

 

関数の引数と呼び出しが正当な機会である場合にOSTimeDlyHMSM()関数は、呼び出しますOS_TickListInsert()関数は、リズムリスト管理に現在のタスクを設定します。現在のタスクリストを挿入するOSTimeDlyHMSM()関数の呼び出しOS_TickListInsert()関数が成功打つ場合は、OS_RdyListRemove()関数を呼び出します設定し、現在のタスクがタスクリストから削除される準備ができて、そしてシステムが別のタスクに切り替わります。(原理とOSTimeDlyは()と同じ原理です)

()へのostimedlyresu

OSTimeDlyResume()関数は、他のタスク(非現在のタスク)は、遅延の終了を指示するために使用されます。ユーザOSTimeDlyResume()関数を使用するには、マクロは1に設定されている(「OS_CFG.h内」にある)OS_CFG_TIME_DLY_RESUME_ENを進めなければなりません。、他のタスクの操作対象のOSTimeDlyResume()関数は、現在のタスクではありません。

次のテーブル情報でOSTimeDlyResume()関数。

 

 

ostimeget()

OSTimeGet()関数は、クロックティックカウントの現在値を取得するために使用されます。

 

 

 

ostimeset()

OSTimeSet()関数は、クロックティックカウントの現在値を設定するために使用されています。(注意、一般的には使用しないでください)

 

 

 要約すると:

イベントの1.uC / OSのシステム時刻の遅れと待っているがあります。タスクが遅延または期間を待っするときは、ビートのリスト管理に挿入されます。クロックダニが到着するたびに、システムは、タスクリストに遅延があるかどうか、ビートの有効期限が切れているのを待つためにチェックします。それは期限が切れているタスクがある場合は、ジョブのステータスが変更され、それは遅延が含まれて削除するか、待ち状態、およびタスクは、ビートのリストから削除されます。

2.遅延関数主OSTimeDly()とOSTimeDlyHMSM()。時間パラメータ、より良い相互作用として、分、秒、ミリ秒で直接ある時間パラメータとして、かつてのクロックパルス。実際には、2つの原則は、最終的に拍数に変換することと同じ、時間パラメータOSTimeDlyHMSM()関数です。

3.OSTimeDlyResume () 函数可以用于结束其他任务因调用OSTimeDly() 或OSTimeDlyHMSM() 导致的延时。但必须切记,OSTimeDlyResume () 函数的操作对象为其他任务,不能是当前任务。

4.OSTimeGet () 函数用于获取当前的时钟节拍计数值。OSTimeSet () 函数用于设置当前的时钟节拍计数值,但必须慎用该函数。

おすすめ

転載: www.cnblogs.com/lailai-laird/p/11627745.html