前面几节我简要分析了linux中的异常的初始化以及调用流程。
详细分析了中断向量表的搬移,中断的初始化流程,中断注册,以及中断发生后的调用流程。
本节就使用一下中断。
下面先看一下源码。
#include <linux/fs.h> /* 包含file_operation结构体 */
#include <linux/init.h> /* 包含module_init module_exit */
#include <linux/module.h> /* 包含LICENSE的宏 */
#include <asm/uaccess.h>
#include <linux/io.h>
#include <linux/device.h>
#include <linux/gpio.h>
#include <mach/gpio.h>
#include <asm/gpio.h>
#include <linux/gfp.h>
#include <linux/interrupt.h>
static unsigned int major;
static struct class *third_class;
static struct device *third_dev;
/* 自定义的中断处理函数 */
static irqreturn_t irq_handler(int irq, void *dev_id)
{
print