这是我在这个主板上的第一篇文章,我对JTAG调试的世界也很陌生,之前我使用过一些商业产品,但我想切换到OpenOCD,我经历了很多失败到目前为止。我试图使用Flyswatter2和他们提供的套件附加到我的Beaglebone Black上,我的大部分结果都是这样的:
$ ./openocd -f interface/ftdi/flyswatter2.cfg -f
board/ti_beaglebone_with_fs2.cfg -c init -c "reset init"
Open On-Chip Debugger 0.10.0-dev-00149-g8229d52 (2015-12-23-11:37)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Warn : Interface already configured, ignoring
adapter speed: 16000 kHz
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
Warn : target name is deprecated use: 'cortex_a'
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
connect_deassert_srst
Info : clock speed 16000 kHz
Info : JTAG tap: am335x.jrc tap/device found: 0x2b94402f (mfg: 0x017,
part: 0xb944, ver: 0x2)
Info : JTAG tap: am335x.dap enabled
Warn : Timeout (1000ms) waiting for ACK=OK/FAULT in JTAG-DP transaction
- aborting
Info : JTAG tap: am335x.jrc tap/device found: 0x2b94402f (mfg: 0x017,
part: 0xb944, ver: 0x2)
Info : JTAG tap: am335x.dap enabled
Error: JTAG-DP OVERRUN - check clock, memaccess, or reduce jtag speed
Error: MEM_AP_CSW 0x2800060, MEM_AP_TAR 0x0
Error: JTAG-DP OVERRUN - check clock, memaccess, or reduce jtag speed
Error: MEM_AP_CSW 0x2800060, MEM_AP_TAR 0x0
Error: JTAG-DP OVERRUN - check clock, memaccess, or reduce jtag speed
Error: MEM_AP_CSW 0x2800060, MEM_AP_TAR 0x0
Error: JTAG-DP OVERRUN - check clock, memaccess, or reduce jtag speed
Error: MEM_AP_CSW 0x2800060, MEM_AP_TAR 0x0
Error: JTAG-DP OVERRUN - check clock, memaccess, or reduce jtag speed
Error: MEM_AP_CSW 0x2800060, MEM_AP_TAR 0x0
Error: JTAG-DP OVERRUN - check clock, memaccess, or reduce jtag speed
Error: MEM_AP_CSW 0x2800060, MEM_AP_TAR 0x0
Error: JTAG-DP OVERRUN - check clock, memaccess, or reduce jtag speed
Error: MEM_AP_CSW 0x2800060, MEM_AP_TAR 0x0
Error: JTAG-DP OVERRUN - check clock, memaccess, or reduce jtag speed
Error: MEM_AP_CSW 0x2800060, MEM_AP_TAR 0x0
Error: JTAG-DP OVERRUN - check clock, memaccess, or reduce jtag speed
Error: MEM_AP_CSW 0x2800060, MEM_AP_TAR 0x0
Error: JTAG-DP OVERRUN - check clock, memaccess, or reduce jtag speed
Error: MEM_AP_CSW 0x2800060, MEM_AP_TAR 0x0
Error: Target not examined yet
in procedure 'reset'
in procedure 'ocd_bouncer'
我试图降低适配器速度并取得一些成功,其中设备实际重新启动但是一旦内核启动,所有地狱都会松动,此时我会得到类似于上面的错误消息。
我不确定从哪里开始,因为这些错误信息对我来说仍然有点模糊,是否有人有任何想法/想法/建议?如果需要的话,我愿意深入挖掘资源并进行一些调整,但是现在我有点无能为力!
答案 0 :(得分:2)
好吧,因为我似乎无法找到任何其他帖子显示ppl使用openocd成功调试BeableBone Black,我可以保证它有效。我的命令行(使用TIAO):
sudo ../src/openocd -f interface/ftdi/tumpa.cfg -f board/mybbb.cfg
请注意,这些路径来自我构建它并从源代码运行它的事实(您可能需要其他路径前缀)。 mybbb.cfg基本上是flyswatter中的一个,除了接口行。 (https://www.tincantools.com/w/images/f/f7/ti_beaglebone_with_fs2.cfg)
Openocd可能有点难以使用,但它确实迫使您了解JTAG究竟发生了什么。如果您不想这样做,只需购买TI提供的80美元连接器,它就会正常工作(前提是您正确焊接了针头)
仅供参考:在我的案例中成功输出(对差异很有用):
testbox@testbox-VirtualBox:~/openocd/openocd-code/tcl$ sudo ../src/openocd -f interface/ftdi/tumpa.cfg -f board/ti_beaglebone.cfg
Open On-Chip Debugger 0.10.0-dev-00322-g406f4d1 (2016-06-09-09:22)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
none separate
adapter speed: 16000 kHz
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
trst_and_srst separate srst_gates_jtag trst_push_pull srst_push_pull connect_deassert_srst
Info : ftdi: if you experience problems at higher adapter clocks, try the command "ftdi_tdo_sample_edge falling"
Info : clock speed 16000 kHz
Info : JTAG tap: am335x.jrc tap/device found: 0x2b94402f (mfg: 0x017 (Texas Instruments), part: 0xb944, ver: 0x2)
Info : JTAG tap: am335x.dap enabled
Info : am335x.cpu: hardware has 6 breakpoints, 2 watchpoints
最后,关于你的错误,我会仔细检查焊料,因为openocd确实说你的时钟可能太快了。快速计时,小泄漏可能解释您的问题?
最后要注意的一点是:
如果要在最近的内核上使用beaglebone 上的JAG调试 linux内核,则可能需要补丁。如果没有,一旦linux启动,你将会在openocd中遇到错误(但也会使用TI的加密狗),因为它会弄乱JTAG。请参阅https://e2e.ti.com/support/embedded/linux/f/354/t/363421中的1行补丁(花了一些时间才找到!)
祝你好运!答案 1 :(得分:0)
确保您的配置文件提供目标的良好ID供应商和ID产品。命令lsusb
为您提供目标ID。