SH3(SH7709S)のCPU例外発生時に、例外発生場所の特定の方法を教えてください。

・現在、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(一般不当命令)

(参考)

ソースコードの解析ではスタックや配列のオーバーフローが起きそうな箇所は見つかりませんでした。

各種測定器でノイズを測るとほかの正常なシステムと同等レベルでした。

他に必要な情報がありましたらご連絡ください。

Top Replies

Parents
  • > SH3(SH7709S)のCPU例外発生時に、例外発生場所の特定の方法を教えてください。

    例外発生場所は特定できてるのでは?

    > (例外事例)
    > spc=3A5D3869,ssr=0100,evnt=00E0 (命令アドレスエラー)
    > spc=07070707,ssr=0101,evnt=00E0(命令アドレスエラー)
    > spc=06060870,ssr=0100,evnt=0180(一般不当命令)

    特定されたいのは例外が発生しているおかしなアドレスにどこの関数から飛んでいってるかではないでしょうか?

Reply
  • > SH3(SH7709S)のCPU例外発生時に、例外発生場所の特定の方法を教えてください。

    例外発生場所は特定できてるのでは?

    > (例外事例)
    > spc=3A5D3869,ssr=0100,evnt=00E0 (命令アドレスエラー)
    > spc=07070707,ssr=0101,evnt=00E0(命令アドレスエラー)
    > spc=06060870,ssr=0100,evnt=0180(一般不当命令)

    特定されたいのは例外が発生しているおかしなアドレスにどこの関数から飛んでいってるかではないでしょうか?

Children
No Data