Previous: 3.1.6. カーネルによるタスクの切り替え |
Up: 3.1. タスクの登録と実行 |
Next: 3.2. タスクにパラメータを渡す(整数値) |
main関数の最後では、以下のようにして無限ループを挿入しておきます。vTaskStartScheduler関数は内部で無限ループになっているので、通常はvTaskStartScheduler関数の次の関数が実行されることはありません。ただしカーネルの実行中にメモリ不足となった場合には、vTaskStartScheduler関数が終了して、次の行が処理させることになります。ここでエラーを通知させるような命令を入れておけば、メモリ不足を検知するといった処理ができます。
while(1); |
これでFreeRTOSを使用した複数のタスク起動は完了です。あとはタスク関数内にそれぞれ命令を実装していくだけで、マルチタスク処理が実現できます。サンプルプログラムではタスクを2個だけ登録していますが、タスクが複数になる場合には、xTaskCreate関数で登録する関数を増やすだけです。
Previous: 3.1.6. カーネルによるタスクの切り替え |
Up: 3.1. タスクの登録と実行 |
Next: 3.2. タスクにパラメータを渡す(整数値) |