首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Beaglebone Black上的OpenOCD

Beaglebone Black上的OpenOCD
EN

Stack Overflow用户
提问于 2016-01-06 00:47:45
回答 2查看 1.5K关注 0票数 3

这是我在这块板上的第一篇文章,我对JTAG调试的世界也是相当陌生,我以前用过一些商业产品,但我想切换到OpenOCD,到目前为止我经历了很多失败。我尝试使用Flyswatter2和他们提供的工具包连接到我的Beaglebone Black,我的大部分结果如下所示:

代码语言:javascript
复制
$ ./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'  

我尝试过降低适配器的速度,并取得了一些成功,其中设备实际上是重新启动的,但是一旦内核启动,所有的地狱都会松动,这时我得到了类似上面的错误消息。

我真的不确定从哪里开始,因为这些错误消息对我来说仍然有点晦涩,有人会有任何想法/想法/建议吗?如果需要的话,我很乐意挖掘源代码并做一些调整,但现在我有点太糊涂了,不能这么做!

EN

回答 2

Stack Overflow用户

发布于 2016-06-10 14:56:48

好吧,由于我似乎找不到任何其他帖子显示人们成功地使用BeableBone调试openocd黑色,我可以保证它工作的事实。我的命令行(使用TIAO):

代码语言:javascript
复制
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美元的连接器,它就会工作(前提是你正确地焊接了针头)

仅供参考:我的例子中的成功输出(对diff很有用):

代码语言:javascript
复制
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真的说你的时钟可能太快了。快速计时和小泄漏也许可以解释你的问题?

最后要注意的一件事:

如果你想用JAG在新内核的beaglebone上调试linux内核,你可能需要一个补丁。否则,一旦linux启动,您将在openocd (以及TI的加密狗)中收到错误,因为它会弄乱JTAG。查看https://e2e.ti.com/support/embedded/linux/f/354/t/363421中的单行补丁(我花了一段时间才找到的!)

祝好运!

票数 3
EN

Stack Overflow用户

发布于 2016-02-09 00:56:51

确保您的配置文件提供了目标的良好ID、供应商和ID产品。命令lsusb为您提供目标ID。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34616928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档