实现功能:在gpio驱动中加了一个一秒打印
内核中的修改比较简单,基本都是API调用,具体的原理以后再分析吧,内部实现不是很复杂
/*定义定时器结构体*/
static struct timer_list timer;
void mytimeout(void)
{
printk("mytimeout func.\n");
mod_timer(&timer,jiffies + HZ);
}
/*定时器初始化函数*/
void mytimer_init(void)
{
init_timer(&timer); /*初始化定时器*/
timer.expires = jiffies + HZ; /*设置超时时间为1S*/
timer.function = mytimeout; /*设置超时之后中断服务子程序入口*/
add_timer(&timer); /*启动定时器*/
}
static int gpio_keys_probe(struct platform_device *pdev)
{
mytimer_init();
}