设备驱动程序的HelloWorld - 炫Q香蕉派

设备驱动程序的HelloWorld

设备驱动程序其实并不是很复杂,这里实验了一个hello的例子

#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
        printk(KERN_ALERT "Hello, MikuQ.com\n");
        return 0;
}
static void hello_exit(void)
{
        printk(KERN_ALERT "Goodbye, MikuQ!\n");
}
module_init(hello_init);
module_exit(hello_exit);

编译这个程序需要建立一个Makefile文件

obj-m := hello.o
KERNELDR := /usr/src/linux-headers-3.4.112-sun8i
PWD := $(shell pwd)
modules:
        $(MAKE) -C $(KERNELDR) M=$(PWD) modules
moduels_install:
        $(MAKE) -C $(KERNELDR) M=$(PWD) modules_install
clean:
        rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions

我们需要的目标文件就是hello.ko,在root下,可以用insmod hello.ko来安装,rmmod hello来卸载,lsmod来查看,至于输出信息在控制台下,如果需要可以通过dmesg来查看

[10214.723221] Hello, MikuQ.com
[10224.723695] Goodbye, MikuQ!

参考文献:http://www.cnblogs.com/wangyuezhuiyi/archive/2011/11/15/2250102.html
http://www.yeolar.com/note/2009/06/10/embedded-linux-led-driver/

标签: none

添加新评论