发布时间:2015-01-18 05:42:00
ARM-Linux的IRQ中断处理流程
ARM平台有 IRQ 和 FIQ 两种中断,但后者被Linux弃用,Linux只使用了IRQ。
ARM-Linux的IRQ中断处理流程可大致分为如下几个阶段:
A. 执行一小段汇编代码:保护现场、设置抢占计数
B. 循环执行C函数 asm_do_IRQ()处理中断服务程序和软中断,直到不再有中断标志
C. 中断汇编代码: 执行内核抢占、恢复抢占计数、恢复现场(返回进程上下文)
......【阅读全文】
发布时间:2015-01-17 20:30:01
一、数据结构 中断机制的核心数据结构是 irq_desc, 它完整地描述了一条中断线 (或称为 “中断通道” )。irq_desc 结构在 include/linux/irq.h 中定义: typedef void fastcall (*irq_flow_handler_t)(unsigned int irq, struct irq_desc *desc); struct irq_.........【阅读全文】