ホーム > ユーザーサポート > FAQ カバレッジマスターwinAMS
【質問】
アセンブラにて定義した変数をC言語のポインタとして使用しているのですが、CSV雛形作成の画面にて変数一覧から該当の変数を指定し、入出力変数に追加すると「アセンブララベル設定」が表示され、ポインタとして認識されません。アセンブララベルを通常のポインタと同様に使用したいときはどのようにすればよいのでしょうか?
アセンブラ変数: .EXPORT _tmp
C言語ポインタ宣言: extern unsigned char *tmp;
使用例:
switch(*tmp)
{
・・・
}
【回答】
テストCSVファイルに登録可能な変数は、変数の実体を宣言しているC言語のシンボルのみです。回避策としましては、アセンブラで定義した変数をC言語で書き換えて頂くか、もしくは、*tmpのアドレスを定義名リストの機能を使用してシンボル化して使用する方法があります。
<参考:定義名リストについて>
定義名とは、カバレジマスターの中で使用可能な、仮想的な変数名の定義です。モジュールテスト用CSV雛形作成の画面の「定義名リスト」タブで作成できます。
「I/O登録」のボタンを押し、「定義名」にポインタやメモリに付けたい名称を設定、「種別」はアドレスを選択し、アドレスと型(ビット幅)を指定することで、「定義名」に付けた名称を使って、通常のC言語変数と同じようにCSVファイルの変数指定に使用できます。
下の例の場合、上記のソースのポインタ *tmp(アドレスが0x00800064の場合) の実体を示す定義名(仮の変数)TMPを作成しています。C言語のイメージで言い換えれば、アドレスが0x00800064にマッピングされた「unsigned char TMP」の変数を作成したのと同じ事になります。
CSVファイルにこの定義名を登録するだけで、*tmpの指す実体にテストデータを入力できます。