| |||
Home > Debug Interface > Overview > Debug extensions |
ARM7DMT contains hardware extensions for advanced debugging features. These are intended to ease the user’s development of application software, operating systems, and the hardware itself.
The debug extensions allow the core to be stopped either on a given instruction fetch (breakpoint) or data access (watchpoint), or asynchronously by a debug-request. When this happens, ARM7DMT is said to be in debug state. At this point, the core’s internal state and the system’s external state may be examined. Once examination is complete, the core and system state may be restored and program execution resumed.
ARM7DMT is forced into debug state either by a request on one of the external debug interface signals, or by an internal functional unit known as EmbeddedICE. Once in debug state, the core isolates itself from the memory system. The core can then be examined while all other system activity continues as normal.
ARM7DMT’s internal state is examined via a JTAG-style serial interface, which allows instructions to be serially inserted into the core’s pipeline without using the external data bus so, when in debug state, a store-multiple (STM) could be inserted into the instruction pipeline and this would dump the contents of ARM7DMT’s registers. This data can be serially shifted out without affecting the rest of the system.