[牛人杂谈] keil 仿真测量程序运行时间

[复制链接]
1547|18
 楼主| xixi2017 发表于 2020-4-12 18:23 | 显示全部楼层 |阅读模式
有些时候我们对程序的性能需要调优,优化代码以提高起运行效率,那就需要精确的测量某一段代码的运行时间。非常高兴的是在keil里面提供了一个仿真调试手段,用来完成这个任务,好用!
首先做好相关的设置,如下:
第一步:在工程选项里面设置CPU的运行频率。其实对于优化代码来说,这个不一定非得必要和绝对准确,因为我们只要知道在相同的CPU频率下,代码在优化前和优化后两次运行时间差(相对时间),就可以评估出来是否完成了优化,或者提升了多少性能。
198585e92ebafb2e69.png
第二步:在debug的trace菜单也设置好core clock,仿真可以去掉enable。
391485e92ebf6573da.png
684265e92ec2df4067.png

 楼主| xixi2017 发表于 2020-4-12 18:25 | 显示全部楼层
第三步:运行代码,在要测量的代码第一行和最后一行分别放一个断点。
然后记录下来左边寄存器窗口的sec的数值,或者右键在左下角状态栏的“t2:0.00000s”那个位置弹出菜单,点击reset t1,t2
541685e92ec5d22f19.png
843385e92ec674b601.png
第四步:点击运行,最后记录下下来左边那个sec,和先前的相减就是运行时间。也可以直接观察右下角的t就是运行时间。
617425e92ec78eac0b.png
982725e92ec8070639.png
598330983 发表于 2020-4-12 18:39 | 显示全部楼层
多谢分享。
xuanhuanzi 发表于 2020-4-12 23:19 | 显示全部楼层
回头试试这个方法。
 楼主| xixi2017 发表于 2020-4-22 23:41 | 显示全部楼层
xuanhuanzi 发表于 2020-4-12 23:19
回头试试这个方法。

在调试函数上还是非常有效的。
xuanhuanzi 发表于 2020-4-28 23:53 | 显示全部楼层
之前以为这个不设置也行呢,原来跟仿真和测量有关。
gejigeji521 发表于 2020-4-29 21:52 | 显示全部楼层
我要试试能否测试
小明的同学 发表于 2020-4-30 19:43 | 显示全部楼层
51 也支持吗,那就可以调整时序函数了。
小灵通2018 发表于 2020-4-30 20:04 | 显示全部楼层
这个非常重要,这个时间跟实际的是一样的吗
幸福小强 发表于 2020-4-30 20:19 | 显示全部楼层
这个功能非常 。
qcliu 发表于 2020-5-5 15:53 | 显示全部楼层
非常感谢楼主分享
tfqi 发表于 2020-5-5 15:54 | 显示全部楼层
以前还真没这么用过
wiba 发表于 2020-5-5 15:54 | 显示全部楼层
iar可以仿真吗
zljiu 发表于 2020-5-5 15:54 | 显示全部楼层
非常感谢楼主分享
coshi 发表于 2020-5-5 15:55 | 显示全部楼层
非常感谢 学习了
nos001 发表于 2022-10-23 17:47 | 显示全部楼层
不用麻烦的用示波器测时间了
gejigeji521 发表于 2022-10-26 21:36 | 显示全部楼层
如果有条件用示波器也可以,这个是理论值,其实也不错。
jasontu 发表于 2022-11-1 17:20 | 显示全部楼层
不准,flash access time还有wait state,不同家设计不同,直接拿示波器出来量还比较准
Henryko 发表于 2022-11-6 20:09 | 显示全部楼层
可以调整时序函数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

145

主题

2034

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部