在GPIO上使用GPS PPS在嵌入式Linux中设置系统时间

时间:2015-01-07 22:21:47

标签: c linux gps embedded-linux gpio

我已经在运行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>

非常感谢。

1 个答案:

答案 0 :(得分:1)

如果需要准确可靠的同步,则应将ntpd与PPS一起使用。 ntpd使用考虑到可靠性的测试算法。开销可以忽略不计。