Обычно можно установить системные часы с помощью http://linux.die.net/man/1/date. Однако это не предоставляет точность миллисекунды (это действительно имеет наносекунды, но это не работает над моей системой). Там другой путь состоит в том, чтобы установить системные часы, или я должен буду записать программу C, чтобы сделать это?
Если ntpd
к тяжелому для Вас, попробуйте OpenNTPD. Это не утверждает, что было точной подмикросекундой, но действительно сохраняет часы моих серверов в синхронизации ниже диапазона milisecond дрейфа. Это использует sntp, который также немного более легок.
Как другие сказали, аппаратные часы дрейфуют, Вы не можете просто установить их и быть в порядке.
Даже если рассматриваемая встроенная система не поддерживает NTP, Вы оказываетесь перед необходимостью реализовывать что-то много как он или выполнять Вашу программу C довольно часто, для противостояния неизбежному дрейфу двух часов. Плюс, Ваша программа C должна будет считать в течение ее собственного времени выполнения и задержки соединения между этими двумя компьютерами (встроенная система и сервер), особенно поскольку точность подмикросекунды - то, в чем Вы нуждаетесь.
Это может быть более быстро для Вас для нахождения ntpd экземпляра, который можно настроить между этими двумя системами. Инструменты для этого всегда присутствуют в современных операционных системах реального времени (для некоторого определения "всегда").