B.15. The debug control register

The debug control register is 3 bits wide. Writing control bits occurs during a register write access with the read/write bit HIGH. Reading control bits occurs during a register read access with the read/write bit LOW.

Figure B.9 shows the function of each bit in this register.

Figure B.9. Debug control register format

If Bit 2, INTDIS, is asserted, the interrupt enable signal, IFEN of the core is forced LOW. Therefore. all interrupts, IRQ and FIQ, are disabled during debugging, DBGACK is HIGH, or if the INTDIS bit is asserted. The IFEN signal is driven as listed in Table B.7.

Table B.7. Interrupt signal control

DBGACK

INTDIS

IFEN

Interrupts

LOW

LOW

HIGH

Permitted

HIGH

x

LOW

Inhibited

x

HIGH

LOW

Inhibited

Bits 1 and 0 enable the values on DBGRQ and DBGACK to be forced.

Figure B.11 shows that the value stored in bit 1 of the control register is synchronized and then ORed with the external DBGRQ before being applied to the processor. The output of this OR gate is the signal DBGRQI which is brought out externally from the macrocell.

The synchronization between control bit 1 and DBGRQI is to assist in multiprocessor environments. The synchronization latch only opens when the TAP controller state machine is in the RUN-TEST-IDLE state. This enables an enter debug condition to be set up in all the processors in the system while they are still running. When the condition is set up in all the processors, it can then be applied to them simultaneously by entering the RUN-TEST-IDLE state.

In the case of DBGACK, the value of DBGACK from the core is ORed with the value held in bit 0 to generate the external value of DBGACK seen at the periphery of the ARM7TDMI core. This enables the debug system to signal to the rest of the system that the core is still being debugged even when system-speed accesses are being performed, in which case the internal DBGACK signal from the core is LOW.

Copyright © 1994-2001. All rights reserved.ARM DDI 0029G
Non-Confidential