LPC2388基板でLEDチカチカの続きになります。
Olimex製のJTAGケーブルを買ってきました。
うちのノートPCは古いThinkpad T42なのでパラレルケーブルのインタフェースがついています。オスメスの延長ケーブルは千石にありました。
Interfaceの4月号を見ながら、IARのembedded Workbenchをインストールしました。やはりInterfaceを見ながら、新しいプロジェクトを作成しました。Interfaceのダウンロードページからダウンロードしたサンプルプロジェクトのソースだけコピペして、コンパイルしてFlashMagicで書き込んで動作することを確認しました。最初ARMでなくThumbの方にしていて動かなかったりとかありました。設定項目はp.70にありますが、コード生成、出力コンバータ、リンカの3種類があります。
プロジェクトのオプションでデバッガを選択できます。最初Macraigorにしてwigglerを使おうとしましたが、うまくいきませんでした。ARM-JTAGはwigglerコンパチなはずなんですが謎です。
RDIにすると、なんか動いてるっぽい状態にまでいきました。RDIにすると、自分のPCの中にサーバみたいなのがいて、JTAGを直接触るのはRDIのサーバですが、IARとかのデバッガは決められたフォーマットでRDIと通信して、デバッグする方式のようです(かなりあいまいな理解です)。
RDIのサーバとして、H-JTAGというソフトを使いました(
H-JTAGのホームページ)。ダウンロードして、zipを解凍してから、インストーラを起動してセットアップします。
ピン設定を、
このページと同じにしました。
IARの設定の方法はH-JTAGのユーザーマニュアルの7章に載っています。デバッガをRDIにして、RDIドライバとして、H-JTAGをインストールしたときに一緒にインストールされるH-JTAG.dllを指定します。
JTAGデバッグしている様子です。
現状で変な所は、デバッグを開始した最初に一回リセットしてやらないといけないことです。一回だけリセットしてやると、その後はうまく動きます。別の変な所は内蔵オシレータ動作だと動作が変でした。具体的には、妙に動作が速いです。外部オシレータなら問題ありません。
結構、試行錯誤していたので、最初の状態や、何を変更したのかが分からなくなって、ちゃんとした報告ができませんでしたm(_ _)m
一つ分かっているのは、H-JTAGサーバーの設定でauto downloadにしておかないと、フラッシュの更新が行われないことです。
IARはどうせ32kまでしか使えないし、ちゃんとしたgccを使う方がいいです。
zusさんが「
ARM LPC2388 開発環境構築方法」という素晴らしい解説ページを作ってくださっています。
当初の予定では、IARがwiggler対応のはずなので、IARだけインストールして、ちゃちゃっと動作試験しようと思っていたのが、結局RDIで動かすことになってしまいました。本格的にやるならzusさんの所を参照して、eclipseの環境を作る方がいいです。
H-JTAGだと、自分の好きなピン配置のケーブルが使えるみたいなので、もしかしてxilinxのケーブルでもいけるかなと思いましたが、FPGA用のJTAGケーブルってリセットがないので、無理っぽいと思って、やる前からあきらめてしまいました。
こういうデバッグ環境のセットアップって、すごく面倒です。誰かがうまくいったのをコピーするのが一番楽です。うまくいかないときに何をすればいいのかさっぱりです。思いつくままにチェックボタンをつけたりはずしたりして、結局ぐちゃぐちゃになってしまいます><。今回は、それっぽく動いたような気がする、くらいであきらめてzusさんの方に変えようと思います。しくしく。