Linux内核中关于定时器Timer的应用

在Touchscreen驱动中

1 声明 
Ad7877.c (\linux-2.6.30.4\drivers\input\touchscreen): struct timer_list timer; /* P: lock */

2 初始化

在函数 static int __devinit ad7877_probe(struct spi_device *spi) 中

执行 setup_timer(&ts->timer, ad7877_timer, (unsigned long) ts); 进行初始化

其中ad8777_timer是回调函数,ts为给该函数的参数

3 使用

在函数 static void ad7877_callback(void *_ts) 中

mod_timer(&ts->timer, jiffies + TS_PEN_UP_TIMEOUT);

mod_timer函数用于修改超时时间,使timer继续生效

否则timer只会执行一次回调函数

4 释放

在函数 static void ad7877_disable(struct ad7877 *ts) 中

if (del_timer_sync(&ts->timer))

删除timer,del_timer_sync用于多核cpu同步,否则可以使用del_timer进行删除


你可能感兴趣的:(timer,kernel)