Hi all,
I am a newbie to openocd. I use siemens ertec 200 board with ARM946E processor. I am trying to connect my PC to the board using Amontec JTAGkey debugger, however, when I tried to initialize openocd, the following error occur:
C:\PNIODevKit3\OpenOcdDebug\openocd -f eb200_debug.cfg -c “init” -c “reset”
Open On-Chip Debugger 0.4.0 (2010-02-22-19:05)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.berlios.de/doc/doxygen/bugs.html
jtag_nsrst_delay: 200
jtag_ntrst_delay: 0
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
fast memory access is enabled
dcc downloads are enabled
force hard breakpoints
info : RCLK (adaptive clock speed) not supported - fallback to 16 kHz
Error: JTAG scan chain interrogation failed: all zeroes
Error: Check JTAG interface, timings, target power, etc.
Error: JTAG scan chain interrogation failed: all zeroes
Error: Check JTAG interface, timings, target power, etc.
Command handler execution failed
Warn: JTAG initialization failed; try ‘jtag init’ again.
RCLK not supported - fallback to 16 kHz
Error: JTAG scan chain interrogation failed: all zeroes
Error: Check JTAG interface, timings, target power, etc.
error: -100
Command handler execution failed
I have been looking all over the internet and forums, however I cannot find any solution that is applicable to my case. There is no explanation about the meaning behind error: -100.
I hope I can get help from this forum. Is there any idea on what should I check first to solve this problem?
My development environment is windows 7, and I use libusb-win32 ft2232 driver for the amontec JTAGkey debugger. Below are the .cfg code that I use
openocd 0.2.0 script for EB200 Siemens ERTEC Profinet Dev Kits
set ports
telnet_port 4444
gdb_port 3333
#interface/ Dongle configuration
interface ft2232
ft2232_device_desc “Amontec JTAGkey”
ft2232_layout jtagkey
ft2232_vid_pid 0x0403 0xcff8
jtag_nsrst_delay 200
jtag_ntrst_delay 0
if { [info exists CHIPNAME] } {
set _CHIPNAME $CHIPNAME
} else {
set _CHIPNAME ertec
}
if { [info exists ENDIAN] } {
set _ENDIAN $ENDIAN
} else {
set _ENDIAN little
}
if { [info exists CPUTAPID ] } {
set _CPUTAPID $CPUTAPID
} else {
force an error till we get a good number
set _CPUTAPID 0x15946021
}
jtag speed. We need to stick to 16kHz until we’ve finished reset.
#jtag_rclk 16
jtag_khz 16
#use combined on interfaces or targets that can’t set TRST/SRST separately
reset_config trst_and_srst
#jtag scan chain
#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask)
jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0x0f -expected-id $_CPUTAPID
#target configuration
set _TARGETNAME [format “%s.cpu” $_CHIPNAME]
target create $_TARGETNAME arm9tdmi -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm946t
speed up memory downloads
arm7_9 fast_memory_access enable
arm7_9 dcc_downloads enable
#workaround: HW breakpoints
gdb_breakpoint_override hard
#flash driver
not available
#optional enable workspace (we use last 64 k of uncashed SDRAM in EB200), to speed up JTAG tool.
$_TARGETNAME configure -work-area-phys 0x207F0000 -work-area-size 0x10000 -work-area-backup 1
$_TARGETNAME configure -event reset-start { jtag_rclk 16 }
$_TARGETNAME configure -event reset-init {
We can increase speed now that we know the target is halted.
jtag_rclk 3000
puts “Running reset init script for EBx00 Board”
Init values
mww 0x70000004 0x40000080 # Async Wait Cycle Config
mww 0x7000000C 0x00000320 # SDRAM Refresh Control
mww 0x70000010 0x04622311 # Async Bank 0 Config (16 bit flash)
mww 0x70000014 0x04622312 # Async Bank 1 Config (SRAM)
mww 0x70000018 0x04622312 # Async Bank 2 Config (CPLD)
mww 0x7000001C 0x44622312 # Async Bank 3 Config (FPGA)
mww 0x70000020 0x03030000 # Extended Config
mww 0x70000008 0x00000521 # SDRAM Bank Config
#Memory Swap => SDRAM at address 0x00 to set vectors
mww 0x40002644 0x00000001 # MEM_SWAP
}
$_TARGETNAME configure -event debug-halted {
puts “Running debug halted script for EBx00 Board”
}
$_TARGETNAME configure -event gdb-attach {
puts “Running gdb-attach script for EBx00 Board”
}
$_TARGETNAME configure -event gdb-detach {
puts “Running gdb-detach script for EBx00 Board”
}
$_TARGETNAME configure -event gdb-flash-erase-start {
puts “Running gdb-flash-erase-start script for EBx00 Board”
}
$_TARGETNAME configure -event gdb-flash-erase-end {
puts “Running gdb-flash-erase-end script for EBx00 Board”
}
$_TARGETNAME configure -event gdb-start {
puts “Running gdb_start script for EBx00 Board”
}
$_TARGETNAME configure -event gdb-end {
puts “Running gdb_halted script for EBx00 Board”
}