確かに、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://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)
posted with amazlet at 12.08.10
川内 康雄
CQ出版
売り上げランキング: 86815
CQ出版
売り上げランキング: 86815
BeagleBone Rev A5 Kit (並行輸入品) 小型 マザーボード beagleboard 小型サーバ用 電子工作 コントローラ用 Linux
posted with amazlet at 12.08.10
beagleboard.org
売り上げランキング: 125432
売り上げランキング: 125432
Netduino(Arduinoピンコンパチ.NETマイコンボード)
posted with amazlet at 12.08.10
Secret Labs LLC
売り上げランキング: 47073
売り上げランキング: 47073