运行环境:linux-2.6.12

编译环境:arm-linux-gcc(3.4.1)

运行平台:AT91RM9200

 

一、编写模块程序testmodule.c

 

 

#include 
#include 
#include 

static int hello_init(void)
{ 
    printk("Hello! This is the first test module!\n");
    return 0;
}
static void hello_exit(void)
{
 printk("Module exit! Bye Bye!\n");
    return;
}

module_init(hello_init);
module_exit(hello_exit);

MODULE_LICENSE("GPL");

 

二、编写Makefile

 

 

obj-m := testmodule.o
KDIR := /src/linux-2.6.12
PWD := $(shell pwd)
default:
 $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
#################################################

 

注意:"$(MAKE)"前面要空一个"Tab"

KDIR 为内核的路径,这个内核要与AT91RM9200运行的内核先同(编译器也要相同的,要不运行不了)。

 

三、编译

在linux下执行:make CC=/src/3.4.1/bin/arm-linux-gcc

/*注释:/src/3.4.1/bin/arm-linux-gcc 为交叉编译环境的路径*/

生成testmodule.ko

 

四、运行

1、将testmodule.ko通过串口或者网口下载到AT91RM9200的板子上

 

2、执行:chmod +x testmodule.ko修改模块的属性将其设为可执行文件

 

3、执行:insmod testmodule.ko

Hello! This is the first test module!

执行:rmmod testmodule.ko

Module exit! Bye Bye!

(责任编辑:A6)

本站文章仅代表作者观点,本站仅传递信息,并不表示赞同或反对.转载本站点内容时请注明来自-Linux伊甸园。如不注明,将根据《互联网著作权行政保护办法》追究其相应法律责任。

--------------------next---------------------