マイクロコントローラにウォッチドッグがあり、キックされていない場合はプロセッサをリセットします。私のアプリケーションはしばらくの間正常に動作しますが、ウォッチドッグがキックされなかったため、最終的にリセットされます。プログラムをステップ実行すると、正常に動作します。
これをデバッグするにはどのような方法がありますか?
編集: 結論: バグを見つけた方法は、ウォッチドッグのパンくずリストでした。
高低の ISR ベクトルを持つ PIC を使用しています。High ベクトルは LED マトリックスを処理し、Low ベクトルはタイマー ティックを処理することになっていました。しかし、両方の ISR ハンドラーを高いベクトルに配置しました。そのため、LED マトリックス ISR を無効にし、タイマー ティック ISR にサービスが必要な場合、プロセッサはタイマー ティックを処理するために低い ISR でスタックしますが、タイマー ティック ハンドラーはそこにありませんでした。
ブレッドクラムは、私の検索を led マトリックスを処理し、具体的には LED マトリックス割り込みを無効にする関数に限定しました。