我正在开发一个基于Raspberry Pi的项目,该项目有一个GPS模块,我的老板希望我从系统时钟中获取时间。然而,我们还需要在不同传感器上读取读数,而GPS可能没有固定,我们需要知道这些读数时的毫秒级精度(50-100ms的公差)。
就个人而言,我想要一个硬件RTC,但我已被指示解决它。我的想法是用系统启动的相对时间标记每个读数,系统时间不可靠,并且在可用时通过NTP /卫星时间更新(我可以在使用相对的同步时间时修复记录)时间)。
那么,如何从用户空间C代码中获得Linux毫秒的精确正常运行时间?像内核中可用的jiffies值一样完美。
答案 0 :(得分:0)
我认为您必须检查电路板上的主控制器(CPU)。通常,CPU中会集成硬件定时器模块,CPU核心中会有递减寄存器实现。
如果CPU上有硬件定时器或DEC寄存器,则使用它来实现定期中断(频率可以是1000HZ或其他)。中断处理程序可以通知/唤醒用户空间进程以执行必要的实时工作。