割り込みハンドラの関数をテスト対象として指定しましたが、カバレッジマスターのシミュレーションが終了せず、結果が出力されません。どのようにすれば良いですか?
よくある質問(FAQ)
割り込みハンドラの関数をテスト対象として指定しましたが、カバレッジマスターのシミュレーションが終了せず、結果が出力されません。どのようにすれば良いですか?
カバレッジマスターwinAMSでは、検証対象とする関数にリターン命令が含まれている必要があります。割り込みハンドラにはリターン命令が含まれず、また引数の受け渡し方法も通常の関数とは異なるため、そのままでは検証対象とすることができません。割り込みハンドラの関数をテストするためには、割り込み関数としての宣言を外して再コンパイルを行い、一般関数と同じオブジェクト構造に変更する必要があります。
例えば、割り込みハンドラが
__interrupt void irq_handler()
で定義されている場合、
#define __interrupt
をヘッダファイル等に追加することで、__interrupt部分を無効化することができます。この上で再コンパイルしてください。