FreeRTOSノート

タスクの作成と削除(静的メソッド)

タスクスケジューラを開くために作成された後。

FreeRTOSConfig.h 

1.静的な生成機能を有効にするには、マクロを変更します。

  定義された2つの機能があり、あるでしょう。

 

特徴タスク

RTOSを使用する場合、リアルタイムアプリケーションは、別個のタスクとして使用することができます。各タスクは独自のオペレーティング環境を持って、システムが他のタスクやRTOSスケジューラに依存しません。実行するための1つのタスクだけ、任意の時点では、RTOSスケジューラ、RTOSスケジューラなりますので、繰り返し開閉し、各タスクによって決定された特定のタスクを実行します。RTOSのタスクスケジューラは、RTOSスケジューラのデューティは、タスクがタスク終了時に同じ時間をその実行コンテキスト(内容をスタック、レジスタ値)との時間を開始することを確実にするためである、特定の動作を知る必要はありません。これを行うには、各タスクは再び時間がタスクコンテキストを実行するときように、タスク切り替えのコンテキストは、スタック上に保存されたスタックは、スタックから削除することができている必要があり、作業が再開されます。

 

タスクのステータス:

FreeRTOSのタスクは、常に次のいくつかのいずれかの状態になります。

状態を実行します:タスクが実行されている場合は、その後、使用するタスクプロセッサに現在あるタスク状態で実行して、タスクの状態が実行されていることを言います。あなたはシングルコアプロセッサを使用している場合、問題は常にいつでも実行している状態で1つのタスクだけを持つことになります。

レディ状態:タスクが(これらのタスクがブロックされたり中断されていない)の優先順位があるので、タスクは、実行されていないが、レディ状態のタスクでは、実行するか、または優先順位の高い準備ができているレディ状態にありますタスクが実行されています!

状態をブロッキング:タスクは現在、外部イベントを待っている場合、タスクスケジューラは機能vTaskDelayを(使用している場合、それは、例えば、状態をブロックしていると言う)、その後、遅延期間が終了するまで、ブロッキングステートになります。タスクは、キュー、セマフォを待っています。イベントグループ。とき、または通知ミューテックスは、ブロッキング状態になります。ブロッキング状態にタスクがタイムアウトスーパーマーケットがこの時間よりも、タスクがまだ来ていないすべてのイベントを待っている瞬間、ブロック発売される必要があります。

サスペンド状態:サスペンド状態へのタスクの後に、ブロッキングステートと同じで、スケジューラは、状態の呼び出しに実行することはできませんが、中断状態のタスクのタイムアウトを入力しませんでした。vTaskSuspendを(呼び出すことによって、サスペンドモードを出入りするミッション)とxTaskResume()。

ジョブの状態の間

 

おすすめ

転載: www.cnblogs.com/doitjust/p/10957944.html