注:本文为个人学习记录,可能存在个别或多处错误,欢迎指正和讨论。
新建了一个 驱动程序,提供 “/dev/sample” 设备作为测试使用。
/*
* Sample Driver
*
* Copyright (C) 2012 Alex,All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation version 2 and no later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*/
#include <linux/compat.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/device.h>
#include <linux/pci.h>
#include <linux/fs.h>
#include <linux/poll.h>
#include <linux/interrupt.h>
#include <linux/cdev.h>
#include <linux/slab.h>
#include <linux/miscdevice.h>
#include <linux/sample.h>
static int sample_val = 0;
static int sample_open(struct inode *node, struct file *filp)
{
printk(KERN_INFO"open sample dev done! \n");
return 0;
}
static int sample_close(struct inode *node, struct file *filp)
{
printk(KERN_INFO"close sample dev done! \n");
return