ホーム > ユーザーサポート > FAQ カバレッジマスターwinAMS

FAQ / カバレッジマスターwinAMS

スタブ作成に関する問題

A05_01 : カバレッジマスターゼネラルでシミュレーションエラーが発生します。対処方法を教えてください。

【質問】
カバレッジマスターゼネラルでシミュレーションエラーが発生します。対処方法を教えてください。


【回答】
発生しているエラーによって原因が異なります。

Invalid Operation code found [code = 16] (pc=a0000000)

スタートアップコマンドファイルが原因です。下図のようにして内容を確認してください。

「@reset」という行があればこれが原因です。この行をコメントアウト、もしくは削除してください。

Invalid Operation code found [code = 16] (pc=00000000)

2つの原因が考えられます。

1) テスト対象関数が割り込みハンドラとしてビルドされている。

カバレッジマスターは割り込みハンドラをテスト対象関数にすることができません。通常の関数として再ビルドしてください。

CasePlayer2内蔵のゼネラル用コンパイラは、ソースファイル上に「#pragma interrupt...」という行があると、それ以降に定義された関数が(関数名にかかわりなく)全て割り込みハンドラになるという仕様ですので、注意が必要です。たとえば

#pragma interrupt func

void func(void)
{
  ...
}

//#pragma interrupt test

void test(void)
{
  ...
}

というソースの場合「#pragma interrupt test」の行がコメントアウトされているにも関わらず、test()は割り込みハンドラになります。「#pragma interrupt func」の行もコメントアウトする必要があります

2) テスト対象関数からライブラリ関数が呼び出されている。

カバレッジマスターゼネラルではライブラリ関数を使用することができません。ライブラリ関数を呼び出す箇所は、「0番地ジャンプ」の命令になります。

Generalコードのオブジェクトを生成します...

%XLNKV-W: Undefined symbol "_stdlib" referenced, at location "40007a58h".
   in "test" unit, "C_test" section
C:\SL1\SL1 0 Management\support\etc\FAQ\A05_01\test\cp2\cp2.xlo が生成されました。

CasePlayer2によるゼネラルコード生成時に上記のような警告が出ていたら、これが原因です。

この場合呼び出されているライブラリ関数のダミー関数を作成することによって回避します。ダミー関数は空関数でOKです(戻り値の型、引数の数と型はライブラリ関数の実体に合わせてください)。

 

関連サポート情報検索

【サポート情報サイト内Google検索】

検索キーワード: ゼネラルシミュレーションエラー

他のキーワード検索


参考情報・リンク