8.1.1. 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.

Debug state

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.

Internal state

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.

Copyright © 1997, 1998 ARM Limited. All rights reserved.DDI 0087E
Non-Confidential