首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在linux用户空间应用程序中获得最精确的时钟?

如何在linux用户空间应用程序中获得最精确的时钟?
EN

Stack Overflow用户
提问于 2012-08-16 18:03:27
回答 1查看 3K关注 0票数 1

我有一个嵌入式系统,我想在内核模块/驱动程序中与用户空间应用程序共享最精确的时钟,这个应用程序对时钟非常敏感,而且应该是最精确的。

  1. 这些函数需要上下文切换和巨大的开销,而且时钟将不准确,因为syscall。
  2. 我想增加内核模块中每个吉菲的共享整数,假设用户空间应用程序可以直接访问它,问题是我不能共享一个与页面大小不一致的integer/long,并且只为一个long变量声明一个新页面是一项巨大的开销。

我该怎么办?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-16 18:11:11

您希望使用clock_gettime()获得当前时间(自启动以来),使用CLOCK_MONOTONIC (单调但不稳定,因为它受NTP的影响)或CLOCK_MONOTONIC_RAW (单调和稳定,但特定于Linux,并且需要内核>= 2.6.28)。

若要准确地间隔醒来,请使用clock_nanosleep()并指定TIMER_ABSTIME。不幸的是,clock_nanosleep()只支持CLOCK_MONOTONIC而不支持CLOCK_MONOTONIC_RAW,因此不能传递CLOCK_MONOTONIC_RAW获得的唤醒时间,因为这些时钟可能不同。不要忘记检查EINTR的返回代码。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11992937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档