0

我正在开发一个基于 Raspberry Pi 的项目,该项目有一个 GPS 模块,我的老板希望我从中获取系统时钟的时间。然而,我们还需要在不同的传感器上读取读数,而 GPS 可能无法修复,并且我们需要知道读取这些读数的毫秒精度(50-100ms 的公差很好)。

就我个人而言,我想要一个硬件 RTC,但我被指示要解决它。我的想法是用系统启动后的相对时间标记每个读数,系统时间不可靠,并且在可用时由 NTP/卫星时间更新(然后我可以在同步时间可用时使用相对时间来修复记录时间)。

那么,如何在 Linux 中从用户空间 C 代码中获得精确到毫秒的正常运行时间呢?像内核中可用的 jiffies 值这样的东西是完美的。

4

1 回答 1

0

我认为您必须检查板上的主控制器(CPU)。通常,会在 CPU 中集成一个硬件定时器模块,或者在 CPU 内核中实现递减寄存器。

如果您的 CPU 上有硬件定时器或 DEC 寄存器,则使用它来实现周期性中断(频率可以是 1000HZ 或其他)。中断处理程序可以通知/唤醒用户空间进程以完成必要的实时工作。

于 2013-07-26T01:48:52.427 回答