你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

在keil中使用Event Recorder调试STM32F446RET6,中间没有语句的情况下也有1.5us左右的时间,这是什么原因呢

[复制链接]
XNHTHLY 提问时间:2024-8-21 08:30 / 未解决

8ebc205756333285213c2ca4226a4fb.png4c7a46c6b7b72b65cb6943ef248f51e.png

收藏 评论13 发布时间:2024-8-21 08:30

举报

13个回答
butterflyspring 回答时间:2024-8-21 17:36:04
这个从原理上看,它依据芯片的trace功能,这个功能又与trace的频率以及SWO的输出频率有关。


本身记录的这个函数也要运行一段时间,所以它的精度用来记录一些事件还行。

如果精确记录指令,那是达不到的,本身工具的输出频率就远低于主频的。
xmshao 回答时间:2024-8-21 10:40:16
Event Recorder 是KEIL调试器的部件,属于软件组件,即它是一个软件层面的工具,通过在应用代码中插入事件注释


来记录和分析系统事件。个人对这个不太了解,有了解的人可以聊聊。


两个操作间有延时应该是可以理解的,至于具体多长延时合理,跟它的运行机制以及当前系统有关,每次对event recorder的调用


与完成执行肯定是有时间开销的。
XNHTHLY 回答时间:2024-8-21 11:02:12

xmshao 发表于 2024-8-21 10:40
Event Recorder 是KEIL调试器的部件,属于软件组件,即它是一个软件层面的工具,通过在应用代码中插入事件 ...

我也是刚研究,加一行i++代码,运行时间会变成1.63us

但是这个空语句运行的时间不是确定的,会有几十纳秒波动

那我该怎样保证算出来的时间的准确性呢

用它的API指令放在语句前后,也会有1.5us左右的误差

XNHTHLY 回答时间:2024-8-21 12:58:59

xmshao 发表于 2024-8-21 10:40
Event Recorder 是KEIL调试器的部件,属于软件组件,即它是一个软件层面的工具,通过在应用代码中插入事件 ...

我也是刚研究,中间加一个i++,运行时间为1.63us

我测试都是有波动的,误差感觉在几十ns

用API的指令测试也是

那怎么保证这个测量的时间的准确性呢

XNHTHLY 回答时间:2024-8-21 13:05:15

但是这个时间他好像也不是确定的,会有几十ns的误差,我这里是这样显示的

包括我用他自带的API的指令,自己减了一下也是1.5us左右

XNHTHLY 回答时间:2024-8-21 13:09:36

b1c50cfb8bcf83bb78410cb9405f5e0.png

我加一行i++语句,显示时间是这么多,减去上面那个,差不多0.07us,70ns,我也感觉有点大了

但是每次这样计算就很麻烦,而且这个空语句运行也有误差,有没有大佬告知一下为啥啊,脑壳痛,这个计算时间准吗

XNHTHLY 回答时间:2024-8-22 08:35:41

butterflyspring 发表于 2024-8-21 17:36
这个从原理上看,它依据芯片的trace功能,这个功能又与trace的频率以及SWO的输出频率有关。</p>
<p>

好滴

XNHTHLY 回答时间:2024-8-22 09:26:20

要是想精确的测量一段代码的运行时间,各位大佬有啥好意见吗

butterflyspring 回答时间:2024-8-22 10:12:21

XNHTHLY 发表于 2024-8-22 09:26
要是想精确的测量一段代码的运行时间,各位大佬有啥好意见吗

试试用 DWT 计数器,这个是以内核频率计数的。

xmshao 回答时间:2024-8-22 13:37:19

XNHTHLY 发表于 2024-8-22 09:26
要是想精确的测量一段代码的运行时间,各位大佬有啥好意见吗

原来这样啊。

用STM32片内定时器多方便,又准确。其它分辨率不可能高于定时器的计数分辨率了,此时就不要对TIMER做分频了。

XNHTHLY 回答时间:2024-8-22 15:40:07

butterflyspring 发表于 2024-8-22 10:12
试试用 DWT 计数器,这个是以内核频率计数的。

好滴,这个精确一点,我用过啦

XNHTHLY 回答时间:2024-8-22 15:42:39

xmshao 发表于 2024-8-22 13:37
原来这样啊。</p>
<p>用STM32片内定时器多方便,又准确。其它分辨率不可能高于定时器的计数分辨率了,此时 ...

定时器也好用,现在我觉得这个Event Recorder一点都不好用

XNHTHLY 回答时间:2024-8-22 15:44:12

XNHTHLY 发表于 2024-8-22 15:42</p>
<p>定时器也好用,现在我觉得这个Event Recorder一点都不好用

刚刚用Event Recorder测一个50us中断,只用A0,显示47.7us左右,这个还可以接受,在随便加一个A1,两个都不对了,不知道为啥

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版