我想在Linux设备驱动程序中实现一个计数器,该计数器在每个固定的时间间隔后增加。我想在计时器的帮助下做到这一点。示例代码段将非常有用。

最佳答案

看看下面的文章IBM Developerworks: Timers and Lists

有一个关于如何使用Linux内核计时器的小示例(为方便起见,在此处包括了它,注释来自我本人,删除了printk消息)

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/timer.h>

MODULE_LICENSE("GPL");

static struct timer_list my_timer;

void my_timer_callback( unsigned long data )
{
     /* do your timer stuff here */
}

int init_module(void)
{
  /* setup your timer to call my_timer_callback */
  setup_timer(&my_timer, my_timer_callback, 0);
  /* setup timer interval to 200 msecs */
  mod_timer(&my_timer, jiffies + msecs_to_jiffies(200));
  return 0;
}

void cleanup_module(void)
{
  /* remove kernel timer when unloading module */
  del_timer(&my_timer);
  return;
}

09-30 14:39
查看更多