Brain第1世代(PW-GC590)をJTAGデバッグする
できるようになること
Brain第一世代(PW-GC590)でJTAGデバッグができるようになる
openocd(telnet)やgdbでレジスタの内容を覗いたりできる
やること
JTAG端子のはんだづけ
JTAG端子とJTAGインターフェースの接続
openocdの接続
JTAG端子のはんだづけ
https://gyazo.com/e924d4f1cb2097afc0b4adfcdb2d7d36
PW-GC590とPW-GC610のアートワークに一部差分はありますが、基本的な場所は同じです。
以下の端子にUEW線(φ0.2mm程度, 長さは揃えること)をはんだづけして配線してください。
SP5_TDO
SP4_RTCK
SP1_TMS
SP0_TCK
SP2_TDI
SP3_TRSTn
GND(どこかから持ってくる)
テストポイント部のはんだ付けが難しい場合は、集合抵抗を外してそのパッド部につけるのがおすすめです。
JTAGインターフェースにつなげるため、引き出した配線を2x10のボックスヘッダに接続します。
主要なJTAGインターフェースはARM JTAG 20という規格に沿っているので、あわせてはんだづけするのがおすすめです。
https://gyazo.com/5cfb8c9ac77c72c2194245ef3d4d281d
JTAG端子とJTAGインターフェースの接続
JTAGデバッグを行うにはJTAGインターフェースの接続が必要です。
使用するJTAGインターフェースは信号レベル3.3Vであれば何でも良いです。
筆者(tnishinaga)はARM USB TINY Hというインターフェースを使っています。
JTAG端子にボックスヘッダがついていれば、JTAGインターフェースの接続は2x10のIDCケーブルをつなげるだけです。
openocdの接続
openocdを使ってJTAGインターフェースを制御し、デバッグを行えるようにします。
まず以下のファイルを作業用ディレクトリ以下に作ってください。
code: brain_gen1.cfg
set _CHIPNAME TMPA910CRAXBG
set _ENDIAN little
set _CPUTAPID 0x07926031
adapter speed 1
transport select jtag
jtag newtap $_CHIPNAME cpu -irlen 4 -expected-id $_CPUTAPID
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME arm926ejs -endian $_ENDIAN \
-chain-position $_TARGETNAME
次にbrainの電源を入れ、通常の辞書の画面が出るのを確認してください。
確認したら以下のコマンドを実行してopenocdを起動してください。
使用するJTAGインターフェースが異なる方は、適宜変更してください。
code: exec
openocd -f interface/ftdi/olimex-arm-usb-tiny-h.cfg -f brain_gen1.cfg
接続に成功すると以下のようなログが出てきます。
失敗した人は接続を見直したり、はんだづけをやりなおしてみてください。
code: exec
~/p/t/brain ❯❯❯ openocd -f interface/ftdi/olimex-arm-usb-tiny-h.cfg -f brain_gen1.cfg
Open On-Chip Debugger 0.11.0+dev-00640-ge83eeb44a (2022-04-16-16:58)
Licensed under GNU GPL v2
For bug reports, read
TMPA910CRAXBG.cpu
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Warn : libusb_detach_kernel_driver() failed with LIBUSB_ERROR_ACCESS, trying to continue anyway
Info : clock speed 1 kHz
Info : JTAG tap: TMPA910CRAXBG.cpu tap/device found: 0x07926031 (mfg: 0x018 (Kioxia Corporation), part: 0x7926, ver: 0x0)
Info : Embedded ICE version 6
Info : TMPA910CRAXBG.cpu: hardware has 2 breakpoint/watchpoint units
Info : starting gdb server for TMPA910CRAXBG.cpu on 3333
Info : Listening on port 3333 for gdb connections
あとはtcp 4444にtelnetしてopenocdを直接制御したり、gdbでtcp 3333につないでデバッグをしたりしてください。