Linux设备驱动编写(一)
什么是驱动程序
内核是操作系统基本的部分,而操作系统是不能够直接操作硬件的,这样我们就需要设备驱动程序作为操作系统和硬件设备间的粘合剂,负责上下两边的沟通。驱动负责将操作系统的请求传输,转化为特定物理设备控制器能够理解的命令。
经典的驱动程序 Helloworld
/2nd_module/1st/
1 #include //包含了很多装载模块需要的符号和函数的定义
2 #include //用于指定初始化函数和清除函数
4 static int __init test_init(void) //内核初始化函数
5 {
6 printk(“hello world!\n”); //打印函数,和prinft类似
7 return 0;
8 }
10 static void __exit test_exit(void)//内核清除函数
11 {
12 printk(“good bye!\n”);
13 }
14
15 module_init(test_init); //指定初始化函数
16 module_exit(test_exit); //指定清除函数
17
18 MODULE_LICENSE(“GPL”); //指定代码使用的许可证
19 MODULE_AUTHOR(“xiao bai”); //指定作者
20 MODULE_VERSION(“1.0”); //指定代码修订号
Makefile文件如下
obj-m += test.o
KDIR:=/root/Desktop/drives/nfsroot-29/linux-2.6.29
all:
make -C $(KDIR) M=`pwd` modules
clean:
make -C $(KDIR) M=`pwd` modules clean
rm -f modules.order