钟二网络头像

钟二网络

探索SQL查询技巧、Linux系统运维以及Web开发前沿技术,提供一站式的学习体验

  • 文章92531
  • 阅读813354
首页 Linux 正文内容

linux驱动中获取毫秒数

钟逸 Linux 2024-06-12 08:33:18 34

在 Linux 驱动程序中,获取毫秒数是一个常见任务。本文将介绍几种常用的 来实现这一目标。

jiffies 计数器

jiffies 计数器是一个全局变量,递增表示自内核启动以来经过的节拍数。每个节拍的时长取决于系统的时钟速率,通常为 1 毫秒或 10 毫秒。要转换为毫秒,可以使用以下公式:

毫秒数 = jiffies * (1000 / HZ)

其中,HZ 是系统时钟速率,可以通过符号 HZ 获取。

gettimeofday() 函数

gettimeofday() 函数获取当前时间,以 struct timeval 结构返回。该结构包含两个成员:

* tv_sec:自纪元以来经过的秒数。

* tv_usec:微秒数(百万分之一秒)。

要获取毫秒数,可以用以下公式:

毫秒数 = tv_sec * 1000 + tv_usec / 1000

ktime_get() 函数

ktime_get() 函数获取当前时间,以 ktime_t 类型返回。这种类型表示自一个任意时间点以来经过的时间,以纳秒为单位。要转换为毫秒,可以使用以下公式:

毫秒数 = ktime_get() / 1000000

哪个 最合适?

这取决于具体要求和驱动程序的上下文。对于高精度计时,建议使用 gettimeofday()ktime_get() 函数。如果需要较粗粒度的计时,jiffies 计数器可以是一个更简单、更有效的选择。

文章目录
    搜索