そろそろ本業が開始できるようになってFreeRTOSシリーズを打ち切る、という状況になってほしいのだが。。。
もうちょっとやります。
http://www.freertos.org/RTOS-idle-task.html
自分が作ったタスクが1つでも、その1つがSuspended状態になったら誰かが表に出てくることになる。
その誰かがIdleタスクだろう。
vTaskStartScheduler()を呼ぶと、その中で自動的に生成している。
一番優先度が低いので、普通は動かずにReady状態になっている。
さっきは「誰かが表に出てくる」と書いたが、どうやらタスクが削除されてメモリを解放するという役割を負っているようだ。
前回のvTaskDelete()が、それらしい。
2つくらいやり方があるようなので、興味があれば見てみるとよいだろう。
tasks.cも一緒に追った方がわかりやすそうだ。
タスクについては、これで一周したようだ。
タスクと似たようなものとしてコルーチン(Co-Routine)もあるようだけど、そっちはいいや。
タスクとコルーチンの違いの説明に「very small devices」とあるけど、ARMは小さくないと思うのだ。
いるときが出てきたら、読もう。
タスクの次は、何を読もうか?
使いたいとしたら、こういうところか。
- タイマ処理
- タスク間通信
- メモリのこと
- 排他
- 割込み
盛りだくさんだけど、タスクが1つだったらOS使わなくてよいだろうし、タスクが複数だったらタスク間の通信がいるし、メモリも動的にとったり共有したりするし、そしたら排他もいるし、と、全部いるはずだ。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。