一个内核定时器模块

Posted foggia2004

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个内核定时器模块相关的知识,希望对你有一定的参考价值。

/*  内核定时器测试模块  */
#include <linux/kernel.h>        //内核 
#include <linux/module.h>        //内核模块 
#include <linux/init.h>            //模块初始化和注销 
#include <linux/slab.h>            //屋里内存分配管理 
#include <linux/list.h>         //内核链表 
#include <linux/timer.h>        //内核定时器 


//内核模块声明
MODULE_LICENSE("GPL"); 
MODULE_AUTHOR("EDISON REN"); 
MODULE_DESCRIPTION("KERNEL TIMER TEST"); 
MODULE_ALIAS("KERNEL TIMER TEST"); 

struct timer_list timer;        //内核定时器

void timer_function(int para)
{
    printk("Timer Expired and para is:%d\n",para);
} 

int timer_init(void)
{
    init_timer(&timer);                //初始化内核定时器
    timer.data=10;                    //参数 
    timer.expires=jiffies+ (3*HZ);    //延时3秒    
    timer.function=timer_function;    //定时器的执行函数
    add_timer(&timer);                //将定时器加入到系统定时器链表中
    printk("Create Timer Success!\n");
    return 0; 
}

int timer_exit(void)
{
    del_timer(&timer);                //删除该定时器 
    printk("Delete Timer!\n");
    
    return 0;
}

module_init(timer_init);
module_exit(timer_exit);

Makefile

obj-m := ktimer.o

KDIR := /usr/src/linux-headers-3.13.0-32-generic/

all:
    make -C $(KDIR) M=$(PWD) modules #ARCH=arm CROSS_COMPILE=arm-linux-
clean:
    rm -f *.ko *.o *.mod *.symvers *.order *.mod.c

 

以上是关于一个内核定时器模块的主要内容,如果未能解决你的问题,请参考以下文章

JS高阶---浏览器内核

测试片段不执行定时器或示例超时

模仿linux内核定时器代码,用python语言实现定时器

什么是在 C++ 中获取总内核数量的跨平台代码片段? [复制]

HarmonyOS内核开发(任务定时器信号量)

鸿蒙轻内核定时器Swtmr:不受硬件和数量限制,满足用户需求