SROS 説明書
タスク
このOSは自作ロボットのOSとして作成した物です。その為に、最低限度のデバイスドライバとしてLED、SWを扱い易いようにメッセージドリブン型OSにしました。このメッセージを受け取る単位をこのOSではタスクと呼んでいます。タスクはメインスレッドで動く2種類のタスクと、タイマー割り込みにより、スレッドに関係なく動くタイマーモードのタスクがあります。これらは、タスク生成時に設定する事が出来ます。
タスク作成時にMODE_NORMALという引数を与えると、メッセージが無くなり次第タスク切り替えを行い最大限度もう一方のタスクを動かすモードとなります。MODE_SEQではメッセージが無くてもタスクが呼び出されます。メッセージで動作を制御可能なシーケンサー関数として利用する場合にはこのモードを使います。この二つのモードはフラグの変更で遷移可能です。
MODE_TIMERと言う引数を与えると、スレッドとは関係なくシステムタイマー割り込み毎に実行され、全てのメッセージを処理しようとします。従って、MODE_TIMERでは高負荷な作業は出来ません。また、割り込み処理中に動く為にスレッドの作成は極力しないようにしてください。ユーザーインターフェース等の比較的処理が軽いが出来る限り無反応になってもらいたくないタスク用に実装しています。