2017-05-05 6 views
-1

システムでWatch Dogを使用しています。 5秒以内にリロードされない場合、トリガーされます。ウォッチドッグリセットの前に実行されているコードの一覧を見たいと思います。接続されたデバッガを使用して)自分のコード内の命令リストをログに記録することができます。STM32f429ZIデバッガなしで呼び出しスタックをログに記録する

+0

あなたはどのオペレーティングシステムを使用していますか?どうして 'ptrace'を試してみませんか?また、スタックフレーム上の関数を識別するためにデバッグシンボルが必要になります。デバッガが常に接続されないようにするには、ウォッチドッグトリガ後*をアタッチします。 –

+1

ようこそスタックオーバーフロー!あなたの質問を編集して[これまでに行ったコード](http://whathaveyoutried.com)を表示してください。問題を抱えているコードのアウトライン(ただし、好ましくは[mcve])を含める必要があります。次に、特定の問題を解決することができます。 [ask]も読んでください。 –

+0

'print(" Flag ");のような表示を追加して、コードがどこまで止まってから停止するかを知ることができます。 – Badda

答えて

0

それを行うためのいくつかの方法があります。

  1. 使用シリアルデバッグ出力とUSART(別のマイクロ)
  2. 購入USB->シリアルコンバータを使用してデータを取得し、出力するためのUARTのいずれかを使用しますが、データ。
  3. 極端な状況では(例えば、ピンにアクセスできない場合)、必要な情報をフラッシュするために(もしあれば)使用してください。
0

シンプルでありながら少し高価な解決方法があります。 Cortex M4コアはトレース命令をサポートしています。したがって、トレース信号がピンに配線されているかどうかをチェックする必要があります(大きなパッケージ> 100ピンが必要)。起動後にトレースを有効にし、HWトレーサを接続するだけで、コアが実行したすべてのインスタンスが記録されます。

関連する問題