我正在为联发科技开发LinkIt Smart 7688设备。我需要在用户空间应用程序中进行一些计时,我需要至少10ms的分辨率(最好是1ms)。
但是我尝试过的每个系统调用只返回1秒的分辨率值。 clock_gettime
(尝试了所有不同的时钟)和gettimeofday
应提供亚秒级分辨率。{/ p>
在目标上执行dmesg
会显示内核时间戳的分辨率低于1秒,因此我得出结论,时钟源可用亚秒级分辨率。 (如果不是这样的话我会非常高兴:))
如何在Linkit Smart 7688设备上获得亚秒级分辨率的时间戳?
也许我可能会错过一些内核配置,选择正确的时钟源供用户空间使用?我找不到一个。
答案 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;