
B-18
Detailed Debug Operation
Rev. A
Copyright 2000 by LSI Logic Corporation. All rights reserved.
core is then clocked to load the branch instruction into the pipeline, and
the RESTART instruction is selected in the TAP controller.
When the state machine enters the RUN-TEST/IDLE state, the scan
chain reverts back to system mode. The ARM7TDMI-S core then
resumes normal operation, fetching instructions from memory. This delay,
until the state machine is in the RUN-TEST/IDLE state, allows conditions
to be set up in other devices in a multiprocessor system without taking
immediate effect. When the state machine enters the RUN-TEST/IDLE
state, all the processors resume operation simultaneously.
The function of DBGACK is to inform the rest of the system when the
ARM7TDMI-S core is in debug state. This information can be used to
inhibit peripherals, such as watchdog timers, that have real-time
characteristics. Also, DBGACK can mask out memory accesses caused
by the debugging process. For example, when the ARM7TDMI-S core
enters debug state after a breakpoint, the instruction pipeline contains
the breakpointed instruction and two other instructions that have been
prefetched. On entry to debug state the pipeline is flushed. On exit from
debug state, the pipeline therefore must revert to its previous state.
As a result of the debugging process, more memory accesses occur than
would be expected normally. DBGACK can inhibit any system peripheral
that might be sensitive to the number of memory accesses.
For example, a peripheral that simply counts the number of memory
cycles should return the same answer after a program has been run both
with and without debugging.
Figure B.3
shows the behavior of the ARM7TDMI-S core on exit from the
debug state.