よくある質問(FAQ)

割り込みハンドラを単体テスト対象にしたいのですが、どのようにすれば良いですか?

テスト対象について

質問

割り込みハンドラの関数をテスト対象として指定しましたが、カバレッジマスターのシミュレーションが終了せず、結果が出力されません。どのようにすれば良いですか?

回答

カバレッジマスターwinAMSでは、検証対象とする関数にリターン命令が含まれている必要があります。割り込みハンドラにはリターン命令が含まれず、また引数の受け渡し方法も通常の関数とは異なるため、そのままでは検証対象とすることができません。割り込みハンドラの関数をテストするためには、割り込み関数としての宣言を外して再コンパイルを行い、一般関数と同じオブジェクト構造に変更する必要があります。
例えば、割り込みハンドラが

__interrupt void irq_handler()
で定義されている場合、

#define __interrupt
をヘッダファイル等に追加することで、__interrupt部分を無効化することができます。この上で再コンパイルしてください。