linux 混杂设备驱动复习

3,808次阅读
没有评论

以前写的文章丢失. 现在重新复习一下.
首先搞定 makefile 文件. 基本格式如下:

# 定义最终的模块名, 不能与现有的任何.c .h 等文件重名
MODULE_NAME := it6604driver

#指定驱动模块的核心文件(有 init 和 exit)RESMAIN_CORE_OBJS := it6604dev.o
#所依赖的文件
RESMAIN_GLUE_OBJS := 

obj-m += $(MODULE_NAME).o
$(MODULE_NAME)-objs := $(RESMAIN_GLUE_OBJS) $(RESMAIN_CORE_OBJS)

#内核文件夹
KERN_SRC	:=/home/justchen/hi3520d/osdrv/kernel/linux-3.0.y

PWD			:= $(shell pwd)

modules:
	make -C $(KERN_SRC) M=$(PWD) modules

install:
	make -C $(KERN_SRC) M=$(PWD) modules_install
	depmod -a

clean:
	make -C $(KERN_SRC) M=$(PWD) clean

如上所示. 我们除了需要有一个编译好的内核外, 只需要再完善一个 it6604dev.c 文件即可, 如果项目复杂就添加加对应的头文件以及 c 文件
接下来完善 it6604dev.c, 其主要内容为

#include // 与 module 相关的信息
 
#include 
#include       // 与 init 相关的函数
 
static int __init it6604_init(void)
{printk(KERN_INFO "Hello kernel!\n");
        return 0;
}
 
static void __exit it6604_exit(void)
{printk(KERN_INFO "Exit kernel!\n");
}
 
 
module_init(it6604_init);
module_exit(it6604_exit);
 
 
MODULE_LICENSE("GPL");
MODULE_AUTHOR("xxxx");
正文完
 0
评论(没有评论)