例えば、STM32F4シリーズでは、定義されていない命令を実行するとフォールトが発生します。ですが、8ビットマイコン「STM8ファミリ」(STマイクロエレクトロニクス製)ではリセットがかかるなど同じメーカーでも対応は異なります。「リセットステータスレジスタ(RST_SR))の中のILLOPF:不正オプコードリセットフラグが立ちますので、ほかのリセットと区別できます。STM8ファミリには、ソフトウェアリセットの機能がありませんので、これをソフトウェアリセットの代わりに使えます。
マイコンの仕様で、内部のリセット信号を外部端子に出力する機能をもっている製品があります。STM32F4シリーズやSTM8ファミリでは、ウォッチドッグタイマーのリセットやソフトウェアリセット(または、不当命令リセット)が発生すると、NRST端子が20マイクロ秒間ローに落ちる機能があります。ユーザーはNRST端子をモニターすることによって、マイコン内部で発生したリセットを検出することができます。
過去にリセットに関してユーザーから問い合わせのあった不具合例は、主に次の2つです。
1.の場合は、前述したようにリセットの発生後、再起動した際に、ウォッチドッグタイマーリセットやソフトウェアリセットなどのフラグをチェックします。並行して外部リセット端子もチェックして、外部からリセット信号が入っていないかもチェックします。リセット要因が分かったら、統合ツールなどのデバッグ機能を使って原因を追究します。
2.の場合は、1.と同じようにフラグをチェックすれば、リセット要因が分かりますが、さらに、繰り返し周期が一定か否かで、リセットのタイミングが推測できます。リセット要因と発生タイミングが分かったら、統合ツールなどのデバッグ機能を使って原因を追究します。
(次の記事を読む)
Copyright © ITmedia, Inc. All Rights Reserved.