Hrtimer定时器以及等待队列的使用
来源:互联网 发布:淘宝蓝钻和黄钻的区别 编辑:程序博客网 时间:2024/06/05 17:30
简单粗暴直接上代码(可直接在linux驱动中使用,方便调试):
#include<linux/kthread.h>
Static unsigned int usb_flag=0;
Static DECLARE_WAIT_QUEQUE(thermal_value_waiter);
Static DECLARE_WAIT_QUEQUE(thermal_kthread_waiter);
Static struct hrtomer usb_thermal_timer;
Static struct task_struct *usb_thermal_kthread;
Int usb_thermal_kthread_handler(void *unused)
{
Ktime_t ktime;
do{
Ktime=ktime_set(20000/1000000,(20000%1000000)*1000);
Wait_event_interruptible(thermal_kthread_waiter,usb_flag==1);
usb_flag==1;
{
.......
....... //定时执行代码
}
Hrtimer_start(usb_thermal_timer,ktime,HRTIMER_MODE_REL);
}while(!kthread_should_stop());
Return 0;
}
Enum hrtimer_restart usb_thermal_timer_func(struct hrtimer *timer)
{
Usb_flag=1;
Wake_up_interruptible(&thermal_kthread_waiter);
Return HRTIMER_NORESTART;
}
Void usb_thermal_sw_workaround_init(void) //可以放在probe中init
{
Ktime_t ktime;
Ktime=ktime_set(20000/1000000,(20000%1000000)*1000);
Hrtimer_init(&usb_thermal_timer,CLOCK_MONOTONIC,HRTIMER_MODE_REL);
Usb_thermal_kthread=kthread_run(usb_thermal_kthread_handler,0,”usb_thermal_kthread”);
Hrtimer_start(&usb_thermal_timer,ktime,HRTIMER_MODE_REL);
}
个人总结,请勿转载
- Hrtimer定时器以及等待队列的使用
- hrtimer定时器的使用
- Linux的hrtimer高精度定时器的使用
- hrtimer和work工作队列的使用
- hrtimer和work工作队列的使用
- hrtimer和work工作队列的使用
- hrtimer和work工作队列的使用
- 高精度定时器hrtimer使用示例
- 等待队列的使用
- hrtimer的简单使用
- hrtimer 高精定时器使用例子
- Linux 高精度定时器hrtimer 使用示例
- Linux下的hrtimer高精度定时器
- 等待队列的简单使用
- 高精度定时器(HRTIMER)的原理和实现
- linux 高精度定时器 hrtimer 用户空间的应用 man timer_create
- Linux:高精度定时器(HRTIMER)的原理和实现
- Linux内核 - 等待队列的使用
- [转]一维插值(interp1)和二维插值(interp2)
- android tablayout使用及一个坑(很难受的一个坑)
- 刘汝佳 算法竞赛入门经典 第5章 C++与STL入门
- codeforces 673D(思维)
- Elasticsearch小故事
- Hrtimer定时器以及等待队列的使用
- PHP文件上传下载
- 【玖哥乱弹】Android初学路上会遇到的瓶颈
- 数据库杂记
- 字符串匹配算法KMP算法
- docker container里起ssh服务
- npm使用
- MongoDB数据库索引构建情况分析
- 连接redis时:Connection reset by peer: socket write error&&mysql:Access denied for user 'root'@'localhos