Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page

RL78のソフトリセット

こんにちは、SANSと申します。

 

RL78/L1Cを使って開発を進めていますが、起動時にリセットがかかってしまいmain()に戻る→少し処理が進んでまたmain()に戻るというループする挙動をします。

H/Wに問題はないようです(問題ないというのは推測ですが、少なくともVDDは安定しています)。

このようにソフト的にリセットが掛けられてしまう状況って何がありますか。

何でも良いので考えられる要因が思い当れば列挙して頂きたく。

ちなみにWDTはOFFにしています。

 

曖昧な質問であることは承知していますが、宜しくお願いします。

  • > 何でも良いので考えられる要因が思い当れば列挙して頂きたく。
    >
    > ちなみにWDTはOFFにしています。

    WDTがONになってるのでは
  • リセット要因は確認されてますか?
  • わわいです
    一番よくあるのは、どこかでポインタの扱いを間違っていて、コードが暴走して、たまたまリセットエントリから実行してしまってる、というのがあります。

    > H/Wに問題はないようです
    何かをデバッグする、という場面において、
    XXXのはず、とか、XXXはこれだから、という言葉が出てくると、大抵そこがその不具合の原因です。

    #1割2割ならともかく、半数以上がそこが原因となるとねえw
  • In reply to fujita nozomu:

    CS+からWDTをOFFに設定しています。
    それにもかかわらずONと設定されることってあるんでしょうか。
  • In reply to fujita nozomu:

    いえ、特定できていません。
  • In reply to わわい:

    ポインタ関係ですね。見直してみます。
    >何かをデバッグする、という場面において、XXXのはず、とか、XXXはこれだから、という言葉が出てくると、大抵そこがその不具合の原因です。
    もちろんこの固定概念が危険であることは承知しています。HWからももう一度探ってみます。。。
  • In reply to SANS:

    SANSさん NAKAといいます。
    fujita nozomu先生が確認して欲しいと言われているのは、RESF(リセット・コントロール・フラグ・レジスタ)を確認してみたら?ということではないでしょうか?WDTなのか?不正命令なのか?RAMパリティエラーなのか?不正メモリアクセスなのか?LVDなのか?とかの状態が残っていると思います。RL78/L1Cにはないのでしょうか?
  • In reply to NAKA:

    回答の意図を読み取れませんでした、すみません。
    RESFは確認済みで、特にフラグは立っていませんでいた。
    仕様書によるとフラグが立っていないときは外部リセットと書いていますが、これは何を指すのでしょうか。
  • In reply to SANS:

    はじめまして、Hosです。

    外部リセットはRESET端子に信号を入力してCPUをリセットすることを指します。
    RESET端子の信号を確認してみましょう。
    ハードウェアマニュアルの24章に詳しい記載がありますね。

    また、1点気になったのですがSANSさんがRESFを確認する前のタイミングで、すでにRESFをクリアしていたのでALL 0に見えているといったことはないですか。
    ハードウェアマニュアルでは「RESFレジスタのデータを読み出すことにより,TRAP, WDTRF, RPERF, IAWRF, LVIRFフラグはクリアされます。」とあります。
    コード生成でリセット要因確認にチェックを入れていると、R_CGC_Get_ResetSourceで読み込んでしまっていたりします。
  • In reply to SANS:

    > CS+からWDTをOFFに設定しています。
    > それにもかかわらずONと設定されることってあるんでしょうか。

    ・設定間違い
    ・ツールの不具合
    等フツーに可能性として考えられるので、上のような思い込みは排除すべきでしょう。確認すべきは「自分が期待する結果となる様設定がされているか」ではなくて「自分が期待する結果となっているか」の方です。
    具体的には
    ・生成された HEX ファイル中のオプション・バイト
    ・デバガにコードを読み込んだ際のメモリダンプ中のオプション・バイト
    辺りを確認することとなります。
  • In reply to SANS:

    > いえ、特定できていません。

    リセット要因確認の際のタイミングについては下記のスレッドが参考になると思います。
    『RL78/G14 リセット要因 RESFについて』
    japan.renesasrulz.com/.../rl78-g14-resf
  • In reply to Hos:

    Hosさん

    RESFを正しく出力できました。2度呼び出しており、それがフラグ無しに見えてしまっているのが原因でした。
    リセットの内容はRAMパリティエラーでした。
    おかげさまで一歩前進しました。
    ありがとうございます。
  • In reply to fujita nozomu:

    ありがとうございます、参考にします。
  • In reply to SANS:

    NAKAです。

    RPERDIS = 1; //RAMパリティエラー・リセット発生を禁止

    としたらどうでしょう?

  • In reply to NAKA:

    RAMパリティエラーリセットを禁止することで、期待する動作をするようになりました。
    ありがとうございます。

    次々と追加で質問して申し訳ないのですが、2点気になっています。
    1.RAMパリティエラーが発生する要因は何なのか
    ・コードを見ないと結局わからないと思いますが、よくある事例や確認方法などがあれば教えてください。

    2.RAMパリティエラーを無効にしても安全なのか
    ・当然セーフティを外すわけなので何か弊害が出そうです。最悪マイコンの故障につながるなどはあるのでしょうか。

    どうぞよろしくお願いします。

Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page