NOTICE: The Processors Wiki will End-of-Life in December of 2020. It is recommended to download any files or other content you may need that are hosted on The site is now set to read only.

Debugging on DaVinci using Amontec JTAGkey

From Texas Instruments Wiki
Jump to: navigation, search

The following page gives a short introduction on how to debug DaVinci devices using Amontec JTAGkey dongle.

The tutorial is based on the DaVinci target board called DM355 EVM. The JTAGkey Emulator are available from e.g.

This information reflects old versions of OpenOCD, pre-dating its first (0.1.0) release. See the OpenOCD page for more current information about using the DM355 configuration file now included with OpenOCD. FT2232 based adapters from many vendors work much the same in OpenOCD.

The Amontec JTAGkey pinout is fully compatible with ARM Multi-ICE 20-pin header. The DM355 EVM has a standard ARM 20-pin connector and you can plug any standard ARM JTAG if you configure the scan chain properly:

  • Set the EMU0 and EMU1 pins to Low. This will put the SoC on the following configuration:
IcePick (IRLen 6) - ARM (IRLen 6) - ETB (IRLen 4)
  • Run the openocd with the configuration script (see below):
openocd -f dm355.cfg

Now you can telnet to the OpenOCD session or attach it to gdb as documented on the OpenOCD (On-Chip Debugger) project.


gdb_port 3333
telnet_port 4444

interface ft2232
ft2232_layout "jtagkey"
ft2232_vid_pid 0x0403 0xcff8
#For Windows
#ft2232_device_desc "Amontec JTAGkey A"
#For Linux
ft2232_device_desc "Amontec JTAGkey"

#target hardware notes:
#TI DM355 EVM: set EMU0 L and EMU1 L

#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, IDCODE)
jtag_device 4  0x1 0x0 0x0
jtag_device 4  0x1 0x0 0xe
jtag_device 6 0x1 0x0 0x0

#target <type> <endianness> <reset mode> <chainpos> <variant>
target arm926ejs little reset_halt 1 arm926ejs

run_and_halt_time 0 30

# setup data portion of tightly coupled (internal) memory
# for open OCD working area
working_area 0 0x10000 0x8000 nobackup

# newer openocd allow you to include commands in config file
arm7_9 fast_memory_access enable
arm7_9 dcc_downloads enable
arm7_9 force_hw_bkpts enable
gdb_memory_map enable