以韦东山老师视频为基础,加入自己的实践
以开发板按键为例,在开发板上运行
1.second_drv.c文件
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/device.h>
//包含class_create, device_create, ......这些程序
#include <asm/uaccess.h>
#include <asm/irq.h>
#include <asm/io.h>
//2.6.39版本内核为此位置
//之前版本的内核位置可能为
//#include <asm/regs-gpio.h>
//#include <asm/hardware.h>
#include <mach/regs-gpio.h>
#include <mach/hardware.h>
//加入两个结构体,用来供内核自动创建主设备号
//主要就是在init和exit两个函数中加入了这两个结构体
static struct class *seconddrv_class;
static struct class_device *seconddrv_class_dev;
volatile unsigned long *gpfcon;
volatile unsigned long *gpfdat;
static int second_drv_open(struct inode