通常在调试代码中需要直到某个函数或者某段代码的实际执行时间,在IAR中可以直接借助软件提供的工具来计算代码执行时间。
第一种方法
进入仿真调试界面,在需要测量的代码前面打断点。
工具栏中选择 ST-LINK — Data Log Summary
在 Data Log Summary 窗口中鼠标右键 选择 Enable
全速运行代码到断点处
这时可以看到窗口中的时间值为133.12 us
再次单步运行程序
这次的时间值变成了 201129.56 us, 两次的时间差为 200996.53us,也就是200.996ms .说明这个延时函数函数还是比较准确的.
第二种方法
计算寄存器CYCLECOUNTER值的差
工具栏中选择 view — Registers — Registers 1
全速运行代码到断点处
记住这个值,然后单步执行执行,延时函数这行代码
计算这两个值的差 为 34169 410 ,这个值刚好等于CCSTEP这个寄存器的值,所以直接看 CCSTEP这个寄存器的值也可以.
这个值为代码执行的指令周期数,要计算时间,需要用指令周期值乘以每个指令的执行时间,当前用的CPU 时钟为170MHz,那么每天指令的执行时间就为 1/170M ,所以延时函数的执行时间就为 1/170 000 000 * 34 169 410 = 200.996529ms .