[活动专区] 【AT-START-F437测评】DWT测量程序运行时间

[复制链接]
 楼主| 222zhumingming 发表于 2023-1-4 13:58 | 显示全部楼层 |阅读模式
在Cortex-M里面有一个外设叫DWT(DataWatchpoint andTrace),是用于系统调试及跟踪,DWT的中文名字应该是:数据观察点触发。
3609963b513fbe7e18.png
明显DWT属于DBG部分的功能,从上图的可以看出DWT属于CortexM4内核的,理论上M4内核的MCU都支持的,因为他可以代替定时器外设实现上文提到延时功能和测量代码运行时间的功能,DWT不能代替定时器的其他功能。之所以DWT可以实现延时功能,因为它有一个32的计数器CYCCNT,这是一个向上计数的计数器,当它溢出时会自动清零并重新开始向上计数,它的频率就是内核的主频。简单点说,就是内核时钟跳动一下,CYCCNT计数器就加1。很明显DWT计数器的精度和系统主频有关,
AT32F手册上对这部分描述不太清楚,可以看CortexM4手册上有具体的
首选使用DWT前必须使能DBG的系统跟踪,控制使能位在DEMCR寄存器的bit24。
7763163b514d0026b8.png
34263b514e703882.png
使用DWT测量程序运行时间比定时器方便多了,避免中断
2855963b5154b7bea6.png
测量一下延时函数时间
1962263b51581f0600.png
在主频288Mhz情况下,还是非常精确


您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

28

帖子

0

粉丝
快速回复 返回顶部 返回列表