RL78/l1Aでマイコンリセットしてしまいます

R5F107AEで意図しないタイミングでソフトリセットが発生します。
RESFレジスタによりリセット要因を調査すると、「WDT」や「パリティエラー」や「不正命令」など、
色々な要因でリセットしていますが、「不正メモリアクセス」でリセットすることが多いです。
・PCとUART通信を1sec毎に行っていて、リセット発生頻度は連続通電で1日に1回程度です。
・リセットタイミングは、送信転送完了割り込み処理を終了し次の1バイトを送信時にリセットしています。
・CS+のスタックメモリ見積ツールを使用し、スタック領域破壊は無いことを確認しました。
・リンクディレクティブファイルに問題ないことはメーカーに確認しました。
・今のところE2Liteを接続してのオンチップデバッグではリセットしていません。
・EEPROMエミュレーション・ライブラリPack01 パッケージVer2.1.0を使用しています。

コードとコード生成ツールを確認した限りでは変な割り込みはなさそうですが(再度調査します)
何かマイコンリセットしてしまう要因は何か考えられますでしょうか。アドバイスいただけたらと思います。

Parents
  • -donkey-様 わわい様

    アドバイスありがとうございます。

    地道にコード確認して箇所を絞っていこうと思います。

    (もし他にも何か思いつきましたらご教授いただけると幸いです)

    進展有りましたらまたご連絡いたします。

Reply
  • -donkey-様 わわい様

    アドバイスありがとうございます。

    地道にコード確認して箇所を絞っていこうと思います。

    (もし他にも何か思いつきましたらご教授いただけると幸いです)

    進展有りましたらまたご連絡いたします。

Children
  • 最適化オプションを有効にしてたら無効(-O0)にしてみても同じ結果かを見ると良いかもです。あと、通信バッファはstatic修飾していますよね?

  • お返事遅くなりましてすみません。
    最適化オプションはコンパイルオプションの最適化であっていますか?有効にしていたので、無効にして違いを見てみます。

    通信バッファは最終というか大元はstatic修飾していますが、途中ポインタで渡していたりするのでポインタ操作も怪しそうなので順に追いながら確認してみます。

    ありがとうございます。

  • わわいです

    > #も一つ面倒なのが、不正アクセスをしててもエラーとして表に出てこないことだったり。

    これの対策(?)のために、一旦完成したコードをいろいろ最適化を変えて動作させたり、メモリ配置を変えて動作させたりして挙動が変わらないことを確認する、ってことをやる場合もありますね