ARM9とJTAGの関係
アットマークテクノさんのArmadillo9を購入しました。
このボードは、ARM9TDMIコア(ARM920T?)を内蔵したCirrus Logic社製のCPU「EP9315」を搭載し、200MHzの速度で動作し、Linuxが動くというものです。
早速JTAGケーブルを接続し、MITOUJTAGからARM9TDMIが見えるのが確認できました。
ARM920Tのマニュアルを読んでみると、ARM920はバウンダリスキャンができるようなことが書いてあります。
BSDLファイルを作成し、MITOUJTAGに読み込ませてみると、見事にCPUのバスの波形を見ることができました。

クリックで拡大
この波形は、Linuxにログインして、ls -aR / と入力したときの波形です。だいたい80msごとに激しくバスが動いているのがわかります。
さて、ARM9用のJTAG ICEも作り始めました。ARM9のデータシートを読む限り、ARM7とよく似ています。ARM7のデバッグの仕組みについては、Interface誌の9月号に詳しく書きましたので、ぜひご覧下さい。
ARM9のデータシートをざっと読んでみたところ、ARM7とARM9のJTAGデバッグの大きな違いは、
・Scan Chain選択レジスタが5ビット(ARM7は4ビット)
・Scan Chain1が67ビットに拡張され、命令系データバスとデータ系データバスを独立して指定するようになった。
・シングルステップ実行用に専用のハードウェアが追加された。
といった感じです。EmbeddedICE-RTの使い方などには変更はないようです。
ARM7用のデバッグルーチンをちょこっと修正してARM9に適用してみると、見事にCPUを停止させることができました。手ごたえ有りです。
このArmadillo9をターゲットにして、ARM9用のJTAGデバッガの開発を本格的に始めることにします。
| 固定リンク
コメント