utu2440-之helloworld驱动
2007-10-09 20:25
creator
1.昨天搞了一晚上,愣是没有编译过去linux2.6.13的驱动,怎么看了几本书都没有特别详细的介绍。
今天去扬创论坛上也看到有人也问这个问题,版主很热心,详细的解答了。今天测试一下,确实ok。
于是把它记录下来。让后来者也可以轻松开发。
现在假定我的2440的linux程序路径在/home/s3c2440/linux-2.6.13_for_s3c2440/
在这个目录下的drivers/char/下面建立hello文件夹。在文件夹下建立hello.c
编写代码:
#include
#include
#include
static int hello_init(void)
{
printk(KERN_ERR "Hello creator!\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ERR "Modules exit!\n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("CREATOR");
同时再建立Makefile
编写代码:
obj-m := hello.o
KERNEL_DIR=/home/work/utu-linux_for_2440_V1.5.1/
PWD=$(shell pwd)
all:
make -C $(KERNEL_DIR) M=/home$(PWD) modules
编译之后在hello下面就有hello.ko,可以用命令insmod
注:如果编译不通过的话,就把KERNEL_DIR和PWD替换掉,不用变量的形式。
这个是我后来写的,没有编译测试。但是不用变量的形式我已经测试。
阅读(3318) | 评论(3) | 转发(0) |