13.1. About Angel

Angel is a program that enables you to develop and debug applications running on ARM-based hardware. Angel can debug applications running in either ARM state or Thumb state.

You can use Angel to:

These activities require you to have some understanding of how Angel components work together. The more technically challenging ones, such as porting operating systems, require you to modify Angel itself.

A typical Angel system has two main components that communicate through a physical link, such as a serial cable:


The debugger runs on the host computer. It gives instructions to Angel and displays the results obtained from it. All ARM debuggers support Angel, and you can use any other debugging tool that supports the communications protocol used by Angel.

Angel Debug Monitor

The Angel debug monitor runs alongside the application being debugged on the target platform. There are two configurations of Angel:

  • a full version for use on development hardware

  • a minimal version that you can use on production hardware.

See Figure 13.1 for an overview of a typical Angel system. The debugger on the host machine sends requests to Angel on the target system. Angel interprets those requests and performs an operation such as inserting an undefined instruction where a breakpoint is required, or reading a portion of memory and sending back a response to the host.

Angel uses a debugging protocol called the Angel Debug Protocol (ADP) to communicate between the host system and the target system. ADP supports multiple channels and provides an error-correcting communications protocol. Refer to the Angel Debug Protocol specification in Arm250\PDF\specs for more information on ADP.

Angel is supplied as:

In addition, full Angel source is provided so that you can port Angel to your own ARM-based hardware.

ANSI C and C++ libraries that support Angel are supplied with the ARM Software Development Toolkit. Refer to Chapter 4 The C and C++ Libraries in the ARM Software Development Toolkit Reference Guide for more information.

Copyright © 1997, 1998 ARM Limited. All rights reserved.ARM DUI 0040D