Linux内核驱动编程
Linux内核驱动编程
2015-02-12
驱动程序基础的东西这儿就不罗嗦了,百度上有更好的资料,此处我们只是注重实际用处。
下面我们开始写程序:
一、初步helloword程序
首先是来一个简单的hello。
hello.c代码:
1 /****************************** 2 3 the first program 4 5 Hello World! 6 7 ******************************/ 8 9 #include <linux/module.h> 10 11 #include <linux/init.h> 12 13 14 15 static int hello_init(void) 16 17 { 18 19 printk("<0> Hello, world! "); 20 21 return 0; 22 23 } 24 25 26 27 static void hello_exit(void) 28 29 { 30 31 printk("<0> Goodbye,world "); 32 33 } 34 35 36 37 module_init(hello_init); 38 39 module_exit(hello_exit); 40 41 MODULE_LICENSE("Dual BSD/GPL"); //Any version of public GNU license
Make代码:
1 ifeq ($(KERNELRELEASE),) 2 3 KERNELDIR ?= /home/study/system/linux-2.6.31 4 5 PWD := $(shell pwd) 6 7 modules: 8 9 $(MAKE) -C $(KERNELDIR) M=$(PWD) modules 10 11 modules_install: 12 13 $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install 14 15 clean: 16 17 rm -rf *.o *~ core .depend *.cmd *.ko *.mod.c .tmp_versions *.markers *.order *.symvers 18 19 20 21 else 22 23 obj-m := hello.o 24 25 endif