The Armv8-A architecture supports both self-hosted debug and external debug. This guide provides an overview of external debug, and describes the external debug features that the architecture supports. The guide explains external debug features, and steps to enable these features.
The self-hosted debug model is used when the debugger is hosted on a Processing Element (PE) that is being debugged. Debug exceptions are the basis of the self-hosted debug model. The debugger programs the debug logic to generate debug events. These debug events generate debug exceptions. You can read about this topic in our Armv8-A self-hosted debug guide.
The external debug model is used when the debugger is hosted external to the PE that is being debugged. Debug state is the basis of the external debug model. The debugger programs the debug logic to generate debug events. These debug events cause the PE to enter Debug state. This guide describes external debug features in detail.
After you have read this guide, you can Check your knowledge. You will understand:
- How external debug works
- What debug features are supported in external debug
- How to program debug logic to enable each external debug event
Before you begin
You need to be familiar with the basics of the Armv8-A architecture, and the Armv8-A Exception model, to understand the material that is presented in this guide. If you are not familiar with these topics, read these guides:
Debugger usage for software development is beyond the scope of this guide. To learn about debugger usage from a software development perspective, read these guides: