
IRQ
那颗流星
提炼升华
展开
-
记一次gpio唤醒调试
使用TP的IRQ脚做手势唤醒。双击屏幕后,从log看cpu已经被唤醒了,但很快又睡下去,通过log分析,发现没有进入中断处理函数。这里使用的电平中断。以前已分析过电平/边沿唤醒cpu流程https://blog.youkuaiyun.com/mike8825/article/details/98473014,打印发现handle_level_irq只跑了一遍,第二次的handle_level_irq没有过来导...原创 2019-12-14 19:43:01 · 1076 阅读 · 0 评论 -
tasklet使用及原理
tasklet基于软中断实现,先看下软中断的类型enum{ HI_SOFTIRQ=0, TIMER_SOFTIRQ, NET_TX_SOFTIRQ, NET_RX_SOFTIRQ, BLOCK_SOFTIRQ, BLOCK_IOPOLL_SOFTIRQ, TASKLET_SOFTIRQ, SCHED_SOFTIRQ, HRTIMER_SOFTIRQ, /* Unused,...原创 2019-11-07 15:21:56 · 455 阅读 · 0 评论 -
Linux中断调试小结
在Linux中使用中断没什么要特别注意的,但最近调一个中断很苦恼,特总结一下。程序上将中断配置好了,打印信息上也没有报错,程序上将该引脚配置成双边沿触发中断,通过cat /proc/interrupts一直没有看到中断触发。拿示波器测量该引脚电平,一是低电平,发现硬件上拉不高该引脚电平,断开io引脚与外部电路的连接,测量外部电路的电压正常,怀疑是gpio内部的设置导致的,该引脚本来的功能是uim2...原创 2017-01-13 21:13:42 · 3904 阅读 · 1 评论 -
Linux休眠后开启中断的方法及中断唤醒过程
系统进入休眠后,会进入dpm_suspend_noirq函数。该函数遍历所有的中断,进行关闭。int dpm_suspend_noirq(pm_message_t state){ device_wakeup_arm_wake_irqs(); suspend_device_irqs();}static inline bool irqd_is_wakeup_set(struct ...原创 2019-08-12 00:56:48 · 5401 阅读 · 0 评论 -
Linux中断流程分析
参考文档IHI0048B_b_gic_architecture_specification.pdfIHI0069E_gic_architecture_specification.pdfDUI0471M_software_development_guide.pdfGIC400架构中断的类型SGI:software generatedinterrupt,软件出发产生...原创 2019-12-09 10:56:08 · 1230 阅读 · 0 评论