1

Как правило, вы можете установить системные часы, используя http://linux.die.net/man/1/date. Тем не менее, он не обеспечивает точность в миллисекундах (у него есть наносекунды, но это не работает в моей системе). Есть ли другой способ установить системные часы, или мне нужно будет написать C программу для этого?

3 ответа3

2

Если ntpd тяжел для вас, попробуйте OpenNTPD. Он не претендует на точность до микросекунды, но поддерживает синхронизацию часов моих серверов ниже дрейфа диапазона в миллисекунды. Он использует sntp, который также немного более легкий.

Как уже говорили другие, аппаратные часы дрейфуют, вы не можете просто их установить и все будет в порядке.

2

Вы должны использовать ntpd который будет поддерживать точность вашей системы, синхронизируя с серверами времени, используя NTP (сетевой протокол времени).

1

Даже если рассматриваемая встроенная система не поддерживает NTP, вам придется реализовать нечто похожее на это или выполнить свою программу на C довольно часто, чтобы противостоять неизбежному смещению двух часов. Кроме того, ваша C-программа должна будет учитывать свое собственное время выполнения и задержку соединения между двумя компьютерами (встроенной системой и сервером), особенно потому, что вам нужна точность до микросекунды.

Возможно, вам будет проще найти экземпляр ntpd, который вы можете настроить между двумя системами. Инструменты для этого всегда присутствуют в современных операционных системах реального времени (для некоторого определения "всегда").

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .