linux的核心中定義了乙個定時器的結構:
#include
struct timer_list ;
例如要定義這個結構使用可以這樣: struct timer_list testtimer;(testtimer可隨意命名)
利用這個結構我們可以在驅動中很方便的使用定時器。
一: timer的api函式:
初始化定時器:
void init_timer(struct timer_list * timer);
增加定時器:
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);
二:使用定時器的一般流程為:
(1)建立timer、編寫超時定時器處理函式function;
(2)為timer的expires、data、function賦值;
(3)呼叫add_timer將timer加入列表;
(4)在定時器到期時,function被執行;
(5)在程式中涉及timer控制的地方適當地呼叫del_timer、mod_timer刪除timer或修改timer的expires。
下面是我寫的乙個demo程式,每隔一秒執行testtimer_czd一次,執行列印一次:
#include
#include
#include
#include
//jiffies在此標頭檔案中定義
#include
#include
struct timer_list testtimer;
//定義乙個定時器
void
testtimer_czd
(unsigned
long arg)
static
int __init testtimer_init (
void
)static
void __exit testtimer_exit (
void
)module_init
(testtimer_init)
;module_exit
(testtimer_exit)
;module_author
("czd>");
module_description
("testtimer driver");
module_license
("gpl"
);
linux驅動中使用定時器的設定
我的核心是2.4.18的。linux的核心中定義了乙個定時器的結構 include struct timer list 利用這個結構我們可以在驅動中很方便的使用定時器。一 timer的api函式 初始化定時器 void init timer struct timer list timer 增加定時器...
linux中使用定時器
1.使用14號訊號sigalrm,呼叫alarm函式 include include include include include void handle int signum int main int argc,const char argv return 0 每隔3秒向自身傳送乙個sigalr...
Linux驅動中定時器的使用
linux timer.h 定義乙個struct timer list的結構體全域性變數,即定時器 static struct timer list buttons timer 初始化該定時器 init timer buttons timer 設定定時器函式,當定時器計數到達時,該函式將被呼叫 bu...