組込み・ファームウェア

ウォッチドッグタイマをリセットする(キックする)処理を、1 msごとのタイマ割り込みハンドラの中で無条件に行うのが良くない理由として正しいものはどれか。

  1. Aウォッチドッグは、割り込みの中からは触れない決まりだから
  2. Bメインの処理が無限ループなどで止まっても割り込みは動き続けるので、ウォッチドッグが異常を検出できなくなるから
  3. C1 msごとにキックすると、ウォッチドッグが壊れるから
答えと解説を見る

正解:B. メインの処理が無限ループなどで止まっても割り込みは動き続けるので、ウォッチドッグが異常を検出できなくなるから

ウォッチドッグは、決められた時間内にキックされないとマイコンをリセットして、暴走から立ち直らせる仕組みです。しかしタイマ割り込みは、メインの処理が止まっていても動き続けるので、そこで無条件にキックすると、止まっていることに気づけません。メインのループやタスクがそれぞれ正常に一巡したことを確かめ、すべてそろったときだけキックするのが基本です。

  • A. そのような決まりはありません。
  • B. 正しい。正常に動いていることを確かめてからキックします。
  • C. 頻繁にキックしても壊れません。
この分野を解く 分野ページへ

組込み・ファームウェアのほかの問題

  1. 組込み機器のブートローダの役割として正しいものはどれか。
  2. 無線でファームウェアを書き換える(OTA更新)機器で、フラッシュメモリにファームウェアを置く場所を2つ(A面とB面)用意する理由として正しいものはどれか。
  3. 電池で動く組込み機器で、マイコンのスリープモードを使う主な目的はどれか。
  4. あるセンサ機器は、全体の1%の時間だけ10 mAで動き、残りの99%の時間は10 µAで眠っている。平均の消費電流に最も近いものはどれか。
  5. 小さなマイコンのファームウェアで、mallocなどの動的なメモリの確保を避けることが多い理由として正しいものはどれか。