- 博客(3)
- 收藏
- 关注

原创 linux驱动中锁的使用
一、atomic用法TP代码中每个判断irq_enable的地方全部换成atomic_cmpxchg,对比和设值一起做完,避免在disable已经判断完毕,但是还没给flag赋值时,被中断打断,再次执行disable,中断函数结束后又执行一次disable,每次执行disable都会对desc->depth++,所以连续加两次。之后enable++一次,无法正常使能中断,TP失效。#inc
2017-07-31 11:00:13
2099

原创 中断底半部及工作队列的用法
使用场景:a)如果一个任务对时间非常敏感,将其放在中断处理程序中执行。b)如果一个任务和硬件相关,将其放在中断处理程序中执行。c)如果一个任务要保证不被其他中断(特别是相同的中断)打断,将其放在中断处理程序中执行。d)其他所有任务,考虑放在下半部去执行。e)不能睡眠 #include #include #include #include #include
2017-07-31 10:57:10
460

原创 Hrtimer定时器以及等待队列的使用
简单粗暴:#includeStatic 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
420
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人