- 博客(3)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 linux驱动中锁的使用
一、atomic用法 TP代码中每个判断irq_enable的地方全部换成atomic_cmpxchg,对比和设值一起做完,避免在disable已经判断完毕,但是还没给flag赋值时,被中断打断,再次执行disable,中断函数结束后又执行一次disable,每次执行disable都会对desc->depth++,所以连续加两次。之后enable++一次,无法正常使能中断,TP失效。 #inc
2017-07-31 11:00:13
2047
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 中断底半部及工作队列的用法
使用场景: a)如果一个任务对时间非常敏感,将其放在中断处理程序中执行。 b)如果一个任务和硬件相关,将其放在中断处理程序中执行。 c)如果一个任务要保证不被其他中断(特别是相同的中断)打断,将其放在中断处理程序中执行。 d)其他所有任务,考虑放在下半部去执行。 e)不能睡眠 #include #include #include #include #include
2017-07-31 10:57:10
430
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Hrtimer定时器以及等待队列的使用
简单粗暴: #include 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; St
2017-07-31 10:54:29
376
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人