×
单片机 > 单片机程序设计 > 详情

linux 内核定时器 timer_list

发布时间:2020-08-28 发布时间:
|
linux内核使用timer_list 结构体当作定时器。
 
#include "linux/timer.h"
#include "linux/module.h"
MODULE_LICENSE("GPL");                     
    //不加这句话,虽然不影响功能,但“有时候”程序执行时会打印错误,类似 Disabling lock debugging 
    //due to kernel taint 之类的话
 
struct timer_list tm;
static int num;
static void func()
{
    num++;
    mod_timer(&tm,jiffies+1*HZ);       
    //timer一旦超时,就会执行fuc函数,然后永远的休眠,
    //所以如果没有这mod_timer,hello world 只会执行一次,也就是timer第一次超时时执行的那次。
    //mod_timer可以激活timer。如果你没有add_timer(),激活也没用
 
    printk("hello,world \n ,%d",num);
}
 
 
static int timer_init(void)
{
    init_timer(&tm);                  //初始化定时器,必须在所有下面复制操作前进行定时器初始化
    tm.expires = jiffies +1*HZ; //超时1秒,执行function
    tm.function = func;            //超时后执行的函数
    add_timer(&tm);                //将定时器加入定时器等待队列中
 
    return 0;
}
 
 
static void timer_destory(void)
{
    del_timer(&tm);
    printk("remove timer\n");
}

关键字:linux  内核定时 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址