此文档是看韦东山老师的视频然后手打下来的,所以可能有些地方会有bug,呵呵 。PS:内核版本不同,头文件的位置可能会不同,所以文档只供参考学习
#include<linux/module.h>
#include<linux/kernel.h>
#include<linux/fs.h>
#include<linux/init.h>
#include<linux/delay.h>
#include<linux/irq.h>
#include<linux/device.h>
#include<linux/interrupt.h>
#include<linux/poll.h>
#include<linux/signal.h>
#include<asm/uaccess.h>
#include<asm/irq.h>
#include<asm/io.h>
#include<asm/arch/regs-gpio.h>
#include<asm/hardware.h>
static struct class *sixth_drv_class;
static struct device *sixth_class_device;
volatile unsigned long *gpfcon=NULL;
volatile unsigned long *gpfdat=NULL;
volatile unsigned long *gpgcon=NULL;
volatile unsigned long *gpgdat=NULL;
static DECLARE_WAIT_QUEUE_HEAD(button_waitq);
/*中断事件的标志,中断处理函数将它置1&