2012年08月10日

STM32F4-discoveryデバッグ環境にOpenOCDをセットアップ

前回の記事(STM32F4 DiscoveryをUbuntuから試食してみました)で、書き換え&デバッグ用にstlinkというOSS(Open Source Software)のモジュールを使用していました。

確かに、LEDチカチカとかprintfでわーいとか、そんな程度のテスト時のバイナリ(数十キロバイト)はうまーく書き換えも、gdbでのデバッグも問題なさそうだったのですが、ではーと準備した400キロバイトのバイナリファイルをgdbから読み込ませようとしたら、大量のlibusbのエラーが発生・・・

stlinkはOSSですからソース見たら対応出来るのかもしれません、が、やはりOpenOCD試したほうが良いかなと思い返し、OpenOCDをセットアップしました。結果的には、420kバイト程度のROM書き換えが発生するデータでデバッグ含めてうまく動いています。なのでOpenOCDに乗り換えます。

実は、ちょっとOpenOCDに乗り換えて時間が立ってしまいましたので、本記事に詳細な記述ができてませんが、以下の手順に沿って実施いただければセットアップ可能のはずです。

なお、今回も、環境はUbuntu 10.04LTS(64bit)です。私は、MacOSXのVMware Fusionで動かしています。

●準備物
・OpenOCD 0.6.0のソース一式(http://www.freddiechopin.info/en/download/category/10-openocd-dev)(注:20121031リンク間違ってました)
こちらからダウンロードしました。
http://sourceforge.net/projects/openocd/files/openocd/

・ねむい様公開のWindows用OpenOCD一式
http://nemuisan.blog.bai.ne.jp/?cid=7947
のOpenOCDのところで公開されてるファイル(ocd.tar.gz)

1. OpenOCDを展開・コンパイル
展開した直下にあるINSTALLに従い、configure&make&make installしましょう。
私は/usr/local/bin/以下に配置しました。パス通しました。

2. ねむい様のocd.tar.gzを展開
Windows用のバイナリ一式部分はUbuntuでは使用しません。使用させていただくのは、スクリプト一式になります。
私は~/ocd以下に展開しました。

では、gccが吐いたelfをターゲットに書いてみましょう。STM32F4-Discoveryを接続し、以下のコマンドを実行します。
$ openocd -s (2.で展開したディレクトリ/tclへのパス) -f target/stm32f4x_stlink_flash.cfg -c "mt_flash 書き換えるバイナリ.elf"


私個人の環境の場合ですと、例えばこんな感じで。
$ openocd -s /home/yishii/ocd/tcl -f target/stm32f4x_stlink_flash.cfg -c "mt_flash /home/yishii/STM32F4/main.elf"


デバッグしたいなら、
$ openocd -s (2.で展開したディレクトリ/tclへのパス) -f target/stm32f4x_stlink_flash.cfg

ポート番号はデフォルトは3333です。

あとは普通にarm-none-eabi-gdbから接続して下さい。これは
http://projectc3.seesaa.net/article/283806921.html
に記載したst-linkでのデバッグ時のgdbの操作と変化なしでーす。

STM32マイコン徹底入門 (TECH I Processor)
川内 康雄
CQ出版
売り上げランキング: 86815




Netduino(Arduinoピンコンパチ.NETマイコンボード)
Secret Labs LLC
売り上げランキング: 47073

ラベル:STM32F4 OpenOCD GDB
posted by いしいっち at 12:11| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

STM32F4-discoveryデバッグ環境にOpenOCDをセットアップ

記事URL移動いたしました。こちらご参照下さい。

http://projectc3.seesaa.net/article/285823341.html
ラベル:STM32F4 OpenOCD GDB
posted by いしいっち at 12:08| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする