注意:不同版本的内核头文件的路径有所不一样。
#include <linux/kernel.h> // 驱动要写入内核,与内核相关的头文件, printk()
#include <linux/slab.h> // kmalloc()
#include <linux/fs.h> // 文件系统头文件,file_operation,inode_operations,super_operations
#include <linux/errno.h> // error codes
#include <linux/types.h> // size_t等各种系统typedef的数据类型
#include <linux/fcntl.h> // O_ACCMODE */
#include <linux/poll.h> // COPY_TO_USER */
#include <linux/init.h> // 初始化头文件,#define module_init(x) __initcall(x);
// #define module_exit(x) __exitcall(x);
#include <linux/miscdevice.h> // extern int misc_register();
#include <linux/cdev.h> // void cdev_init()
// struct cdev *cdev_alloc(void);
// void cdev_put(struct cdev *p);
// int cdev_add(struct cdev *, dev_t, unsigned);
// void cdev_del(struct cdev *);
// void cd_forget(struct inode *);
#include <mach/regs-gpio.h> // 和GPIO口操作相关的函数定义的头文件
#include <mach/hardware.h> // 与处理器相关的硬件
#include <asm/irq.h> //与处理器相关的中断
#include <linux/interrupt.h> //操作系统中断
// typedef irqreturn_t (*irq_handler_t)
// (int, void *);
// extern void free_irq(unsigned int, void *);
// extern void disable_irq(unsigned int irq);
// extern void enable_irq(unsigned int irq);
// 等和中断相关函数的声明
#include <linux/wait.h> //等代队列相关头文件//内核等待队列,它包含了自旋锁的头文件
#include <linux/poll.h> // poll_wait
#include <asm/uaccess.h> // copy_to_user和copy_from_user
#include <asm/io.h> // __raw_readl __raw_writel
#include <linux/clk.h> // struct clk *clk_get
// (struct device *dev, const char *id);
// unsigned long clk_get_rate(struct clk *clk);
#include <plat/clock.h> // struct clk;结构体的定义(在arch/arm/plat-
// s3c/plat/include/clock.arch中,对应的源文件在
// /arm/plat-s3c/clock.c)
#include <linux/device.h> //包含了device、class 、device_driver等结构的定义
#include <mach/regs-mem.h> // 和bank相关的寄存器的宏定义
#include <asm/div64.h> // Linux内核中64位除法函数do_div
#include <linux/fb.h> // struct fb_info 结构体的定义
#include <mach/fb.h> // struct s3c2410fb_display
//(在arch/arm/mach-s3c2410/include/mach/fb.h)
#include <linux/module.h> // 模块头文件,MODULE_LICENSE("GPL");内核认识的特定许可有
#include <linux/delay.h> // 延时头文件
#include <stdio.h> //标准输入输出
#include <stdlib.h> //标准库
#include <unistd.h> // file_operations的一些操作函数
#include <sys/ioctl.h> // IO控制
#include <fcntl.h> // I/O阻塞和通道相关的
附注:大部参考自网络!