You copied the Doc URL to your clipboard.

13.5.1. Executing CP14 debug instructions

If the core is in debug state (see Debug state), you can execute any CP14 debug instruction regardless of the processor mode.

If the processor tries to execute a CP14 debug instruction that either is not in Table 13.28, or is targeted to a reserved register, such as a non-implemented BVR, the Undefined instruction exception is taken.

You can access the DCC (read DIDR, read DSCR and read/write DTR) in User mode. All other CP14 debug instructions are privileged. If the processor tries to execute one of these in User mode, the Undefined instruction exception is taken.

If the User mode access to DCC disable bit, DSCR[12], is set, all CP14 debug instructions are considered as privileged, and all attempted User mode accesses to CP14 debug registers generate an Undefined instruction exception.

When DSCR bit 14 is set (Halt mode selected and enabled), if the software running on the processor tries to access any register other than the DIDR, the DSCR, or the DTR, the core takes the Undefined instruction exception. The same thing happens if the core is not in any debug mode (DSCR[15:14]=b00).

This lockout mechanism ensures that the software running on the core cannot modify the settings of a debug event programmed by the DBGTAP debugger.

Table 13.29 shows the results of executing CP14 debug instructions.

Debug instruction execution
State when executing CP14 debug instruction:Results of CP14 debug instruction execution:
Processor modeDebug stateDSCR[15:14] (Mode enabled and selected)DSCR[12] (DCC User accesses disabled)Read DIDR, read DSCR and read/ write DTRWrite DSCRRead/write other registers
UserNoxx0ProceedUndefined exceptionUndefined exception
UserNoxx1Undefined exceptionUndefined exceptionUndefined exception
PrivilegedNob00 (None)xProceedProceedUndefined exception
PrivilegedNob01 (Halt)xProceedProceedUndefined exception
PrivilegedNob10 (Monitor)xProceedProceedProceed
PrivilegedNob11 (Halt)xProceedProceedUndefined exception