
使用IAR的cyclecounter查看编写的C语句段执行的时间 疑问
我看到网上有人说查看C程序段执行的时间可以通过IAR的resistercyclecounter来查看,计算两短点之间的程序执行时间的方法是:记录下两断点的cyclecou...
我看到网上有人说查看C程序段执行的时间可以通过IAR的resister cyclecounter来查看,计算两短点之间的程序执行时间的方法是:记录下两断点的 cyclecounter的值,然后做差,用差值乘以机器周期即可(比如使用的是8M晶振,那差值就是乘以10^-8)
按着这个说法cyelecounter一秒钟应该计数800000000 次才对(按着主频8M计算)。可是我软件仿真通过上边的方案实验,我测试了一下20s的时间段cyelecounter的差值大约47M,理论上20s的时间段的差值应该为20*8M啊?为什么差这么多?
帮忙解释下 展开
按着这个说法cyelecounter一秒钟应该计数800000000 次才对(按着主频8M计算)。可是我软件仿真通过上边的方案实验,我测试了一下20s的时间段cyelecounter的差值大约47M,理论上20s的时间段的差值应该为20*8M啊?为什么差这么多?
帮忙解释下 展开
展开全部
亲,仿真时间和实际时间不一致的,一版PC仿真比较慢的,
也就是说你秒表掐20秒,PC仿真时间还不到20秒,
建议,写一段测试代码段,段头段尾加标志(拉高拉低IO,让示波器能够捕捉),仿真计算出经过两个标志位的机器周期数,然后示波器量测这两个标志位时间(代码实际运行时间)。这样子在计算频率。
也就是说你秒表掐20秒,PC仿真时间还不到20秒,
建议,写一段测试代码段,段头段尾加标志(拉高拉低IO,让示波器能够捕捉),仿真计算出经过两个标志位的机器周期数,然后示波器量测这两个标志位时间(代码实际运行时间)。这样子在计算频率。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询