mda*_*vis 3 linux date system time-precision
我有一个嵌入式Linux设备,通过串行通信协议与另一个"主"设备连接.主设备定期将其日期传递给从设备,因为稍后从设备将向主设备返回需要准确加时间戳的信息.但是,Linux'date'命令仅将系统日期设置为第二精度.这对我们的用途来说还不够.
有谁知道如何设置Linux机器的时间比1秒钟更精确?
settimeofday(2)
其他答案中给出的方法存在严重问题:它完全符合您的要求.:)
直接改变系统时间的问题在于,如果调整是否定的话,它可能会混淆在变更之前和之后获得时间的程序.也就是说,他们可以感知时间倒退.
对此的修复adjtime(3)
既简单又便携,或者adjtimex(2)
复杂,功能强大且特定于Linux.这两个调用都使用复杂的算法在一段时间内缓慢调整系统时间,仅向前调整,直到达到所需的更改.
顺便问一下,你确定你不是在这里重新发明轮子吗?我建议您阅读Julien Ridoux和Darryl Veitch的ACM Queue论文"互联网上的稳健时序原理".你正在研究嵌入式系统,所以我希望图5中的振铃可以让你感到寒冷.你能说"阻尼振荡器吗?" adjtime()
并adjtimex()
使用这个有问题的算法,所以在某种意义上我反对我自己的建议,但Mills算法仍然比步调整非算法更好.如果你选择实现RADclock,那就更好了.
归档时间: |
|
查看次数: |
4133 次 |
最近记录: |