Smalight OS本が来る前に [Smalight OS]
いきなりSmalight OSを使ったアプリケーションを用意できないので、サンプルとして入っている”u-ap”を動かしています。
実際にパスワード申請し、落して見てください。
この”u-ap”は、3つのタスクを実行します。それぞれのタスクの属性ですが、task01が優先度タスク、task02とtask03はローテーションタスクとして生成され、3つとも初期状態はREADYとなっています。
このアプリケーションは何ら出力を持たないので、動作確認にはE8エミュレータを使っています。E8エミュレータ上で動かす時は、RAMの一部の制限領域を避けてセクションを配置する必要があります。
このアプリケーションの動作を簡単に説明しますと、
1.task01がRUNNING→slp_tskでWAITINGに遷移
2.task02がRUNNING→rot_rdqでローテーションタスク内の実行タスクの切り換え
3.task03がRUNNING→wup_tskでtask01を起床、そのままREADYに遷移
4.task01がRUNNING→しかしすぐにslp_tskでWAITINGに遷移
5.task03がRUNNING→しかしすぐにslp_tskでWAITINGに遷移
6.task02がRUNNING→wup_tskでtask03を起床、しかしそのままRUNNING
7.task02がRUNNING→wup_tskでtask01を起床、そのままREADYに遷移
8.task01がRUNNING→しかしすぐにslp_tskでWAITINGに遷移
9.task02がRUNNING→しかしすぐにslp_tskでWAITINGに遷移
10.task03がRUNNING→rot_rdqでキューを廻すが、特に切り替えるべきタスクが存在しないのので、そのまま
11.task03がslp_tskでWAITINGに遷移
12.全てのタスクがWAITINGになってしまったので、”idle”が実行される。
と言った流れで動きます。
※実際にはここまで激しく実行状態を他のタスクに依存するプログラムはやらない方が良いと思う。
プログラムサイズが大きくなって見通しが悪くなった時、うっかり全部のタスクがWAITINGなんて事になりかねない。つまりデッドロックしてしまう。
機能分割と言う点でも、なるべく他のタスクとの繋がりは、疎結合にした方が。
※取り敢えず2章の途中まで読んだのですが、もっとも基本的なサービスコールを、図解を使ってみっちり解説されている所が、μITRONの入門本としてきわめて適していると思います。これだけ基本的なサービスコールを解説してあれば、後は拡張機能みたいなもので、自分で使いながら十分習得可能だと思います。
図解 μITRONによる組込みシステム入門 - H8マイコンで学ぶリアルタイムOS
- 作者: 武井 正彦
- 出版社/メーカー: 森北出版
- 発売日: 2008/01/29
- メディア: 単行本(ソフトカバー)
2008-03-01 14:38
nice!(0)
コメント(0)
トラックバック(0)
コメント 0