おはようございます。バックアップPC(BPC)について質問があります。BPCの値が0になる理由・原因を教えてほしいです。BPCは割り込みハンドラが実行されるとき、PCの値を保持するためにあるレジスタだと最近知りました。そこで独立ウォッチドッグタイマ(IWDT)を導入しているRXマイコン(RX651CPU使用)でBreakポイントを割り込みハンドラに設定して確認してみたところ、レジスター項目にあるBPCの値は0でした。IWDTのOpen関数を設定してからループ処理を実行することで、ウォッチドッグタイマのカウントをアンダーフローさせています。PCの方は割り込みハンドラのアドレス値がしっかり入っています。本来であればループ処理を行った関数のアドレス値が入っているのではないか、なぜ0なのかが分からなかったので質問させていただきました。質問に答えるうえで必要な情報などがありましたら、お手数をおかけしますが追記していただければと思います。
BPCは高速割り込み時に使われると説明されていますが、検証に用いた割り込みは高速割り込み設定ですか?
すいません、高速割り込みかどうかどこを確認したら判断できますでしょうか?探しているのですがよくわかりませんでした。教えていただけますでしょうか。
知らないということは高速割り込み指定になってないですね。スマートコンフィギュータで開発しているなら割り込みタブを開いて該当するベクタ番号の高速割り込みチェックをONしてください。
そもそもIWDT自体がノンマスカブル割り込みなのでBPCではなくスタック領域に置かれます。ですのでBSPは使われないことが分かりました。返信ありがとうございました。