红联Linux门户
Linux帮助

如何通过.c + Makefile 完成驱动程序编译

发布时间:2010-11-22 12:59:22来源:红联作者:eddy_liu
找了几个板子的用户手册看。如果想编写一个驱动程序,大多是把 .c 的源文件写好,然后放在指定的设备文件目录下,再修改该目录下的makefile和 Kconfig文件。最后用make menuconfig添加进来,再最后 make SUBDIR= modules生成.ko文件
我觉得挺麻烦的,如果就是.c 源文件+makefile 来生成驱动文件应注意什么呢?
下面是个例子

一个简单的打印字符的驱动程序
#include
#include

MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
printk(“hello, linux\n”);
}

static void hello_exit(void)
{
printk(“goodbye linux \n”);
}

module_init(hello_init);
module_exit(hello_exit);

其Makefile为

1 EXEC = hello
2 OBJS = hello.o
3 SRC = hello.c

4 INCLUDE = /usr/src/linux-2.6.10/include
5 CC = arm-linux-gcc
6 LD = arm-linux-ld
7 MODCFLAGS = -O2 -Wall -D__KERNEL__ -DMODULE -I$(INCLUDE) -march=armv4t -c -o
8 LDFLAGS = -r

9 all: $(EXEC)

10 $(EXEC): $(OBJS)
$(LD) $(LDFLAGS) -o $@ $(OBJS)

11 %.o:%.c
$(CC) $(MODCFLAGS) -mapcs -c $< -o $@

12 clean:
-rm -f $(EXEC) *.o *~ core

#make 时,报错。说是好多asm/ 目录下的文件找不到。

不知道是否哪位蝈蝈,有编译过的例子,传我一份。最好就是 .c 源文件 + makefile 。当然驱动的源文件越简单越好
文章评论

共有 6 条评论

  1. linxinze520 于 2011-08-19 12:04:48发表:

    顶起!

  2. qilinwcs 于 2011-08-15 17:42:32发表:

    顶起

  3. zl870213 于 2011-08-10 15:04:44发表:

    顶起!

  4. yyxl 于 2010-12-11 10:01:57发表:

    需要放在源码目录进行

  5. xiaobing259 于 2010-11-23 18:05:51发表:

    顶顶

  6. eddy_liu 于 2010-11-22 23:13:12发表:

    帖子沉了,up