做为入门,我们先做一个hello_drv 的驱动程序,完整的了解驱动程序的开发过程。
代码如下,只包含了一个最简单的驱动程序必须的部分。
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/device.h>
//加载模块
static in hello_drv_init(void)
{
printk("insmod ok\n");
return 0;
}
//卸载模块
static void hello_drv_exit(void)
{
printk("rmmod ok\n");
}
//注册模块入口
module_init(hello_drv_init);
module_exit(hello_drv_exit);
//模块许可声明
MODULE_LICENSE("GPL");
完成了驱动程序的源文件的编写,我们接着编写 Makefile
文件,
#内核目录
KERN_DIR = /work/system/linux-2.6.22.6
#编译模块
all:
make -C $(KERN_DIR) M=`pwd` modules
# clean
clean:
make -C $(KERN_DIR) M=`pwd` modules clean
rm -rf modules.order
#将驱动以模块的形式编译
obj-m += hello_drv.o
测试的时候,主要看编译的模块能否加载和卸载成功
insmod hello_drv.ko //加载模块驱动
rmmod hello_drv.ko //卸载模块驱动
平台上测试结果如下 :