
第5回 リアルタイムプロセス(RTP)後編
前回に引き続きVxWorks6.xよりあらたに導入されたリアリタイムプロセスについて、解説します。今回は、cmdモードのシェルを使ったデバッグ方法とRTPの応用例などをご紹介いたします。
1. CMDモード
カーネルシェルやターゲットシェルにて通常のインタープリタモードからCMDモードに切り替えることで、Linuxライクな環境でデバッグができます。リアルタイムプロセス(RTP)のプログラムは、vxe拡張子のファイルで、実行する時、そのままファイル名を指定しますので、Linuxのような実行ができます。以下のコマンドが使用できます。
実行するRTPのパラメータもLinuxと同様ですので、パイプやリダイレクトを使いながらのデバッグができます。
では、RTPを実行してみましょう。

この実行例は、付属しているサンプルを実行したものです。(参照:New→Example→Wind River Real Time Process Sample Project)
RTPはメモリコンテキストを切り替えることができるので、①philosophersに切り替えるとlkupにてprintfの検索では3つ該当しますが、②全体に切り替えると10以上該当するのがわかります。RTPからの標準入出力はコンソールウインドウに表示されます。複数のRTPを実行している場合は下記のようにRTPごとにコンソールを切り替えることができます。③

RTPは、ユーザ空間で動作しているのと、カーネル空間や他のRTPとのメモリ保護機能があるので、非常にデバッグがしやすいというメリットがあります。そこで、デバッグ目的に通常のVxWorksアプリケーションをRTPで実行、デバッグすることもできます。わずかな修正でRTP化できますので、デバッグが終了したら、通常のVxWorksアプリケーションに戻す手法もあります。その場合、下記のようにdefineでプログラムを使い分けるとコンパイルのみで使い分けられます。
2回に分けてRTPをご紹介しました。パフォーマンスではNativeには若干およびませんが、リアルタイム性も確保できていますし、安全面、デバッグにおいて多くのメリットがありますので、ぜひご利用ください。
Technical Tips一覧 »ページの先頭へ戻る »

