・現在、SH3(SH7709S)を使ったシステムで、数か月に1回、不定期にCPUの例外処理が発生しています。
例外が発生した場合 spc等の情報をログに残すようにしています。その情報をもとに
原因や例外の発生場所を探しているのですが、メモリダンプして下記SPCのアドレスを検索しても
ヒットしません。(メモリマップ上に存在しないアドレスのため)
・このあと、どのように調査や対策をしたらよいのか途方に暮れている状況です。
どなたか少しでも参考になる方法がありましたら教えて下さい。
(例外は工場現場でしか発生しないため、デバッガを接続して調査することができません)
(メモリマップ)
ROM(FMEM) 0000_0000~0007_FFFF
SRAM 0C00_0000~0C0F_FFFF
(例外事例)
spc=3A5D3869,ssr=0100,evnt=00E0 (命令アドレスエラー)
spc=07070707,ssr=0101,evnt=00E0(命令アドレスエラー)
spc=06060870,ssr=0100,evnt=0180(一般不当命令)
(参考)
ソースコードの解析ではスタックや配列のオーバーフローが起きそうな箇所は見つかりませんでした。
各種測定器でノイズを測るとほかの正常なシステムと同等レベルでした。
他に必要な情報がありましたらご連絡ください。
ご協力ありがとうございます。
例外処理中に、ベクタベースレジスタの値やベクタテーブルの内容をチェックする、という視点は抜けていました。実装して次回発生時に確認します。
現在、関数ログの実装を進めているところです。
ご回答ありがとうございます。