linux之设备驱动----简单hello world模块(2)

来源:互联网 发布:下载语音朗读软件 编辑:程序博客网 时间:2024/05/22 19:58

移植hello world 模块到TQ2440开发板

1.准备内核,TQ2440开发板自带的linux-2.6.30.4_20100531.tar.bz2。

2.放到自己新建的目录/opt/guoqian/下,tar -jxvf linux-2.6.30.4_20100531.tar.bz2

3.进入解压的内核目录底下,执行make distclean.

4.利用TQ2440自带的配置,执行cp config_EmbedSky_W43 .config

5.编译内核,执行make

6.新建目录hellomod_arm,进入目录,创建两个文件夹hello.c Makefile

hello.c内容如下:

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


 -----------------------------------------------------

Makefile内容如下:

KERNELDIR = /opt/guoqian/opt/EmbedSky/linux-2.6.30.4  //内核目录PWD:=$(shell pwd)INSTALLDIR = /opt/guoqian/lib/modules  //安装模块目录,默认本目录CROSS_COMPILE =  arm-none-linux-gnueabi-gccCC = $(CROSS_COMPILE)obj-m :=hello.o.PHONY:modules modules_install cleanmodules :        make -C $(KERNELDIR) M=$(PWD) modulesmodules_install:        cp hello.ko $(INSTALLDIR)clean:        rm -f *.ko *.o,*.mod.o *.mod.c .symvers


 

7.通过nfs,或者u盘,把hello.ko拷贝到开发板。

8.执行命令insmod hello.ko

Hello,my drive world!

9.再执行命令 rmmod hello.ko

Goodbye,drive world!

 

OK,简单驱动成功了!


 

原创粉丝点击