2016-08-12 420 views
1

Nucleo STM32L031をAC6 STM32ワークベンチ(eclipse)で使用しています。stm32l0:MIコマンドの実行に失敗しました。 vFlashEraseパケットでフラッシュ消去エラー。

アプリケーションを作成してデバッグモードに移行しましたが、アプリケーションに別の関数を追加するまでうまくいきました。 「new_function」を削除/コメントすると、ソフトウェアは再びデバッグモードに入ることがあります。しかし、 "new_function"をコードに追加してデバッグするとエラーが発生し、デバッグモードにはなりません。

Error: Error in final launch sequence 
Failed to execute MI command: 
load C:Project_STM32L031K6-Nucleo\\Debug\\Project.elf 

Error message from debugger back end: 
Error erasing flash with vFlashErase packet 
Error erasing flash with vFlashErase packet 

このエラーは、例えばTIM21_Init(のみ、この特定の「new_function」ためだけでなく、他の機能のために発生していない)STM32Cubeによって生成されました。

解決方法を検索しようとしましたが、見つかりませんでした。

おかげ ビエン

+0

私はまったくよく慣れていない(自分で書いたことがない)いくつかのコードを実行している同様の問題があります。私があなたの質問を正しく理解していれば、これは私が実行しているコードにいくつかのバグを含んでいるでしょうか?あなたは解決策を見つけましたか? –

答えて

1

これはOpenOCDの問題ではなく、あなたのコードに問題があります。デバッガのコマンドファイルが "stlink-v2-1"を参照していたのに、実際には "stlink-v2"が表示されているときにこの問題が発生しました。私はSTM32F0 Discoveryボードを使用しています。

Nucleoボードには「stlink-v2-1」があると思いますので、私とは反対の問題が発生する可能性があります。 "Run menu> Debug Configurations> Debugger> OpenOCD setup"の設定が正しいデバッガに設定されていることを確認してください。

enter image description here

デバッグコンフィギュレーション・ファイルは、そのファイルを開き、次のような行を探してください(「デフォルトのスクリプトを使用する」または「ローカルスクリプトを使用する」オプションが選択されている)が使用されている場合:

source [find interface/stlink-v2.cfg] 

私の場合、プロジェクトウィザードはstlink-v2-1を参照していたテンプレートを作成していました。上記に変更すると問題が解決しました。

UPDATE:

私はまた、Eclipseがクラッシュしたときに、この問題を持って、バックグラウンドで実行されているOpenOCDを残しました。実行

$ ps aux | grep openocd 

そして、デバッガが実行されていないときにOpenOCDのインスタンスが実行されている場合は、それを強制終了します。

関連する問題