Linux Kernel 中断子系统
文章平均质量分 66
九月天-深圳专业软硬件开发
Hello CSDN.
展开
-
中断唤醒系统流程
一般来说,唤醒设备会有一个interrupt pin硬件连接到SOC 的GPIO pin,一般来说,当设备需要唤醒系统的时候,会通过改变interrupt pin电平状态,而SOC会检测到这个变化,将boot cpu唤醒,进而唤醒整个CPU系统,系统通过相关子系统通知上层做出相应的处理.这就是中断唤醒的过程.为了使能设备的唤醒能力,设备驱动中会在suspend的时候通过enable_irq_wake(irq)接口使能设备SOC引脚的中断唤醒能力.enable_irq_wake()可以有两种途径:1.d原创 2021-05-07 09:31:41 · 1005 阅读 · 0 评论 -
中断子系统之下半部处理机制
本文根据http://www.wowotech.net/linux_kenrel/soft-irq.html学习记录下半部机制主要有:softirq,tasklet,workqueue,kernel thread.tasklet是基于softirq实现.softirq性能搞,tasklet方便适用kernel thread是老版本内核的某些外设驱动会适用,现在基本已经被抛弃.这样会导致资源极大的浪费(进程id是其一,还有很多其他的资源,例如内存消耗也比较大,调度器需要调度更多的thread等原创 2021-04-16 18:35:12 · 311 阅读 · 0 评论 -
GIC驱动
本文以RK3288 GIC-400为例学习kernel/driver/irqchip/irq-gic.c(GICV2版本驱动)gic再dts中的定义rk3288.dtsigic: interrupt-controller@ffc01000 {compatible = “arm,gic-400”;interrupt-controller;#interrupt-cells = <3>;#address-cells = <0>; reg = <0x0 0xff原创 2021-04-16 11:06:49 · 356 阅读 · 0 评论 -
ARM-CORE实现中断异常原理
以51单片机中断例程为例为例,如下图:首先,MCU的启动文件(*.S)里面会定义异常向量表,当中断来临时,CPU触发异常跳转到异常向量表地址.而该地址存储的是跳转到中断处理程序指令:如下图,异常向量表里面以及定义了串行口中断 异常地址0x0023H,而0x0023里面具体内容是LJMP UART0_ISP当串口0产生中断后,触发CPU跳转到0x0023,在执行跳转函数,进而执行uart0的中断处理函数UART0_ISR(void)函数2.ARM的异常有哪些:ARMV7上:ARM异原创 2021-04-16 10:11:01 · 188 阅读 · 0 评论 -
Linux kernel 中断子系统之gic介绍
http://www.wowotech.net/irq_subsystem/interrupt_subsystem_architecture.html转载 2021-04-02 11:56:44 · 570 阅读 · 0 评论