FAQ 1007085 : ウォッチドッグ割り込みが発生した場合に、メモリのチェックサムを計算し、エラーが発生したら、cstartアドレスからリスタートをしています。しかし、リスタート後に割り込みを受付なくなってしまいました。PSWもマスク・レジスタも確認しましたが、割り込みは可能状態になっていました。

おそらく、ウォッチドッグ割り込みとしてノンマスカブル割り込みを使用されているのではないでしょうか。
この場合には単に cstartアドレスからリスタートしたのでは、 その後の動作はノンマスカブル割り込み処理としての実行となります。
このために、割り込みを受け付けなくなっています。

この状態を抜けるには、必ず RETI命令を実行してノンマスカブル割り込み状態から抜ける必要があります。
具体的な方法としては PSWと分岐先アドレス (この場合cstart) をスタックに積み、 RETI命令で分岐先アドレスに分岐します。

以下の例では 0番地からベクタを読んで、そこに分岐しています。

    MOV     PSW,#02H ; ダミーのPSWをセット
    MOVW    AX,!0    ; リセットのベクタ値を取り込んでいます。
    PUSH    PSW
    PUSH    AX       ; これでRETIのためのスタックを準備
    RETI             ; これでリセット・ベクタに分岐

適用製品

78K ファミリ
他にご質問がございましたら、リクエストを送信してください