IAR下如何确定某一段代码的执行时间?

2019-03-24 10:02发布

现有IAR for ARM 6.10,J-Link 4.22,LM3S9B96-C3。请问怎么能够测试一段代码的执行时间呢?无多任务无中断,就是单独执行几个函数。 用simulator查看cyclecounter,感觉数值不对啊。我是运行了一个AES加密函数,连密钥扩展到加密完成,两条cyclecounter之间的差值才有9个,这也太快了吧。   [ 本帖最后由 ultrabenz 于 2012-6-6 17:00 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
tekkon
1楼-- · 2019-03-24 18:16
< ROM_SysTickPeriodSet(0xffffffff);
ROM_SysTickEnable();
temp = ROM_SysTickValueGet();
//你要测试的那段代码
temp = temp - ROM_SysTickValueGet();
(M3和M4的systick似乎都是24位递减计数器, 所以要上次的值减去现在的)

temp*1/system_clock 就是那段代码的执行时间

如果你用操作系统的话,也可以用xTaskGetTickCount()来替换ROM_SysTickValueGet()取值计算
ultrabenz
2楼-- · 2019-03-24 18:46
 精彩回答 2  元偷偷看……
jobszheng5
3楼-- · 2019-03-24 19:34
你的代码表示,你的频率运行在16Mhz
ultrabenz
4楼-- · 2019-03-24 20:00
这个16Mhz是表示的外部输入晶振频率,这个芯片数据手册写的是工作频率80Mhz。
shower.xu
5楼-- · 2019-03-25 00:52
 精彩回答 2  元偷偷看……
ultrabenz
6楼-- · 2019-03-25 03:25
没明白啥意思?是说用SYSCTL_USE_PLL就是80Mhz吗?

一周热门 更多>

相关问题

    相关文章