Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 为ARM处理器的外部中断(IRQ 0-5)编写中断处理程序_Linux_Arm_Interrupt - Fatal编程技术网

Linux 为ARM处理器的外部中断(IRQ 0-5)编写中断处理程序

Linux 为ARM处理器的外部中断(IRQ 0-5)编写中断处理程序,linux,arm,interrupt,Linux,Arm,Interrupt,我正在尝试使用NXP QorIQ SDK 2.0为LS1021A外部中断IRQ5编写一个中断处理程序。我已经创建了一个内核模块来处理中断,但是reset_irq函数总是返回-22(无效参数)。 这是我的代码: 创建内核模块是处理中断的正确方法吗? 在请求中断(请求irq)之前,我是否需要执行初始化处理器引脚之类的操作 static unsigned int irqNum; static irq_handler_t irq5_handler(unsigned int irq, void *de

我正在尝试使用NXP QorIQ SDK 2.0为LS1021A外部中断IRQ5编写一个中断处理程序。我已经创建了一个内核模块来处理中断,但是reset_irq函数总是返回-22(无效参数)。
这是我的代码:

创建内核模块是处理中断的正确方法吗? 在请求中断(请求irq)之前,我是否需要执行初始化处理器引脚之类的操作

static unsigned int irqNum;

static irq_handler_t irq5_handler(unsigned int irq, void *dev_id, struct pt_regs *regs){
     printk(KERN_INFO "Interrupt received\n");
     return (irq_handler_t) IRQ_HANDLED;
}

static int __init irq_init(void){
     int result = 0;
     irqNum = 201;  // IRQ number of IRQ5
     result = request_irq(irqNum, (irq_handler_t) irq5_handler, IRQF_TRIGGER_RISING, "irq5_handler", NULL);
     printk(KERN_INFO "request_irq result is %d\n", result);
     return result;
}

module_init(irq_init);