毫秒分辨率计时器是LinkIT 7688

问题描述 投票:-1回答:1

我正在为Mediatek开发LinkIt Smart 7688设备。我需要在用户空间应用程序中做一些计时,我需要至少10ms的分辨率(最好是1ms)。

但是我尝试过的每个系统调用只返回1秒的分辨率值。 clock_gettime(尝试了所有不同的时钟)和gettimeofday应该提供亚秒级分辨率不。

在目标上执行dmesg显示内核时间戳的分辨率低于1秒,因此我得出结论,时钟源可用亚秒级分辨率。 (如果不是这样的话,我会非常高兴:))

如何在Linkit Smart 7688设备上获得亚秒级分辨率的时间戳?

也许我可能会错过一些内核配置,选择正确的时钟源供用户空间使用?我找不到一个。

linux timer embedded embedded-linux clock
1个回答
0
投票

不仅要使用gettimeofday返回的秒数,还要使用usec

gettimeofday(&t0, 0);
/* ... */
gettimeofday(&t1, 0);
long elapsed = (t1.tv_sec-t0.tv_sec)*1000000 + t1.tv_usec-t0.tv_usec;
© www.soinside.com 2019 - 2024. All rights reserved.