組込み・ファームウェア
ウォッチドッグタイマをリセットする(キックする)処理を、1 msごとのタイマ割り込みハンドラの中で無条件に行うのが良くない理由として正しいものはどれか。
- Aウォッチドッグは、割り込みの中からは触れない決まりだから
- Bメインの処理が無限ループなどで止まっても割り込みは動き続けるので、ウォッチドッグが異常を検出できなくなるから
- C1 msごとにキックすると、ウォッチドッグが壊れるから
答えと解説を見る
正解:B. メインの処理が無限ループなどで止まっても割り込みは動き続けるので、ウォッチドッグが異常を検出できなくなるから
ウォッチドッグは、決められた時間内にキックされないとマイコンをリセットして、暴走から立ち直らせる仕組みです。しかしタイマ割り込みは、メインの処理が止まっていても動き続けるので、そこで無条件にキックすると、止まっていることに気づけません。メインのループやタスクがそれぞれ正常に一巡したことを確かめ、すべてそろったときだけキックするのが基本です。
- A. そのような決まりはありません。
- B. 正しい。正常に動いていることを確かめてからキックします。
- C. 頻繁にキックしても壊れません。