Rt-Linux
概 要
  RT-Linuxの構成
  RT-Linuxデバッグツールの構成
  デバッグ・ツールを使う場合の変更点
  デバッグ・ツール上でgdbを使用する上での注意点
  RT-LINUXのシステム・コール

概 要
RT-LinuxはLinuxのカーネルを変更してリアルタイム・モニタを追加したものであり、フリーソフトとして Webサイトhttp://luz.cs.nmt.edu/`rtlinux/で公開されています。また、秀和システムより LINUXリアルタイム計測/制御開発ガイドブックが刊行されています。
RT-Linuxを簡単に説明すれば、Linuxのタイマー割込みを横取りし、リアルタイム・モニタのシステムタイマー割込みとして使用するものです。
タイマー割込みはもともと赤の破線矢印のように使用されておりましたが、これを取りやめ、新たに導入したスケジューラに割込みを渡します。スケジューラは実行可能なリアルタイムタスクがあれば、優先度に従いリアルタイムタスクへ制御を渡します。 実行すべきリアルタイムタスクがなければ、本来のLinuxへ制御を渡すことになります。
このツールはRT-Linuxの開発の容易化を計るため作成しました。 RT-LinuxはLinuxのカーネルでの作成のため、デバッグツールは無いに等しい環境での開発を強いられます。また、エラー発生と同時にシステムダウンを引き起こすため、その開発は容易ではありません。
そこで、RT-Linuxの環境をユーザプロセス上に作り上げ、ユーザプロセス上でデバッグする方法を提供するものである。
RT-Linuxの構成
LINUXカーネル上では、システムコール及びライブラリの使用に制限があるので、パイプ通信を通してユーザ・プロセス上でUNIX標準システムコール等を処理する。
RT-Linuxデバッグツールの構成
RT−Linuxの構成をそのまま、デバッグツールへ移行する。ただし、デバッグツールはユーザプロセス上で動作するため、IO命令、割込みは使用できない。そこで、RT-LinuxにIOModuleと名づけたモジュールを組み込みサービスを引き受ける形で、IO命令及び割込みを実現する。


デバッグ・ツールを使う場合の変更点
RT-Linux DTは、開発環境をなるべく変更しないで動作するように配慮したが下記の点を変更しなければならない。
 1.インクルードファイル
モジュールではなくユーザプロセスのため、Cソースの最初にある #include <module.h>はコメント・アウトする。

 2.I/O命令
I/O命令はRT_Xxxxxxへ変更する。Xxxxx部分は"outb"等のI/O命令である。これは、Makefileの変更を最小にするためである。

 3.rt_fifo関係
rt_fifoはunix標準のFIFOへ変更したため、デバック開始前に予め、必要とするデバイスファイルを作成しておく。必要あればrt_fifoを削除してから。
mknod /dev/rtf0 p
mknod /dev/rtf1 p
mknod /dev/rtf2 p
………
なお、デバッグ・ツールが使用している/dev/rtf61〜/dev/rtf63はUNIX標準fifoではなくrt_fifoの形で作成しておかなければならない。

デバッグ・ツール上でgdbを使用する上での注意点
タスク切り替えをを実行するコードをNEXTコマンドでステップ実行することは使用不可である。フリーズする危険性が高い。STEP及びCONTINUEは使用可能である。

当然であるが、ユーザプロセス上で実行するため、10msec以下の時間単位でのタスク制御は不可能である。予想タスク切り替え時間は少なくとも数10mSec以上にしなければならない。例えば、優先度が高く500マイクロ秒ごとに周期起動するタスクがあれば、このタスクしか走らないことになる。

Return
Guest No.