2

GCC、GDB、および OpenOCD を使用して、STM32F4Discovery ボードでプログラムを開発しています。

すべて問題なくコンパイルできますが、デバッグを開始すると、プログラムは Reset_Handler ではなく HardFault Handler に直接進みます。

また、フラッシュへの書き込み時に頻繁に問題が発生します。通常、プログラムをフラッシュに正しく書き込むには 2 回の試行が必要です。

この Cortex M4 プロセッサまたは他の Cortex M4 プロセッサでこの種の問題が発生したことのある人はいますか?

4

1 に答える 1

2

私はすでにSTM32F1で同じ問題を抱えていました.gdbとOpenOCDを使用していて、デバッグを開始するときにデバッガがハードフォールトハンドラに直接ジャンプしていました. 私の場合、LD リンカ スクリプトでエントリ ポイントが定義されていないことが問題でした。ENTRY ディレクティブで定義したところ、機能しました。その ENTRY ディレクティブがなければ、set $pc=Reset_Handlerデバッグできるようにするには、GDB で手動で行う必要がありました (プログラム カウンターをリセット ハンドラーに設定する)。

別の問題として、マイクロコントローラをリセットするように OpenOCD を構成する方法が考えられます。OpenOCD の起動時に正しいコマンド ライン パラメータを渡す必要があります。こちらを参照してください。

OpenOCD リセット構成

于 2014-03-14T20:38:39.550 に答える