目次
前
次
RTOSを使う
RTOS(Real Time Operating System)は、制御で
使われるOSです。
出来ることは、以下。
タスクを時間か優先順位に従って、切り替える。
規定時間以内に、与えられた処理を終了する。
タスクは、関数かサブルーチンと考えてOK。
RTOSは、自動車、ロボット、家電品に広く
使われていますが、ファームウエアとして
ソースコードを目にする機会は少ない特徴
があります。
タスクという用語に面食らうので、ごく一部の人
しか、RTOSを利用したファームウエア作成に従事
していないように見えます。
タスクは、ユーザーが定義する関数かサブルーチンと
割り切ってしまいます。
RTOSが担当するのは、タスクを切り替えるタイミング
ですが、これを時間ごとにしていくのか、優先順位に
するのかを選択するのは、ユーザー。
国産RTOSにはTRONがありますが、制御で使われる
μTRONを知っておいた方がよいでしょう。
TRONのよいところは、緩い標準化であり、システムに
合わせてRTOSが備えるシステムコールを削減と追加を
認めていること。
また、動作と対象を3文字で表現し、システムコール
をまとめています。
システムコールの例は、以下。
wai_tsk
rsm_tim
sus_semk
3文字だと、動作と対象ともに覚えやすく
システム規模とは関係なしで、統一されて
いるため、自動車の運転につかうペダルの
Accell
Breake
Cratch
と似たようにシステムコールを使える長所
があります。
制御にRTOSを導入するとき、タスクをどう
分割して割当するのかが、問題になります。
次の考え方に沿っていけば、うまくいくこと
が多いようです。
- 時間待ちは、RTOSのシステムコールに一任
- センサー処理は、タスクひとつを、まるまる割当て
- タスク間のデータ交換は、メールボックスを利用
- 競合発生の可能性があれば、セマフォを利用
- 優先順位処理は、ラウンドロビン処理でうまくいかないとき適用
ラウンドロビンとは、タスクを時間ごとに、順番に
実行する方式で、Unixをはじめとしたマルチタスク
かつマルチユーザーで採用されている方式です。
目次
前
次