OpenOCDのインストール(Ubuntu)

Flyswatter2は格安のJTAGボードなのですが、そのためソフトウエアは付属していません。

OpenOCDを使って接続します。
ということでUbuntu10.4向けのインストール手順です。

基本は以下のURLの通りです。
http://www.tincantools.com/wiki/Flyswatter2_Pandaboard_How_To

Linuxは以下です。これに従って作業していきます。
http://www.tincantools.com/wiki/Compiling_OpenOCD_Linux

(1)必要なパッケージのインストール

$ sudo apt-get install libtool autoconf texinfo libusb-dev
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
automake autotools-dev libltdl-dev
提案パッケージ:
autoconf2.13 autoconf-archive gnu-standards autoconf-doc gettext libtool-doc
automaken gfortran fortran95-compiler gcj texlive-base texlive-latex-base
texlive-generic-recommended texinfo-doc-nonfree
以下のパッケージが新たにインストールされます:
autoconf automake autotools-dev libltdl-dev libtool libusb-dev texinfo
アップグレード: 0 個、新規インストール: 7 個、削除: 0 個、保留: 63 個。
2,757kB のアーカイブを取得する必要があります。
この操作後に追加で 9,691kB のディスク容量が消費されます。
続行しますか [Y/n]? y
取得:1 http://jp.archive.ubuntu.com/ubuntu/ lucid/main autoconf 2.65-3ubuntu1 [772kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu/ lucid/main autotools-dev 20090611.1 [64.1kB]
取得:3 http://jp.archive.ubuntu.com/ubuntu/ lucid/main automake 1:1.11.1-1 [608kB]
取得:4 http://jp.archive.ubuntu.com/ubuntu/ lucid/main libltdl-dev 2.2.6b-2ubuntu1 [196kB]
取得:5 http://jp.archive.ubuntu.com/ubuntu/ lucid/main libtool 2.2.6b-2ubuntu1 [524kB]
取得:6 http://jp.archive.ubuntu.com/ubuntu/ lucid-updates/main libusb-dev 2:0.1.12-14ubuntu0.2 [40.4kB]
取得:7 http://jp.archive.ubuntu.com/ubuntu/ lucid/main texinfo 4.13a.dfsg.1-5ubuntu1 [553kB]
2,757kB を 4s で取得しました (640kB/s)
未選択パッケージ autoconf を選択しています。
(データベースを読み込んでいます ... 現在 140147 個のファイルとディレクトリがインストールされています。)
(.../autoconf_2.65-3ubuntu1_all.deb から) autoconf を展開しています...
未選択パッケージ autotools-dev を選択しています。
(.../autotools-dev_20090611.1_all.deb から) autotools-dev を展開しています...
未選択パッケージ automake を選択しています。
(.../automake_1%3a1.11.1-1_all.deb から) automake を展開しています...
未選択パッケージ libltdl-dev を選択しています。
(.../libltdl-dev_2.2.6b-2ubuntu1_amd64.deb から) libltdl-dev を展開しています...
未選択パッケージ libtool を選択しています。
(.../libtool_2.2.6b-2ubuntu1_amd64.deb から) libtool を展開しています...
未選択パッケージ libusb-dev を選択しています。
(.../libusb-dev_2%3a0.1.12-14ubuntu0.2_amd64.deb から) libusb-dev を展開しています...
未選択パッケージ texinfo を選択しています。
(.../texinfo_4.13a.dfsg.1-5ubuntu1_amd64.deb から) texinfo を展開しています...
man-db のトリガを処理しています ...
doc-base のトリガを処理しています ...
Processing 2 added doc-base file(s)...
Registering documents with scrollkeeper...
install-info のトリガを処理しています ...
autoconf (2.65-3ubuntu1) を設定しています ...
autotools-dev (20090611.1) を設定しています ...
automake (1:1.11.1-1) を設定しています ...
update-alternatives: using /usr/bin/automake-1.11 to provide /usr/bin/automake (automake) in auto mode.

libltdl-dev (2.2.6b-2ubuntu1) を設定しています ...
libtool (2.2.6b-2ubuntu1) を設定しています ...
libusb-dev (2:0.1.12-14ubuntu0.2) を設定しています ...
texinfo (4.13a.dfsg.1-5ubuntu1) を設定しています ...



(2)libFTDIのダウンロードとコンパイル
FTDI driverのダウンロード
http://www.intra2net.com/en/developer/libftdi/download.php
libftdi-0.19.tar.gzをダウンロードします。
(最新は0.20のようです)

解凍
gzip -dc libftdi-0.19.tar.gz | tar xvf -

解凍したディレクトリでヘッダファイルを/usr/includeにコピーしてから/usr/local/includeからシンボリックリンクを張る
$ cd libftdi-0.19/src
$ sudo cp ./ftdi.h /usr/include/
$ cd /usr/local/include
$ sudo ln -s /usr/include/ftdi.h ftdi.h
$ ls -l
合計 0
lrwxrwxrwx 1 root root 19 2011-11-13 21:36 ftdi.h -> /usr/include/ftdi.h

makeの実行とインストール
$ cd ~/libftdi-0.19
$ ./configure
$ make
$ sudo make install

/usr/local/libにライブラリがコピーされるはず
$ cd /usr/local/lib
$ ls -l
-rw-r--r-- 1 root root 88284 2011-11-13 21:43 libftdi.a
-rwxr-xr-x 1 root root 951 2011-11-13 21:43 libftdi.la
lrwxrwxrwx 1 root root 17 2011-11-13 21:43 libftdi.so -> libftdi.so.1.19.0
lrwxrwxrwx 1 root root 17 2011-11-13 21:43 libftdi.so.1 -> libftdi.so.1.19.0
-rwxr-xr-x 1 root root 71599 2011-11-13 21:43 libftdi.so.1.19.0
drwxr-xr-x 2 root root 4096 2011-11-13 21:43 pkgconfig

/usr/libからシンボリックリンクを張る

$ cd /usr/lib
$ sudo ln -s /usr/local/lib/libftdi.a libftdi.a
$ sudo ln -s /usr/local/lib/libftdi.la libftdi.la
$ sudo ln -s /usr/local/lib/libftdi.so.1.19.0 libftdi.so.1.19.0
$ sudo ln -s /usr/local/lib/libftdi.so.1.19.0 libftdi.so
$ sudo ln -s /usr/local/lib/libftdi.so.1.19.0 libftdi.so.1

$ ls -l libftdi*
lrwxrwxrwx 1 root root 24 2011-11-13 21:50 libftdi.a -> /usr/local/lib/libftdi.a
lrwxrwxrwx 1 root root 25 2011-11-13 21:50 libftdi.la -> /usr/local/lib/libftdi.la
lrwxrwxrwx 1 root root 32 2011-11-13 21:51 libftdi.so -> /usr/local/lib/libftdi.so.1.19.0
lrwxrwxrwx 1 root root 32 2011-11-13 21:51 libftdi.so.1 -> /usr/local/lib/libftdi.so.1.19.0
lrwxrwxrwx 1 root root 32 2011-11-13 21:50 libftdi.so.1.19.0 -> /usr/local/lib/libftdi.so.1.19.0



(3)OpenOCDのダウンロード、パッチの適用とコンパイル

http://prdownload.berlios.de/openocd/openocd-0.5.0.tar.gz

openocd-0.5.0.tar.gzをダウンロードする。

解凍
$ gzip -dc openocd-0.5.0.tar.gz | tar xvf -

Patching OpenOCDリンク「Media:Tincantools-openocd-b0.12.patch」を右クリックして先ほど解凍したディレクトリにパッチを保存する。

パッチを当てる
$ cd openocd-0.5.0
$ patch -p1 -i Tincantools-openocd-b0.12.patch
patching file src/jtag/drivers/ft2232.c
patching file tcl/board/hammer.cfg
patching file tcl/board/olimex_pic32mx.cfg
patching file tcl/interface/flyswatter2.cfg
patching file tcl/interface/flyswatter3.cfg
patching file tcl/interface/flyswatter.cfg
patching file tcl/target/amdm37x.cfg

Makefileの生成とビルド及びコピー
$ sudo ./configure --disable-werror --enable-ft2232_libftdi
$ sudo make
$ sudo make install

$ cd /usr/local/bin
$ ls -l
合計 5264
-rwxr-xr-x 1 root root 20391 2011-11-13 21:43 baud_test
-rwxr-xr-x 1 root root 18806 2011-11-13 21:43 bitbang
-rwxr-xr-x 1 root root 18831 2011-11-13 21:43 bitbang2
-rwxr-xr-x 1 root root 18517 2011-11-13 21:43 bitbang_cbus
-rwxr-xr-x 1 root root 19264 2011-11-13 21:43 bitbang_ft2232
-rwxr-xr-x 1 root root 19833 2011-11-13 21:43 find_all
-rwxr-xr-x 1 root root 1284 2011-11-13 21:43 libftdi-config
-rwxr-xr-x 1 root root 5225492 2011-11-13 22:05 openocd
-rwxr-xr-x 1 root root 18760 2011-11-13 21:43 serial_read
-rwxr-xr-x 1 root root 13443 2011-11-13 21:43 simple

/usr/local/binにopenocdがコピーされている。
なぜかHomeディレクトリにコピーする手順になっているが、まずはそのとおりにやってみる
$ cd ~
$ mkdir openocd-bin
$ cd Jtag/openocd-0.5.0/tcl
$ cp -r * ~/openocd-bin
$ cd ~/Jtag/openocd-0.5.0/src
$ cp openocd ~/openocd-bin

必要なものがコピーされているか確認する
$ ls -l
合計 5148
-rw-r--r-- 1 oono oono 1601 2011-11-13 22:17 bitsbytes.tcl
drwxr-xr-x 2 oono oono 4096 2011-11-13 22:17 board
drwxr-xr-x 4 oono oono 4096 2011-11-13 22:17 chip
drwxr-xr-x 2 oono oono 4096 2011-11-13 22:17 cpld
drwxr-xr-x 3 oono oono 4096 2011-11-13 22:17 cpu
drwxr-xr-x 2 oono oono 4096 2011-11-13 22:17 interface
-rw-r--r-- 1 oono oono 626 2011-11-13 22:17 mem_helper.tcl
-rw-r--r-- 1 oono oono 3534 2011-11-13 22:17 memory.tcl
-rw-r--r-- 1 oono oono 1648 2011-11-13 22:17 mmr_helpers.tcl
-rwxr-xr-x 1 oono oono 5225492 2011-11-13 22:19 openocd
drwxr-xr-x 2 oono oono 4096 2011-11-13 22:17 target
drwxr-xr-x 2 oono oono 4096 2011-11-13 22:17 test



(4)OpenOCDの実行
ここまでで実行の準備が整いました。
Running OpenOCD on Linux
http://www.tincantools.com/wiki/Running_OpenOCD_on_Linux
にしたがい実行します。

Running OpenOCD
の章を読むと、interfaceとboardをファイル名で指定するようです。
今回ですと、interfaceはflyswatter2、boardはpandaboardになります。

$ sudo ./openocd -f interface/flyswatter2.cfg -f board/ti_pandaboard.cfg

flyswatter2とPandaboardの電源を入れて上記を実行します。
Open On-Chip Debugger 0.5.0 (2011-11-13-22:03)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.berlios.de/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
15000 kHz
RCLK - adaptive
Using dbgbase = 0x80000000
force hard breakpoints
trst_only separate trst_push_pull
Info : max TCK change to: 30000 kHz
Info : RCLK (adaptive clock speed)
Info : JTAG tap: omap4430.jrc tap/device found: 0x3b95c02f (mfg: 0x017, part: 0xb95c, ver: 0x3)
Info : JTAG tap: omap4430.dap enabled
Polling target failed, GDB will be halted. Polling again in 100ms
Polling target failed, GDB will be halted. Polling again in 300ms
Info : JTAG tap: omap4430.m30_dap enabled
Polling target failed, GDB will be halted. Polling again in 700ms
Info : JTAG tap: omap4430.m31_dap enabled
Info : omap4430.cpu: hardware has 6 breakpoints, 4 watchpoints
Info : omap4430.m30: hardware has 6 breakpoints, 4 watchpoints
Info : omap4430.m31: hardware has 6 breakpoints, 4 watchpoints
Polling succeeded again

(5)Telnetによるコマンド実行
OpenOCDは以下のURLの図にあるようにTelnetのインターフェースを持っています。
http://elinux.org/Debugging_The_Linux_Kernel_Using_Gdb

ローカルホストにポート番号:4444で接続します。
$ telnet localhost 4444
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Open On-Chip Debugger
>

上記のようにコマンドプロンプトが表示されます。




ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック