2016-03-22 5 views
1

私は最近、STM32F7ディスカバリーボード[1]を購入しました。ボードにはst-linkデバッガーが組み込まれているため、openocdを使ってフラッシュしようとしています。私は私のツールチェーン(私はmakefilesとarm-none-eabi-gccを使用しています)を使用していますが、Eclipseを使ってボードをフラッシュしてグラフィカルなデバッガを用意したいと思います。openocdでフラッシュとデバッグSTM32F7の発見

そうするためには、私は彼らのgitのレポからopenocdをインストールし、私は次の設定ファイルでそれを起動します。

source [find board/stm32f7discovery.cfg] 

そして、私は腕なし - eabi-で日食で次のコマンドを使用しますボードをフラッシュするGDB:

target remote localhost:3333 
monitor flash protect 0 0 11 off 
monitor flash erase_address 0x08000000 0x100000 
monitor flash write_image erase "/absolute/path/hello-world.hex" 0 ihex 
monitor reset halt 

私は日食の私のデバッグチェーンを設定するために使用チュートリアルから第1を含め、コマンドの別のリストを試してみました[2]、または他のSOの記事[3] [4] 。ときどき書き込み操作が失敗し、正しくないPC(たとえば、リセットハンドラーの場合はアドレス0x080004acではなく0xfffffffe)になります。したがって、CPUは存在していなくても(メモリの外側に)何かを実行しようとしますが、失敗します。

あなたは何が間違っているか考えていますか?小さな精度:私はLinuxで作業しています。

乾杯、

アントワーヌ。

[1]:www.st.com/web/en/catalog/tools/FM116/SC959/SS1532/LN1848/PF261641?sc=stm32f7-discovery

[2]:vedder.se/2012/12 /デバッグ-stm32f4-使用-openocd-GDBアンド日食/

[3]:stackoverflow.com/questions/5535110/stm32-gdb-openocd-commands-and-initialization-for-flash -and-RAM-デバッグ

[4] [5]

をstackoverflow.com/questions/17003519/stm32f4discovery-openocd-telnet-uploading-demo-program github.com/texane/stlink

[編集]

私もgithubのからST-Linkプログラムを使用しようとした[5]とGDBにロードするために、私は同様のエラーを取得:

2016-03-23T09:22:22 INFO src/stlink-common.c: Attempting to write 32768 (0x8000) bytes to stm32 address: 134217728 (0x8000000) 
2016-03-23T09:22:22 WARN src/stlink-common.c: Failed to unlock flash! 
EraseFlash - Sector:0x0 Size:0x8000 
Flash page at addr: 0x08000000 erased 
2016-03-23T09:22:22 INFO src/stlink-common.c: Finished erasing 1 pages of 32768 (0x8000) bytes 
2016-03-23T09:22:22 INFO src/stlink-common.c: Starting Flash write for F2/F4/L4 
2016-03-23T09:22:22 INFO src/stlink-common.c: Successfully loaded flash loader in sram 
enabling 32-bit flash writes 
size: 32768 
2016-03-23T09:22:23 INFO src/stlink-common.c: Starting verification of write complete 
2016-03-23T09:22:23 ERROR src/stlink-common.c: Verification of flash failed at offset: 0 
+0

あなたはtexaneのST-Linkプログラムを試みることができますopenocdの代わりにgithubから。それはST部品にとってはかなりうまく機能する傾向があります。プログラミング後に明示的なハードウェアリセットや電源の再投入を試みましたか? –

+0

私もgithubからst-linkを試しましたが、私はボードをフラッシュすることはできません。私はいつもエラーが出ます(編集された記事を参照)。私はそれをプログラムすることができないので、ボードの電源を入れ直すと何もしません。 – Antoine

+0

これでst-flashコマンドラインツールを試してみてください.GDBからのフラッシュが動作するかどうかはわかりません。特定のチップ/ボードに関する既知の問題についてgithubをチェックすることもできます。 –

答えて

0

私は問題を解決することができました。私は内部オプションのバイトを変更しなければならないことが判明し、これはボードをフラッシュしようとしているときに私をブロックしていました。

私はst-linkユーティリティを使用してデフォルト値に戻しましたが、すべて正常に機能しています。代わりにopenocdを使用することはおそらく可能ですが、まだ試していません。誰かがそれをやる方法を知っていれば、それを分かち合うのは彼のほうがいいでしょう。オプション・バイトの詳細については

、あなたはリファレンスマニュアルを見てすることができます[1]、80ページ

83に、[1]: http://www.st.com/st-web-ui/static/active/en/resource/technical/document/reference_manual/DM00124865.pdf

+0

オプションバイトで何を意味するか教えてください。 STM32F7内部のものは、どのようにそれらをあなたのコードファイルに統合するのですか?)またはELFか...? – Olaf

+0

@Olafはい、私はより詳細な私の投稿を編集しました。私は内部オプションバイトについて話していました。私は意図的にそれらを変更しませんでしたが、それは偶然に起こったに違いありません(私はOSをSTM32F7に移植しているので、非常に実験的です)。 – Antoine

関連する問題