版权声明:本系列文章欢迎转载,请注明出处,谢谢!
在MCU的开发中,开发者常常需要知道一段代码的精确运行时间。MCU编程中通常采用C语言,且存在很多中断、嵌套,很难通过计算获得准确的运行时间。在以往的工程实践中,工程师一般在程序前后翻转GPIO口输出,并通过示波器测量程序执行时间。该方法比较繁琐,且需要借助额外的设备。针对这一需求,CCSv7的debug中新增了clock功能,使程序运行时间的测量变得方便快捷。
下面以F28027中自带的Example_2802xLEDBlink例程为例,简要介绍该功能:
开启时钟功能
首先将程序编译并进行debug。
点击Run->Clock,勾选Show及Enable选项,界面右下角出现一个黄色时钟图标,即我们需要的clock功能。
设定中断点并测量运行时间
进入Debug界面,在双击程序语句前的空白处,在第154行的定时器中断程序入口处设一个breakpoint。
运行程序后,程序自动在断点处暂停,时钟后出现示数,即程序运行到断点处经过的时钟周期数。
双击时钟,可将示数清零。
再次运行程序。程序运行到断点处再次停止,clock示数30,000,000。程序设置的CPU频率为60MHz,计算的得到LED的闪烁周期为500ms,与预期设计相同。
再次双击时钟将示数清零,并在中断程序的末尾加入一个中断点。
再次运行程序,程序停在中断程序末尾,时钟示数即为从上一断点到该断点所需要的时钟周期数。计算的到中断程序的运行时间为:
通过这种方式很容易知道一段程序实际运行的时钟周期是多少.
领取专属 10元无门槛券
私享最新 技术干货