Debug

11.2About the debug unit

The processor debug unit assists in debugging software running on the processor. You can use the processor debug unit, in combination with a software debugger program, to debug:

application software

operating systems

ARM processor-based hardware systems.

The debug unit enables you to:

stop program execution

examine and alter processor state

examine and alter memory and peripheral state

restart the processor.

You can debug software running on the processor in the following ways:

Halting debug-mode debugging

Monitor debug-mode debugging

Trace debugging, see ETM interface on page 1-11.

The processor debug unit conforms to the ARMv7 debug architecture. For more information see the ARM Architecture Reference Manual.

11.2.1Halting debug-mode debugging

When the processor debug unit is in Halting debug-mode, the processor halts when a debug event, such as a breakpoint, occurs. When the processor is halted, an external debugger can examine and modify the processor state using the APB slave port. This debug mode is invasive to program execution.

11.2.2Monitor debug-mode debugging

When the processor debug unit is in Monitor debug-mode, the processor takes a debug exception instead of halting. A special piece of software, a monitor target, can then take control to examine or alter the processor state. Monitor debug-mode is essential in real-time systems where the processor cannot be halted to collect information. Examples of these systems are engine controllers and servo mechanisms in hard drive controllers that cannot stop the code without physically damaging the components.

When debugging in Monitor debug-mode, the processor stops execution of the current program and starts execution of a monitor target. The state of the processor is preserved in the same manner as all ARM exceptions. The monitor target communicates with the debugger to access processor and coprocessor state, and to access memory contents and peripherals. Monitor debug-mode requires a debug monitor program to interface between the debug hardware and the software debugger.

11.2.3Programming the debug unit

The processor debug unit is programmed using the APB slave interface. See Table 11-3 on page 11-6for a complete list of memory-mapped debug registers accessible using the APB slave interface. Some features of the debug unit that you can access using the memory-mapped registers are:

instruction address comparators for triggering breakpoints, see Breakpoint Value Registers on page 11-23and Breakpoint Control Registers on page 11-23

ARM DDI 0363E

Copyright © 2009 ARM Limited. All rights reserved.

11-3

ID013010

Non-Confidential, Unrestricted Access

 

Page 272
Image 272
ARM r1p3, R4F About the debug unit, Halting debug-mode debugging, Monitor debug-mode debugging, Programming the debug unit