2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[stm]STM32F4でGDBする(Windows)

Posted at

NUCLEOでWindowsからGDBでデバッグするために、texane/stlinkをcygwinでビルドしようとしていた。
やっぱり、mbedで作ったソースもデバッグしたいし。
pyOCDというのが検索すると出てくるのだが、STM32F4には対応していないようなことが書かれていた(PyOCDを使ってmbedをデバッグする(2015年末ver))ので、試さずにやめた。

GNU ARM Eclipseの"How to install the debugging components?"には、STM32 ST-Link UtilityはWindowsだけだけどGDB Serverがあるように書かれていたのだけど、ドキュメントに"gdb"という単語が出てこないので、あきらめた。

その次の候補が、texane/stlinkだ。

ネットで検索すると、AtollicのTrueSTUDIOに同梱されているgdbserverを使う手段がよく出てくるのだが、うちでやってもerror 37が発生して接続してすぐ切断されてしまう。
マイコン徹底入門:"ST-LINK(VL Discovery)を用いてのデバッグについて"に、あるバージョン以降ではTrueSTUDIO以外から使用できなくなったようだ、ということが書かれていた。
Atollic付属のgdbを使っても同じだったので、まあ今回はあきらめよう。
(TrueSTUDIOが嫌なわけではなく、今使っている環境だけで作ってみたいだけ。)


長くなったが、ここまでは前置きだ。
本題は、最初に書いた通り、texane/stlinkのビルドについてだ。

うちはWindows7なので、ビルドはcygwinで行った。
Linux向けみたいだから、Macでもいけるのかな?

手順は書いてある通り。

$ ./autogen.sh
$ ./configure
$ make

autogenは動いたが、configureでいろいろ詰まった。

まず、pkgconfigがない、と怒られた。
これは、インストーラで追加すれば良かった。

その次が、こういうエラーだ。

./configure: line 4427: syntax error near unexpected token `USB,'
./configure: line 4427: `PKG_CHECK_MODULES(USB, libusb-1.0 >= 1.0.0,,'

検索したところ、これはcygwinというよりも、パスの設定らしい。
環境変数PKG_CONFIG_PATHに設定がいるとのこと。
ふんふんと設定してconfigureしたのだが、やっぱりエラーが出る。
指定したパスにはlibusb-1.0.pcがあるので、正しいはずなのだが。

何気なくautogen.shをもう一度実行したら、configureも通った。
うん、PKG_CONFIG_PATHを設定したら作り直すこと。


makeしたら、いろいろ実行ファイルができる。
st-util.exeを実行すると、ポート4242で待ち受けているので、eclipseなどでデバッグを開始する。
うちでは「GDB Hardware Debugging」を使っている。
ビルドしたELFファイルを"C/C++ Application"に、GDBの実行ファイルを"GDB Command"に、ポート番号を"Port Number"に(IPアドレスはlocalhostにした)。
実行してすぐ止めたいときは、Runtime OptionsでSet breakpoint atでmainを指定しておくとよいのではないか。

2
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?