In embedded application the processors are deeply buried inside a chip that the program execution trace can not be observed from external pins. JTAG tools is the only viable method to help identify many issues in embedded development.
ARM 9 comes with two styles of debug JTAG technologies: ETM/ETB and EmbeddedICE-RT. Both run on top of JTAG protocol.
- The Embedded Trace Macrocell (ETM9): Refer to “Embedded Trace Macrocell Architecture Specifiction, ARM IHI 0014E (pdf)” , and “ARM9 Embedded Trace Macrocell ETM9 Technical Reference Manual (pdf)”. Embedded Trace Buffer (ETB): Refer to “Embedded Trace Buffer Technical Reference Manual“.
- Embedded ICE-RT.
To make use of the built-in JTAG facility, two pieces of components are needed: A JTAG adapter, and a debug software.
There is a guide on openpilot.org. It assumes the JTAG adapters contain an FTD2xx chipset, e.g. the OpenPilot FOSS JTAG, the JTAG USB OCD TINY by SparkFun, or the ARM-USB-OCD-H by Olimex from Mouser. The JTAG connector from most of the adapters are 20 pin 0.1 pitch. To use with ATM mini JTAG 10 pin .05 pitch connectors, an adapter cable from DigiKey is required.
To choose a JTAG adapter that suits your need, check the protocols it supports, and also the voltages. There is a forum at SparkFun about adapters for OCD software. Be sure to search it for your target CPU and board to see what compatibility or problems there might be.
JTAG Debug Software
OpenOCD is an open source project based on some researches (here and here) at a univerisity. The project is actively developed and many functions are being added. It has most of the functions an embedded development project may need and the software comes with many JTAG adapter packages.