LinkIT 7688上的毫秒分辨率计时器

时间:2017-12-19 12:57:08

标签: linux timer embedded embedded-linux clock

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

gettimeofday(&t0, 0);
/* ... */
gettimeofday(&t1, 0);
long elapsed = (t1.tv_sec-t0.tv_sec)*1000000 + t1.tv_usec-t0.tv_usec;