A Deep Dive into ARM Cortex-M Debug Interfaces | Interrupt

Ever had issues getting a debugger to flash code? Do your breakpoints not seem to work? Are you hitting weird errors while stepping through your code? Does your debugger seem flaky? Are you confused by all the buzzwords used around embedded debugging (i.e SWD vs JTAG, OpenOCD vs pyOCD vs JLinkGDBServer, CMSIS-DAP vs ST-Link vs J-Link, etc)


This is a companion discussion topic for the original entry at https://interrupt.memfault.com/blog/a-deep-dive-into-arm-cortex-m-debug-interfaces

Hi Chris,

Thank you for this. This was quite insightful. Just a quick question -is there a follow-on post on the topics of ETM and DWT.

I’m kind of exploring a thought - Is it possible to dynamically instrument embedded binaries running on real hardware (in environments that don’t use a traditional OS or no-OS) and how is ‘tracing’ different from DBI?

Hi @chrisc,
This post reallly deserves an applause.
Thanks.
Are you aware of the usage of other debug tools like (valgrind, gprof) on a embedded platform?