DWT (Data Watchpoint and Trace)
Jednostka Cortex-M, która zatrzymuje procesor, gdy ktokolwiek dotknie wskazanego adresu — i przy okazji zawiera ulubiony stoper świata embedded.
DWT ma kilka komparatorów, zwykle cztery, które debugger może skierować na wybrany adres. Gdy rdzeń zapisuje pod ten adres, staje, a ty widzisz dokładnie, która linijka zadeptała bufor. To sprzęt stojący za watchpointem w GDB i w odróżnieniu od programowego zamiennika, który wykonuje krokowo każdą instrukcję, nie kosztuje ani odrobiny szybkości.
Najpopularniejszym rejestrem jest jednak CYCCNT, 32-bitowy licznik tykający w każdym cyklu zegara. Włącza się go przez DEMCR i DWT_CTRL, odczytuje przed i po, a różnica to czas wykonania co do cyklu. Przy 168 MHz przekręca się po nieco ponad 25 sekundach. Cortex-M0 i M0+ licznika nie mają, co ludzie zwykle odkrywają podczas portowania.