| Real-Time Workshop User's Guide | ![]() |
実行ファイルを対話的にダウンロードし実行する
自動ダウンロードが不可能な場合は、プロセスを終了するためにはTornadoツールを使わなければなりません。これは3つのステップがあります。
VxWorksターゲットに接続する
ビルドプロセスが終了した後で、ホストワークステーションとVxWorksターゲットを接続できます。最初のステップは、ホスト上のTornadoツールとターゲット上のターゲットエージェント間の通信に使われるターゲットサーバを起動することです。これは、コマンドラインとTornado開発環境内のいずれかから行われます。DOSコマンドラインからは、つぎのようにします。
tgtsvr target_network_name
リアルタイムプログラムをダウンロードする
リアルタイムプログラムをダウンロードするには、WindSh内からVxWorks のldルーチンを使います。WindSh (wind shell)は、コマンドラインやTornado開発環境内からも実行されます。たとえば、/home/my_working_dirディレクトリにあるファイルvx_equal.loをダウンロードしたい場合は、WindShプロンプトでつぎのコマンドを使います。
cd "/home/my_working_dir" ld <vx_equal.lo
ビルド中にStethoScopeオプションが選択されている場合は、StethoScopeライブラリをロードする必要があります。ldライブラリルーチンは、Tornado User's Guideで説明されています。
プログラムの実行
リアルタイムプログラムは、(ビルドプロセス中にexternalモードを選択した場合)タスクを起動してモデルコードを実行したり、Simulinkと通信を行う関数rt_main()を定義します。ビルドプロセス中にこのオプションを選択した場合は、StethoScopeを初期化します。
関数rt_mainは、rt_main.cアプリケーションモジュール内で定義されます。このモジュールは、matlabroot/rtw/c/tornado ディレクトリにあります。
関数rt_mainは6個の引数をもち、つぎのANSI Cの関数プロトタイプで定義されます。
SimStruct *rt_main(void (*model)(SimStruct *),char *optStr,char *scopeInstallString,int scopeFullNames,int priority,int TCPport);
表 12-1 はこの関数の引数の一覧です。
| 引数 |
説明 |
model |
生成コード内のエントリポイント関数へのポインタ。この関数名は、Simulinkモデル名と同じです。モデルの |
optStr |
終了時間(
です。 |
scopeInstallString |
StethoScopeにインストールされる信号を決定するキャラクタ文字列です。取り得る値は、つぎの通りです。
|
scopeFullNames |
この引数は、StethoScopeがアクセスする信号の全階層付きブロック名またはブロック名のみを使うかどうかを決定します。取り得る値は、つぎの通りです。 |
priority |
プログラムの最高の優先度のタスク( |
TCPport |
externalモードのソケット接続が使うポート番号。有効な値の範囲は、256 から65535です。何も指定しない場合は、ポート番号はデフォルトで17725です。 |
テンプレートmakeファイルによりoptStrを渡す. tornado .tmfのPROGRAM_OPTSマクロを使って、-wおよび-tf オプション(表12-1のをoptStrを参照)rt_mainに渡すことができます。PROGRAM_OPTSは、つぎの形式で文字列を渡します。
-opt1 val1 -opt2 val2
たとえば、以下は、終了時間を無限大に設定し、シミュレーションを開始する前にSimulinkからのメッセージを待つようにプログラムに指示します。
PROGRAM_OPTS = "-tf inf -w"
rt_mainの呼び出し. プログラムの実行を開始するには、WindShからrt_mainを呼び出します。たとえば、
sp(rt_main, vx_equal, "-tf 20 -w","*", 0, 30, 17725)
vx_equalモデルの実行を開始します。tBaseRateタスクに対してデフォルトの優先度(30)を使います。 | プログラムのビルド | DOSをターゲットとするリアルタイムのアプリケーション | ![]() |