Sat 11/07, 2009

OpenOCD on Linux [Electronics ]

先日、製作した OpenOCD FRISK Debugger を Linux で使ってみるための準備。私の手元の環境では 0.3.0 はダメで開発版の 0.4.0-dev-00090-gca00483 だと少々の変更で動いた。0.3.0 でダメな理由については追求していない。

まず、最新のソースコードを取得する。0.3.0 辺りからリポジトリが git に変わっているため、git-core の準備も必要になる。Linux は Ubuntu 8.04 LTD を使用した。

$ sudo apt-get install git-core
$ mkdir work
$ cd work
$ git init
$ git clone git://openocd.git.sourceforge.net/gitroot/openocd/openocd

以降の手順は README に記載されている通りでよい。まずは bootstrap. libtool などが用意されていないとエラーになるから必要に応じて apt-get で導入する。

$ cd openocd
$ ./bootstrap
+ aclocal
+ libtoolize --automake --copy
+ autoconf
+ autoheader
+ automake --gnu --add-missing --copy
configure.in:18: installing `./compile'
configure.in:6: installing `./install-sh'
configure.in:6: installing `./missing'
doc/Makefile.am:1: installing `doc/mdate-sh'
doc/Makefile.am:1: installing `doc/textinfo.tex'
src/Makefile.am: installing `./depcomp'
Makefile.am: installing `./INSTALL'
Bootstrap complete: you can './configure --enable-maintainer-mode ....'
$ cd ..

続いて libftdi. ftd2xx でも良いが、こちらを使用した。build には libusb-dev が必要になる。

$ wget http://www.intra2net.com/en/developer/libftdi/download/libftdi-0.16.tar.gz
$ tar xzf libftdi-0.16.tar.gz
$ cd libftdi-0.16
$ ./configure
  :
$ make
  :
$ sudo make install
  :
$ sudo ldconfig
$ cd ../openocd

ようやく openocd の build. configure では --enable-maintainer-mode を付けないとドキュメントまで make し、ちょっと面倒になる。今回は --enable-ft2232_libftdi オプションのみだが、使用する JTAG I/F に応じてオプションを指定する。取得した時点のコードでは src/target/target.c の default_mmu 関数が "Not implemented." となっていて、そのまま build して実行すると、MMU の無い LPC2388 での使用時にエラーとなるから、0.3.0 のリリース版と同じ内容に変更した。
[2009.11.09] default_mmu 関数については開発者メーリングリストで 11/8 に同様のパッチが流れた。

$ ./configure --enable--ft2232_libftdi --enable-maintainer-mode
$ cd src/target
$ cp target.c target.c.org
$ vi target.c
  :
$ diff target.c target.c.org
499,502d498
< #if 1
<       *enabled = true;
<       return ERROR_OK;
< #else
505d500
< #endif
$ cd ../..
$ make
    :
$ ./src/openocd --version
Open On-Chip Debugger 0.4.0-dev-00090-gca00483 (2009-11-06-22:45)
$URL$
For bug reports, read
	http://openocd.berlios.de/doc/doxygen/bugs.html
$ sudo make install
$ 

gcc toolchain は CodeSourcery のもの(http://www.codesourcery.com/sgpp/lite/arm/portal/subscription?@template=lite [Sourcery G++ Lite 2009q3-68 for ARM EABI , IA32 GNU/Linux TAR] を使った。

$ sudo tar xjf arm-2009q3-68-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 -C /usr/local
$ export PATH=/usr/local/arm-none-eabi/bin:$PATH
$ 
以降は zus さんの「ARM LPC2388 開発環境構築方法」に倣って I/F LPC2388 基板での動作確認をおこなった。Eclipse は gcc/gdb の wrapper だから基本は変わらない。

Posted by masato at 11:36 PM
このエントリーのトラックバックURL: http://bird.dip.jp/cgi-bin/mt/mt-tb.cgi/1734
コメントする

おそらく携帯電話等からは投稿できません。日本語文字列を含まないコメントやトラックバック、および当サイトへの言及を含まないトラックバックは御遠慮いただいております。また、90日以上経過した記事へのコメントはできません。










名前、アドレスを登録しますか?