二、 精确计算代码运行时间
CCS中可以对程序运行时间进行测量,有两种方法测试代码的运行时间。 方法一:使用clock功能,这种方法操作比较简单,比较实用。
使用方法是,先打开clock功能,步骤是Run -> clock -> Enable。
右下角有个时钟的图标出现。 双击它可以清零。
在要测试的代码上打两个断点,分别运行到两个断点处,就可以看到代码运行周期了。
使用公式 time = 1/CLK可以算得程序运行时间。
例如时钟周期为300MHz,测得数据为1000,则代码运行时间time = 1000 * (1/300,000,000) = 3.3 μs。 方法二:使用Count Event功能。
说明:这种方法分为硬件断点和软件断点两种情况来分析。对于C28X in CCS官方资料中有这么一段话。 Note: If you are setting software breakpoints (ie code is in RAM) then you can set any number of breakpoints. If they are hardware breakpoints or code is in Flash, then you will only be able to set 1 breakpoint if Count Event is enabled. So you would need to run to the first breakpoint, then disable the first breakpoint and enable the second, and run to the second breakpoint. 如果设置是软件断点可以使用任意数量的断点。如果使用硬件断点,当Count Event被使能时只能使用1个断点。所以需要先运行到第一个断点,再关掉第一个断点,然后使能第2个断点,再运行到第2个断点。完整操作步骤后面会介绍。
小贴士:
关于C28x的硬件断点。C28x只能设置2个硬件中断,设置第三个时会出现错误
Error enabling this function:This task cannot be accomplished with the existing AET resources.
前提条件是做如下设置:菜单Run->Debug Configurations…
图示Halt at program termination及Enable CIO function use不勾选时,可以有2个硬件断点使用。 情况一:软件断点实现Count Event功能(C28x不建议使用这种方法,因为断点多于2个以上时,在第3个断点不能自动停止运行。) 步骤: 1、现将程序编译并Debug下载到开发板。打开断点窗口:View->Breakpoints
然后在右上角(默认设置)窗口中会多出一个断点窗口,点击断点下拉框选择Count Event。如下: