So-net無料ブログ作成

Smalight OS本が来る前に [Smalight OS]

P1010002.jpg本の方は明日の配送予定となっています(※本は届いております)が、先にルネサス北セミからパスワードを頂きましたので、森北出版のサイト上からSmalight OSのお試し版(と言っても機能はver.3そのままで、ターゲットのマイコンが3664Fと3694Fに制限されているのみ)を落してきて、手元の3694Fマイコン(例のトラ技の付録基板)上で動かしてみました。

いきなりSmalight OSを使ったアプリケーションを用意できないので、サンプルとして入っている”u-ap”を動かしています。
smalightos_001.png実際にパスワード申請し、落して見てください。
この”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

図解 μITRONによる組込みシステム入門 - H8マイコンで学ぶリアルタイムOS

  • 作者: 武井 正彦
  • 出版社/メーカー: 森北出版
  • 発売日: 2008/01/29
  • メディア: 単行本(ソフトカバー)



nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。