码迷,mamicode.com
首页 > 其他好文 > 详细

ARM平台的内核模块编写与安装

时间:2015-04-20 00:31:16      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:

  最近在学习arm平台下的内核模块开发,现将内核模块建立过程记录一下。  

  从编写代码的角度来看,创建一个简单的的内核模块可以分3步走:

   1. 添加头文件(linux/init.h 和linux/module.h); 

        2. 加载内核(函数module_init);

      3. 卸载内核(函数module_exit)

如一个简单的内核模块如下:

 

#include <linux/init.h>
#include <linux/module.h>
static int hello_init()
{
    printk(KERN_WARNING"hello my module!\n");
    return 0; 
}

 

static void hello_exit()
{
    printk(KERN_WARNING"module exit!\n"); 
}

 

module_init(hello_init);
module_exit(hello_exit);

 

事实上,关键部分是module_init() 和module_exit()函数,这两个函数分别对应了内核模块安装和内核模块卸载,他们的代码都是内核实现的,用户程序只要调用即可。当然,一个内核模块的组成部分还有其他可选的选项,但是这里的是必须的,也是最简单的一个部分。

  写完代码部分,接着完成Makefile的编写如下:

obj-m := hello.o
KDIR :=/home/win/myfiles/linux-mini2440
all: 
   make -C $(KDIR) M=$(PWD) modules CROSS_COMPILE=arm-linux- ARCH=arm
clean:
   rm -f *.o *.ko *.order

这是内核模块只有一个源文件的Makefile,如果源文件有多个,则采用如下版本:

obj-m := modulename.o

modulename-objs := file1.o file2.o file3.o  ......
KDIR :=/home/win/myfiles/linux-mini2440
all: 
   make -C $(KDIR) M=$(PWD) modules CROSS_COMPILE=arm-linux- ARCH=arm
clean:
   rm -f *.o *.ko *.order

然后回到代码所在目录执行make 命令,即可产生 .ko 文件。

 

 

 

  

 

ARM平台的内核模块编写与安装

标签:

原文地址:http://www.cnblogs.com/linzizhang/p/4440455.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!