よくある質問(FAQ)

アセンブラにて定義した変数をテスト条件の変数に指定することはできますか?

テスト対象について

質問

アセンブラにて定義した変数をC言語のポインタとして使用しているのですが、CSV雛形作成の画面にて変数一覧から該当の変数を指定し、入出力変数に追加すると「アセンブララベル設定」が表示され、ポインタとして認識されません。アセンブララベルを通常のポインタと同様に使用したいときはどのようにすればよいのでしょうか?

アセンブラ変数: .EXPORT _tmp

C言語ポインタ宣言: extern unsigned char *tmp;

使用例:
switch(*tmp)
{
・・・
}

回答

テストCSVファイルに登録可能な変数は、実体が宣言されているC言語のシンボルに限られます。アセンブラで定義された変数など、C言語のシンボルがない場合の回避策としては、以下のいずれかの方法があります。
・アセンブラで定義した変数をC言語での定義に書き換える。
・「定義名リスト」機能を使用し、対象のアドレスをシンボル化して使用する。

<参考:定義名リストについて>
定義名とは、カバレッジマスター内で使用可能な「仮想的な変数名」の定義です。「モジュールテスト用CSV雛形作成」画面の「定義名リスト」タブから作成できます。
「I/O登録」ボタンを押し、以下の項目を設定します。
 定義名: ポインタの参照先やメモリ領域に付けたい任意の名称
 種別: 「アドレス」を選択
 アドレス・型: 実際のアドレスと型(ビット幅)を指定
これにより、設定した「定義名」を通常のC言語変数と同様にCSVファイルで使用できるようになります。

下の例の場合、ポインタ *tmp(参照先アドレスが 0x00800064 の場合)に対して定義名 TMP(型:unsigned char)を作成しています。これは、アドレス 0x00800064 に「unsigned char TMP」という変数がマッピングされている状態と等価です。CSVファイルにこの「定義名」を登録することで、*tmp が指す実体に対してテストデータを入力することが可能になります。