すっかり駄々っ子になってしまった”KURO-NUS/X4もどき”元に戻そうということで、まずARM回りの環境を整えるためのメモ。
最終的にうまくいくかどうかは分からないので、その辺はご容赦を。
電子回路や制御系の進路だった割にはすっかり疎くなってしまって、色々と調べてみたのですが、最近は標準化された境界操作試験用の仕組みがあるので、これ経由でデバッグしたりプログラミングしたりしましょうということらしく。
この標準化を行った組織がJTAGと言うそうで、「JTAG使って」なんていう書き方はなんとなく間違っているような気がしないでもないけれど、面倒なのでJTAG使ってとか多用します。
JTAGに関しては「MITOUJTAG」さま辺りを参照してください。
KURO-BOX/X4もどきはMarvell 88F5281 Feroceon(データシート)というSoCチップが使用されていますが、これはARM9(ARM926EJ-S)がベースです。
ARM9もJTAGの仕様に沿っているので、何かしたければJTAGにアクセスする方法を用意すれば良いと言う事になります。
このようなケースでよく使用される環境はARM-USB-OCD+OpenOCD(Open On-Chip Debugger)らしいので、おいらもその線で環境を構築してみます。
・ARM-USB-OCD
ストロベリーリナックスさんで9,980円(要送料400円)にて購入。
付属CDの中にドライバがあるので、ホストになるパソコンにARM-USB-OCDを接続してドライバをインストールしておきます。
・OpenOCD
ARM-USB-OCDが使用しているUSB-シリアル変換用のFT2232チップが、ライセンスの関係でそのままでは利用できないらしく、セルフコンパイルする必要があります。
セルフコンパイルはDC Twin-stick for Playstation2さまの「OpenOCD ビルド方法(win32版)」を参考に行いました。
- OpenOCDの入手とインストール
こちらから”openocd-0.4.0.zip”を入手。アーカイブ中のインストーラを実行してインストールする。 - MinGWの入手とインストール
こちらから”mingw-get-inst-20101030.exe”を入手して実行する。
途中の”Select Components”でインストール内容を指定する時にチェックボックス全てにチェックを入れておけばmsysや必要なライブラリ、Perl等もインストールされる。 - OpenOCDソースコードの入手
- 元々svn経由でソースコードを入手していたようだが、現時点でアカウントとパスワードが必要なので(BlogにはGitに変更になったような事が書かれていますが)こちらから”openocd-0.4.0.zip”を入手する。
- “
c:\MinGW\msys\1.0\home\openocd\trunk
“フォルダを作成し、アーカイブの中身を展開しておく。(上記はMinGW環境で”/home/openocd/trunk”ディレクトリとなる。) - configureの為に下記の内容で”
c:\MinGW\msys\1.0\home\openocd\trunk
“の下にファイルを作成しておく(typo回避のため)。ファイル名は適宜でかまわない。(今回はbuildというファイル名にした。)
./configure --enable-maintainer-mode --disable-werror --disable-shared --enable-ft2232_ftd2xx --with-ftd2xx-win32-zipdir=/home/openocd/ftd2xx CC="gcc -mno-cygwin" CFLAGS="-O0 -g -Wall"
- FT2232ドライバの入手
- こちらから”CDM20808.zip”を入手する。
- “
c:\MinGW\msys\1.0\home\openocd\ftd2xx
“フォルダを作成し、アーカイブの中身を展開しておく。(上記はMinGW環境で”/home/openocd/ftd2xx”ディレクトリとなる。)
- OpenOCDのセルフコンパイル
- スタートメニュー→プログラム→MinGW→MinGW Shellを実行
- 下記オペレーションを実行してFT2232対応OpenOCDをビルドする。
cd /home/openocd/trunk
sh ./build ← configureの為に作ったファイル名
make
- ビルドしたOpenOCD実行ファイルとDLLのコピー
- “
C:\MinGW\msys\1.0\home\openocd\trunk\src\openocd.exe
“を”C:\Program Files\OpenOCD\0.4.0\bin
“にコピーする。 - “
C:\MinGW\msys\1.0\home\openocd\ftd2xx\i386\ftd2xx.dll
“を”C:\Program Files\OpenOCD\0.4.0\bin
“にコピーする。
- “
これでARM-USB-OCDに対応したOpenOCDが使用できるはず。
今回はnorにu-bootを書き込むのが目的なので、デバック環境とかは後日とします。
コメント
[…] ./configure(オプションは「ARM回りの環境を整える。」参照) […]