リアルタイムOS技術コラム

 
[組込み製品、リアルタイムOS、組込みドライバーの開発依頼は、フィールドデザインまでお気軽にお問い合わせください。]

リアルタイムOSの技術的な側面を随時更新していきます。ここでは、なぜ、こうなっているかという部分を書いていきたいと思います。
難易度は、3段階で★の個数が多いほうが、難しい内容、細かい内容になっています。

要望や誤りなどあれば、お気軽にお知らせください。

※組込みOSという定義は非常にあいまいです。組込み製品に使われるOSなので、FreeRTOS, uItron, Linux, Windows Embedded等さまざまなものがあります。そのため、ここでは、FreeRTOS, uItronなどのリアルタイムOSと言われているものに関して説明していきます。

※リアルタイムOSという定義もあいまいです。良く言われているのが、割り込みからの応答時間が保証できるOSということかと思います。つまり、ハードウェアの割り込みがかかってから、タスクで処理するまでの時間が10usなど規定できるOSということです。この条件を守るには、プリエンプティブなOSであること、タスク優先度を持つOSであること、が挙げられます。ここではこの定義でリアルタイムOSという言葉を利用します。


リアルタイムOS入門

まず、基礎知識として、下記のことを知っておく必要があります。

  1. リアルタイムOSの歴史(★)
  2. リアルタイムOSの基本動作(★)

リアルタイムOSの構造


リアルタイムOSの利用例

一般的なOSのシステムコールの使い方はマニュアルを見れば、書かれているかと思います。ここでは、実際の組込み製品等で利用される例を中心に説明をしていきます。

  1. タスク管理の使い方(★)
  2. セマフォの使い方(★)
  3. キューの使い方(★)
  4. 割り込み制御の使い方(★★)
  5. メモリ管理の使い方(★)
  6. タイマーの使い方(★)

よくある不具合とOSのデバッグ方法

  1. データの受け渡し時の排他処理抜け(★)
  2. データの上書き(★)
  3. IOアクセスの排他処理抜け(★)
  4. IOポーリングによるCPU占有(★)
  5. メッセージのrace condition(★)による誤作動
  6. スタックオーバーフロー(★★)
  7. セマフォで止まらない(★★)
  8. ローカル変数の利用(★★)
  9. 割り込み内のログ表示(★★)
  10. 状態ポーリングによる例外処理の抜け(★★)



弊社では、組込み製品のコンサルティング、ハードウェア/ソフトウェア開発・評価の事業を行っております。
ご検討、ご相談については、下記よりお問い合わせください。