今天在调试一个裸机程序时,openocd提示如下错误:
Open On-Chip Debugger 0.6.0-dev-snapshot (2012-02-29-10:02)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
DEPRECATED! use 'adapter_khz' not 'jtag_khz'
6000 kHz
adapter_nsrst_delay: 500
jtag_ntrst_delay: 500
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
Info : device: 4 "2232C"
Info : deviceID: 341266712
Info : SerialNumber: FTVYTUYSA
Info : Description: USB<=>JTAG&RS232 A
Info : clock speed 6000 kHz
Info : JTAG tap: s3c6410.etb tap/device found: 0x2b900f0f (mfg: 0x787, part: 0xb900, ver: 0x2)
Info : TAP s3c6410.cpu does not have IDCODE
Warn : JTAG tap: s3c6410.cpu UNEXPECTED: 0x00000000 (mfg: 0x000, part: 0x0000, ver: 0x0)
Error: JTAG tap: s3c6410.cpu expected 1 of 1: 0x07b76f0f (mfg: 0x787, part: 0x7b76, ver: 0x0)
Warn : Unexpected idcode after end of chain: 33 0x000003fc
Warn : Unexpected idcode after end of chain: 65 0x000003fc
Warn : Unexpected idcode after end of chain: 97 0x000003fc
Warn : Unexpected idcode after end of chain: 129 0x000003fc
...(太长了,省略一部分)
Error: double-check your JTAG setup (interface, speed, missing TAPs, ...)
Error: Trying to use configured scan chain anyway...
Error: s3c6410.cpu: IR capture error; saw 0x1f not 0x01
Warn : Bypassing JTAG setup events due to errors
Error: 'arm11 target' JTAG error SCREG OUT 0x00
Error: unexpected ARM11 ID code
Polling target failed, GDB will be halted. Polling again in 100ms
Polling target failed, GDB will be halted. Polling again in 300ms
Polling target failed, GDB will be halted. Polling again in 700ms
Polling target failed, GDB will be halted. Polling again in 1500ms
第一种:dbgsel引脚高低电平的问题
在网上查找资料,说是要把开发板的dbgsel引脚设为低,但是我的开发板上dbgsel引脚本来就是设为低的,所以排除这个原因。
dbgsel为低电平时,可以用openocd调试或者烧写程序
dbgsel为高电平时,可以用oflash直接烧写程序,为高电平只能烧写不能调试。(注意:目前oflash不支持OK6410的MLC NAND)
第二种:后来又在OpenJTAG开发手册上面找到了这个方法,就是用SD卡模式启动,原文如下:
注意:如果打印出很多警告信息,先设为SD卡启动(不需要插SD卡),再点“Connec t ”,
正常后直接带电拔到NAND启动。
我按照方法试了一遍,发现在SD卡的启动模式下一切正常,但是拨回NAND启动后,又不正常了。来回试了几次,发现确实如此,无奈,赶紧寻求韦老师的帮助。
第三种:频率太高,工作不稳定,要降低频率。
联系上韦老师后,经过韦老师远程协助,把OPENJTAG.CFG文件中的jtag_khz=6000改为jtag_khz=1000以后,成功解决问题。韦老师说一些开发板在高频率下工作不太稳定,经过测试,1000Khz的情况下比较稳定。
问题终于解决了,在此非常感谢韦老师的耐心解答!
好了,今天就到这里吧,后面将准备写一系列关于OK6410裸机开发学习的文章,敬请大家的期待!
Open On-Chip Debugger 0.6.0-dev-snapshot (2012-02-29-10:02)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
DEPRECATED! use 'adapter_khz' not 'jtag_khz'
6000 kHz
adapter_nsrst_delay: 500
jtag_ntrst_delay: 500
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
Info : device: 4 "2232C"
Info : deviceID: 341266712
Info : SerialNumber: FTVYTUYSA
Info : Description: USB<=>JTAG&RS232 A
Info : clock speed 6000 kHz
Info : JTAG tap: s3c6410.etb tap/device found: 0x2b900f0f (mfg: 0x787, part: 0xb900, ver: 0x2)
Info : TAP s3c6410.cpu does not have IDCODE
Warn : JTAG tap: s3c6410.cpu UNEXPECTED: 0x00000000 (mfg: 0x000, part: 0x0000, ver: 0x0)
Error: JTAG tap: s3c6410.cpu expected 1 of 1: 0x07b76f0f (mfg: 0x787, part: 0x7b76, ver: 0x0)
Warn : Unexpected idcode after end of chain: 33 0x000003fc
Warn : Unexpected idcode after end of chain: 65 0x000003fc
Warn : Unexpected idcode after end of chain: 97 0x000003fc
Warn : Unexpected idcode after end of chain: 129 0x000003fc
...(太长了,省略一部分)
Error: double-check your JTAG setup (interface, speed, missing TAPs, ...)
Error: Trying to use configured scan chain anyway...
Error: s3c6410.cpu: IR capture error; saw 0x1f not 0x01
Warn : Bypassing JTAG setup events due to errors
Error: 'arm11 target' JTAG error SCREG OUT 0x00
Error: unexpected ARM11 ID code
Polling target failed, GDB will be halted. Polling again in 100ms
Polling target failed, GDB will be halted. Polling again in 300ms
Polling target failed, GDB will be halted. Polling again in 700ms
Polling target failed, GDB will be halted. Polling again in 1500ms
第一种:dbgsel引脚高低电平的问题
在网上查找资料,说是要把开发板的dbgsel引脚设为低,但是我的开发板上dbgsel引脚本来就是设为低的,所以排除这个原因。
dbgsel为低电平时,可以用openocd调试或者烧写程序
dbgsel为高电平时,可以用oflash直接烧写程序,为高电平只能烧写不能调试。(注意:目前oflash不支持OK6410的MLC NAND)
第二种:后来又在OpenJTAG开发手册上面找到了这个方法,就是用SD卡模式启动,原文如下:
注意:如果打印出很多警告信息,先设为SD卡启动(不需要插SD卡),再点“Connec t ”,
正常后直接带电拔到NAND启动。
我按照方法试了一遍,发现在SD卡的启动模式下一切正常,但是拨回NAND启动后,又不正常了。来回试了几次,发现确实如此,无奈,赶紧寻求韦老师的帮助。
第三种:频率太高,工作不稳定,要降低频率。
联系上韦老师后,经过韦老师远程协助,把OPENJTAG.CFG文件中的jtag_khz=6000改为jtag_khz=1000以后,成功解决问题。韦老师说一些开发板在高频率下工作不太稳定,经过测试,1000Khz的情况下比较稳定。
问题终于解决了,在此非常感谢韦老师的耐心解答!
好了,今天就到这里吧,后面将准备写一系列关于OK6410裸机开发学习的文章,敬请大家的期待!