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を指定しておくとよいのではないか。