I read here about ARM programming, pag 252, about ARM debug hardware, but I don't understand which hardware physically tools is used in practice.

ARMv8 processors provide hardware features that enable debug tools to provide significant levels of control over core activity and to non-invasively collect large amounts of data about program execution. There are two broad classes of hardware features, invasive and non-invasive. Invasive debug provides facilities that enable you to stop programs and step through them line by line, either at the C source level, or stepping through assembly language instructions. This can be by means of an external device that connects to the core using the chip JTAG pins, or by means of debug monitor code.

Can you show me this external device ? I suppose it is a debugger but how model is used ? After this debugger is connected to a PC, how software is used with this debugger ?

I need to debug an embedded ARM baseband processor.


1 Answer 1


The programmers in question are external devices that allow a developer to connect a PC running the debug tools to the embedded processor under debug. As stated in the quoted text in the question, the electrical connection is made via JTAG or SWD interface pins on the device. Most often these pins are connected to a header on the PCB where the device is mounted.

The programmers shown below connect to the PC using USB. Other programmers / debuggers can connect to the PC using Ethernet or other electrical interfaces.

ULINK ARM programmers.

A representative list of available debuggers can be found in this Wikipedia Article.

  • \$\begingroup\$ Do note that the question is about Cortex-A (high end devices for phones, etc) but your answer is at least in part about Cortex-M (simple to medium micro-controllers). Obviously there are some underlying similarities but one shouldn't assume a solution from your list that works for one necessarily supports the other. Also, as Cortex-A parts typically have user I/O and high level operating systems, hardware assisted debugging there is less common for everyday development and only really used by those doing low level or initial work; in contrast it is the most common tool for MCU's. \$\endgroup\$ Commented Jan 11, 2017 at 22:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.