首页 理论教育 Linux驱动程序开发实例:内核定时器用法与实例

Linux驱动程序开发实例:内核定时器用法与实例

时间:2023-10-19 理论教育 版权反馈
【摘要】:内核如果要在以后某一个规定的时刻运行一段程序或进程就要用到内核定时器。内核定时器是一种软件定时器,它可以在一个确切的时间点上激活相应的程序段或进程。到期的定时器会自动删除int del_timer;//修改定时器的expire值int mod_timer;例5.5 内核定时器实例本例演示内核定时器的基本用法,安装模块会启动定时器,卸载模块会停止定时器。

Linux驱动程序开发实例:内核定时器用法与实例

内核如果要在以后某一个规定的时刻运行一段程序或进程就要用到内核定时器。内核定时器是一种软件定时器,它可以在一个确切的时间点上激活相应的程序段或进程。Linux内核中定义了一个timer_list结构,利用它可以实现内核定时器功能:

与定时器相关的函数包括:

//增加定时器

void add_timer(struct timer_list*timer);

//删除未到期的定时器。到期的定时器会自动删除

int del_timer(struct timer_list*timer);

//修改定时器的expire值

int mod_timer(struct timer_list*timer,unsigned long expires);

例5.5 内核定时器实例

本例演示内核定时器的基本用法,安装模块会启动定时器,卸载模块会停止定时器。代码见\samples\5schedule\5-5time。核心代码如下:(www.xing528.com)

运行结果如下:

[root@urbetter drivers]#rmmod timedemo

[root@urbetter drivers]#

另外,timer_list->function有一个参数,这个参数存放在timer_list->Data中,使用方法如下:

simple_timer.Data=5;

simple_timer.function=&simple_timer_handler;

add_timer(&simple_timer);

修改之后simple_timer_handler函数的参数data的值应为5。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈