配置步骤:1) 使能DWT:先置CoreDebug->DEMCR的TRCENA位,再置DWT->CTRL的CYCCNTENA位;2) 清零DWT->CYCCNT;3) 测量前读取CYCCNT作为起始值,执行目标函数后再次读取作为结束值,差值乘以1/系统主频即得秒数,再乘1e9得纳秒。注意CYCCNT为32位,主频高时约数秒溢出,需处理回绕:若end<start则差值=end+(2^32-start)。误差来源:1) 计数器分辨率等于时钟周期,量化误差±1周期;2) 读取CYCCNT本身有指令开销(约数个周期),需用两次读取取平均或校准;3) 中断和DMA等异步事件会拉长测量;4) 编译器优化可能改变函数体,建议加volatile或使用内存屏障;5) 系统时钟抖动和温度漂移;6) 缓存和流水线效应导致执行时间不稳定。实操建议:多次测量取最小值以减小中断影响,测量前后关中断,并确保函数不被内联。