用DWT->CYCCNT测代码段耗时的核心步骤:1) 使能DWT:先置CoreDebug->DEMCR的TRCENA位,再置DWT->CTRL的CYCCNTENA位;2) 清零DWT->CYCCNT;3) 在待测代码前后各读一次CYCCNT,差值除以CPU主频即得秒数,乘1e9得纳秒。注意CYCCNT是32位、按内核时钟递增,主频168MHz时约25.5秒回绕,长代码段需处理溢出(用无符号减法自动取模即可)。踩坑点:①必须先开TRCENA,否则CYCCNT不计数;②调试器暂停时计数器行为受CTRL相关位影响,测量时避免断点;③中断会污染测量,测短代码段建议关中断或多次取最小值;④部分芯片低功耗模式或时钟切换后内核频率变化,需按实际HCLK换算;⑤读CYCCNT前后加__DSB()/编译器屏障防止乱序优化;⑥复位后DWT可能被调试器占用,量产环境要确认可用。