LDRA Integration for Model References

提供: T-VEC Wiki
移動: 案内検索

LDRAツールとの統合(モデルリファレンス使用時の考察)

モデルリファレンスに対するSimulink/Stateflow のコード生成プロセスは、モデルリファレンスしないコードとは異なります。以下、T-VEC Tester for Simulink and Stateflow 4.1.0 を活用する方法を簡単に紹介します。

おおよそのプロセスは、以下のようになります:

  • RTW Build:コード生成
  • モデルをT-VECトランスレータにエクスポート
  • Translate - 予めLDRAテストドライバー用スキーマを準備し、モデルを変換
  • T-VEC VGS に読込み
  • T-VECで、テストベクタを生成
  • Update Model Reference Names and Types (モデルリファレンス名、タイプをアップデートする)
  • テストドライバーをビルド
  • 生成される .tcf ファイルをコードディレクトリにコピー
  • LDRAを起動
  • コードの読込み
  • TBrun を起動し、テストケースを読込ませる
  • 実行に関わる追加条件を検討

LDRA用スキーマの参照

LDRA専用のスキーマがあります:

C:\T-VEC\translators\sl2tvec\test_drivers\testbed_tcf_generic.sch

これを下図のように、Advance Translation Options に設定します。

Advanced Translation Options

モデルリファレンス名、タイプをアップデートする

モデルリファレンス用にコードが生成される場所は、以下のようになります。

Model Reference Code Generation

エクスポートされたモデル情報から抽出される名前は、その他のコード生成動作と一致する必要はありません。以下のツールが提供されています。

get_rtw_types.bat --- Download it here get_rtw_types.bat

簡単な方法は、これをc:\t-vec\bin directory に置きます。これに対するパス変数は、通常定義されていることでしょう。そして以下のツールボックス(Tools | ToolboxにあるVGS Toolbox)を以下のように設定します:

VGS Toolbox with get_rtw_types

VGS Projectウインドーからサブシステムを選択し、Toolsメニューから、get_rtw_types を実行します。そうすることで、オブジェクトマッピングを更新します。そして、この作業を必要となる各サブシステムごとに実行します。

VGS Toolbox Execution of get_rtw_types

get_rtw_types は何をしているか。

これは、perlプログラムで2つのパラメータを取ります:

  • プロジェクトディレクトリ
  • サブシステム名

そして、サブシステムに伴う .h ファイルを調べ、オブジェクトマッピングをアップデートします。オブジェクトマッピングは、コードの名前をユーザ定義の次の変数に提供します:<simulinkSubsystemName> x2つのキーとなる、ユーザ定義変数をアップデートします。

 <rtDWStruct> - defines the localDW variable relating to state data
 <rtZCEStruct> - defines the localZCE variable relating to triggers

テストドライバーのビルド

参照されるスキーマにより .tcf ファイルがテストドライバーディレクトリに生成されます。状態図に関連するサブシステムは、それらの関わるサブシステムは親側の .tcf ファイルに包含されます。従属するサブシステムへのリファレンスは、以下のように、それを定義するユーザ定義変数が用いられます。

<dependencies> = '__triggerRisingB,signal_light__sf__a';

LDRAの実行

LDRAテストツールは、非常に豊富な機能を持っていますが、ここでは単純に生成したLDRAツール用スクリプトである .tcf ファイルのコードに対するテスト実行にのみ言及します。

コードファイルのロード

LDRA Testbed ツールの以下のメニューから、

File | Select File

テスト対象となる自動生成されたコードを選択する。

TBrun を起動し、新しいテストシーケンスをロードする

生成された .tcf ファイルをTBrun にロードする。.tcf ファイルをコードディレクトリにコピーしておけば、テストシーケンスの一環で.tcf をロードすることも出来ます。あるいは、テストドライバーディレクトリからロードさせることもできるでしょう。

Execute the Run Drivers コマンド、または別でコマンドを実行する:

  • ドライバーの生成
  • ドライバーのビルド

そして、

  • ドライバーの実行
  • 実行結果の処理

注)LDRAによるドライバー生成プロセス中に以下のような確認ウインドーが開いた場合は、None を選択。

Pre/Post Includes might be necessary

以下のような場合に、Pre Includes が必要になるでしょう:

#define ldra_qq_bool_used

or

typedef bool boolean

Post Includes は、ステートマシンに関わる定数の設定など。