FrontPage
2009/06/04 からのアクセス回数
Armlibが異なるCPUアーキテクチャーで使えて、便利なことを示す例として、オプティマイズの
http://optimize.ath.cx/ARM7/index.html
を使ってみます。
EZ-ARMの特徴をあげると、
今回は、EZ-ARM7付属のライターとGDBスタブを使うため、VM-Wareと併用することにしました。
もちろん、テストプログラムはLEDの点滅です。 ただ、今回はforループによる遅延ではなく、タイマー割り込みを使って、Armlibが便利なところを 示すことにします。
arm/armlibを使ってみると同様に、armlibのサンプルにあるをコピーし、以下の項目をセットします。
}}
は、サンプルのglobal.hをそのまま使います。
メインのファイルは、です、これはオプティマイズの例題から引用したので、ファイル名を 同じにしました。
static void ledInit(){
}
static void ledOn(int led){
}
static void ledOff(int led){
}
int main(void){
} }}
Macでmakeコマンドを実行します。
$ make }} blink.hex blink.bin, blink.elfが生成されていれば成功です。
次にWindowsマシンに、EZ-ARM7を接続し、付属のライターで書き込みます。 (ここでは、VM Wareのファイル共有機能を使います。)
Cygwinを起動し、jtag_flash.exeを実行します。
$ jtag_flash.exe blink.hex JTAG Flash Writer for LPC2214/2138 by OPTIMIZE Ver2.1 書き込み中 セクタ=0 アドレス=00000000 サイズ=2000 ... }}
USB Blasterの書き込みに比べて、とても高速に書き込めます。
これで、EZ-ARM7のLEDが1秒間隔で点滅します。
EZ-ARM7に付属のjtag_stub.exeを使ってEclipseからリモートで デバッグすることができる。
デバッガーを使用する場合には、Cコンパイラーのオプションからオプティマイズ(-O1)を外し、 再度、makeを実行してください。
}}
Cygwinから、jtag_stubを起動する
$ jtag_stub LPC2214/2138 GDB stub Server Ver2.1 by OPTIMIZE. GDBとの接続待機中(localhost:2159)... }} 最後のlocalhost:2159がスタブの接続待ちポートです。 この番号を記録しておきます。
Eclipseのデバッグ設定タグで
Commandsタグの
target remote 192.168.1.19:2159 }}
symbol-file blink.elf load blink.elf br main continue }}
デバッガで、ステップ処理、変数の値も確認でき、応答速度も速く、実際のデバッグにも十分使えます。
この記事は、
皆様のご意見、ご希望をお待ちしております。