
UM10413
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2011. All rights reserved.
User manual
Rev. 1 — 16 December 2011
244 of 268
NXP Semiconductors
UM10413
MPT612 User manual
27.3 Description
RealMonitor is a lightweight debug monitor that allows interrupts to be serviced while the
user debugs his foreground application. It communicates with the host using the DCC
(Debug Communications Channel), which is present in the EmbeddedICE logic.
RealMonitor provides advantages over the traditional methods for debugging applications
in ARM systems. The traditional methods include:
•
Angel (a target-based debug monitor)
•
Multi-ICE or other JTAG unit and EmbeddedICE logic (a hardware-based debug
solution).
Although both of these methods provide robust debugging environments, neither is
suitable as a lightweight real-time monitor.
Angel is designed to load and debug independent applications that can run in various
modes, and communicate with the debug host using various connections (such as a serial
port or ethernet). Angel is required to save and restore full processor context, and the
occurrence of interrupts can be delayed as a result. Angel, as a fully functional
target-based debugger, is therefore too heavyweight to perform as a real-time monitor.
Multi-ICE is a hardware debug solution that operates using the EmbeddedICE unit that is
built into most ARM processors. To perform debug tasks such as accessing memory or
the processor registers, Multi-ICE must place the core into a debug state. While the
processor is in this state, which can be millions of cycles, normal program execution is
suspended, and interrupts cannot be serviced.
RealMonitor combines features and mechanisms from both Angel and Multi-ICE to
provide the services and functions that are required. In particular, it contains both the
Multi-ICE communication mechanisms (the DCC using JTAG), and Angel-like support for
processor context saving and restoring. RealMonitor is pre-programmed in the on-chip
ROM memory (boot sector). When enabled, it allows the user to observe and debug while
parts of the application continue to run. Refer to
for details.
27.3.1 RealMonitor components
As shown in
, RealMonitor is split in to two functional components.