リアルタイムOS技術コラム
[組込み製品、リアルタイムOS、組込みドライバーの開発依頼は、フィールドデザインまでお気軽にお問い合わせください。]
リアルタイムOSの技術的な側面を随時更新していきます。ここでは、なぜ、こうなっているかという部分を書いていきたいと思います。
難易度は、3段階で★の個数が多いほうが、難しい内容、細かい内容になっています。
要望や誤りなどあれば、お気軽にお知らせください。
※組込みOSという定義は非常にあいまいです。組込み製品に使われるOSなので、FreeRTOS, uItron, Linux, Windows Embedded等さまざまなものがあります。そのため、ここでは、FreeRTOS, uItronなどのリアルタイムOSと言われているものに関して説明していきます。
※リアルタイムOSという定義もあいまいです。良く言われているのが、割り込みからの応答時間が保証できるOSということかと思います。つまり、ハードウェアの割り込みがかかってから、タスクで処理するまでの時間が10usなど規定できるOSということです。この条件を守るには、プリエンプティブなOSであること、タスク優先度を持つOSであること、が挙げられます。ここではこの定義でリアルタイムOSという言葉を利用します。
リアルタイムOS入門
まず、基礎知識として、下記のことを知っておく必要があります。
リアルタイムOSの構造
リアルタイムOSの利用例
一般的なOSのシステムコールの使い方はマニュアルを見れば、書かれているかと思います。ここでは、実際の組込み製品等で利用される例を中心に説明をしていきます。
- タスク管理の使い方(★)
- セマフォの使い方(★)
- キューの使い方(★)
- 割り込み制御の使い方(★★)
- メモリ管理の使い方(★)
- タイマーの使い方(★)
よくある不具合とOSのデバッグ方法
- データの受け渡し時の排他処理抜け(★)
- データの上書き(★)
- IOアクセスの排他処理抜け(★)
- IOポーリングによるCPU占有(★)
- メッセージのrace condition(★)による誤作動
- スタックオーバーフロー(★★)
- セマフォで止まらない(★★)
- ローカル変数の利用(★★)
- 割り込み内のログ表示(★★)
- 状態ポーリングによる例外処理の抜け(★★)
弊社では、組込み製品のコンサルティング、ハードウェア/ソフトウェア開発・評価の事業を行っております。
ご検討、ご相談については、下記よりお問い合わせください。