我已经在运行2.6.37的非联网嵌入式Linux主板上的GPIO上安装了带有PPS的GPS。
我试图保持系统时钟尽可能准确(最好超过20us精度)。我已经将时间设置在距串口GPS几毫米的范围内,并希望使用PPS来控制时钟(这是正确的术语吗?)
我已经设置了一个捕获PPS的中断。
我的中断处理程序类似于:
struct timeval tv;
do_gettimeofday(&tv);
..check that we're really close to a second mark and adjust tv to the nearest second...
do_settimeofday(&tv);
问题:
Do do_gettimeofday / do_settimeofday需要花费大量时间才能执行吗?
这是一种可以接受的方式来保持时间吗?
我知道那里有NTP和Linux-PPS,但我不想要开销,除非我有其他微妙的考虑因素来设置我不知道的系统时间。 / p>
非常感谢。
答案 0 :(得分:1)
如果需要准确可靠的同步,则应将ntpd与PPS一起使用。 ntpd使用考虑到可靠性的测试算法。开销可以忽略不计。