I was reading about debuging the code for ARM Cortex-M based MCUs. Moreover, I read about ARM Debug Interface, so What is ARM Debug Interface?
The arm has something called macrocels, the most used are,
Information Macrocel, Trace macrocell, Embedded trace Macrocell, Bus macrocell and so on.
The main use of these is that it provides an insight of what is actually happening inside the processor. These macrocells are hardware inside the processor which collect information about the what was being processed and sends this information to the PC via the Jtag usually. And on the PC you have a software development kit whihc shows you the results that were obtained from these. Thus giving us an insight on whats happening inside therby helping us for example debug the code, view the interrupts that occured etc.,
This is probably a reference to the Arm Debug Interface Specification, this is the specification for how to use JTAG to access a CoreSight debug interface, and the specification for Serial Wire Debug (and how to use that to access CoreSight as well).
The interface defines a mechanism for memory mapped accesses to the peripherals within a processor or SoC which make up the debug system. At the processor level, these registers will be defined by the processor architecture, so the debug interface spec only covers a handful of registers (target address, data transfer, status and port identification).
This white paper has more detail on the on-chip side of this interface.