Make:
obj-m :=
KDIR
PWD
default:
clean:
install:
uninstall:
内核虚拟设备驱动:
#include <linux/miscdevice.h>
#include <linux/delay.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/mm.h>
#include <linux/fs.h>
#include <linux/types.h>
#include <linux/delay.h>
#include <linux/moduleparam.h>
#include <linux/slab.h>
#include <linux/errno.h>
#include <linux/ioctl.h>
#include <linux/cdev.h>
#include <linux/string.h>
#include <linux/list.h>
#include <linux/pci.h>
#include <linux/gpio.h>
#define DEVICE_NAME "szmap"
static unsigned char array[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
static unsigned char *buffer;
static int my_open(struct inode *inode, struct file *file)
{
}
static int my_map(struct file *filp, struct vm_area_struct *vma)
{
}
static struct file_operations dev_fops = {
};
static struct miscdevice misc = {
};
static int __init dev_init(void)
{
}
static void __exit dev_exit(void)
{
}
module_init(dev_init);
module_exit(dev_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("SHUZHAN");
用户空间测试:
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <linux/fb.h>
#include <sys/mman.h>
#include <sys/ioctl.h>
#define PAGE_SIZE 4096
int main(int argc, char *argv[])
{
here:
}