リアルタイム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. 状態ポーリングによる例外処理の抜け(★★)



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