linux 驅動中定時器timer學習

2021-09-23 01:40:58 字數 1515 閱讀 5980

linux中定時器,比較簡單。

struct timer_list

;步驟:

init_timer(struct timer_list *timer);//初始化定時器

add_timer(struct timer_list *timer);//啟動定時器

del_timer(struct timer_list *timer);//刪除定時器

簡單例項:

#include #include #include #include static struct timer_list my_timer;

static unsigned long args = 0;

static void my_timer_func(unsigned long arg)

static int __init my_timer_init(void)

static void __exit my_timer_exit(void)

module_init(my_timer_init);

module_exit(my_timer_exit);

module_license("gpl");

makefile檔案

#ifneq ($(kernelrelease),)

obj-m := timer_s01.o

#else

kdir := /lib/modules/$(shell uname -r)/build

all:

make -c $(kdir) m=$(shell pwd) modules

clean:

make -c $(kdir) m=$(shell pwd) clean

#endif

編譯完成後:

insmod timer_s01.ko

kernel列印:

<4>[ 4216.980183] 定時器列印 arg = 122

<4>[ 4221.987377] 定時器列印 arg = 123

<4>[ 4226.995415] 定時器列印 arg = 124

<4>[ 4232.003418] 定時器列印 arg = 125

<4>[ 4237.011527] 定時器列印 arg = 126

<4>[ 4242.019568] 定時器列印 arg = 127

<4>[ 4247.027698] 定時器列印 arg = 128

<4>[ 4252.035926] 定時器列印 arg = 129

<4>[ 4257.049528] 定時器列印 arg = 130

<4>[ 4262.051844] 定時器列印 arg = 131

<4>[ 4267.059999] 定時器列印 arg = 132

<4>[ 4272.070906] 定時器列印 arg = 133

<4>[ 4277.076879] 定時器列印 arg = 134

5s列印一次。

Linux驅動定時器相關

本文為我學習時所寫,非百分之百原創,望指出錯誤之處。參考資料 linux驅動之定時器 mod timer 核心定時器的使用 好幾個例子add timer linux核心高精度定時器hrtimer 使用例項 hrtimer的簡單使用 原理和實現 定時器被排程的函式肯定是非同步執行的,它類似於一種 軟體...

Linux驅動中定時器的使用

linux timer.h 定義乙個struct timer list的結構體全域性變數,即定時器 static struct timer list buttons timer 初始化該定時器 init timer buttons timer 設定定時器函式,當定時器計數到達時,該函式將被呼叫 bu...

定時器驅動

想要每次進tick的時間相同如,每秒進100次tick tick想要100次 秒,那乙個tick就是1ms,而系統時鐘頻率是12 000 000 12 000 000hz 100hz,就是時鐘頻率除以tick頻率,翻譯過來就是每秒的時鐘滴答次數 每秒的tick次數等於乙個tick多少次時鐘滴答,然後...