Chinaunix首页 | 论坛 | 博客
  • 博客访问: 968508
  • 博文数量: 214
  • 博客积分: 10173
  • 博客等级: 上将
  • 技术积分: 1867
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-18 13:48
文章分类

全部博文(214)

文章存档

2012年(1)

2010年(13)

2009年(5)

2008年(98)

2007年(97)

分类: LINUX

2008-03-18 13:59:47


运行环境: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!
阅读(666) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~