1、单模块单文件
//*********************************************
obj-m := hello.o

KDIR := /home/akaedu/kernel/linux-2.6.35.7

all:
    make -C $(KDIR) SUBDIRS=$(PWD) mudules

.PHONY:clean

clean:
    -rm -rf *.o *.ko *~ *.mod.*
//*********************************************

2、单模块多文件
//*********************************************
obj-m := myhello.o
myhello-objs := hello.o goo.o
KDIR := /home/akaedu/kernel/linux-2.6.35.7
(其他同上)
//*********************************************
hello.c可直接调用goo.c中的函数,只需在hello.c中声明即可。

3、多模块
//*********************************************
obj-m := hello.o goo.o
KDIR := /home/akaedu/kernel/linux-2.6.35.7
(其他同上)

//*********************************************
注:其中,goo.c需要导出符号表,EXPORT_SYMBOL(goo),
供hello.c调用。

注:在编译模块前,linux源码包(或头文件包)必须经过正确编译,可提供导出符号表。

安装头文件包:
sudo apt-get install linux-headers-2.6.32-21-generic
sudo apt-get install linux-source-2.6.32

===================================================================

     #include <linux/init.h>
#include <linux/module.h> MODULE_LICENSE(“Dual BSD/GPL”);
char *who = “world”; static int hello_init ( void )
{
printk(KERN_ALERT “Hello, %s!\n”, who);
return ;
} static void hello_exit ( void )
{
printk(KERN_ALERT “Goodbye, %s!\n”, who);
} module_init(hello_init);
module_exit(heool_exit); //makefile
ifeq ($(KERNELRELEASE), )
obj-m :=hello.o
else
KERNELDIR ?= /home/mike/linux-2.6.
PWD := $(shell pwd)
default:
$(MAKE) –C $(KERNELDIR) M=$(PWD) modules
clean:
rm –rf *.o *~ core.depend .*.cmd *.ko *.mod.c
endif //注意核对目标平台和交叉编译器:
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-

driver makefile的更多相关文章

  1. 内核源码之Kconfig和Makefile

    转自:http://www.cnblogs.com/image-eye/archive/2011/08/28/2156005.html 内核源码之Kconfig和Makefile Linux内核源码树 ...

  2. linux设备驱动归纳总结(一)内核的相关基础概念【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-59413.html linux设备驱动归纳总结(一):内核的相关基础概念 xxxxxxxxxxxxxx ...

  3. Linux驱动开发之开篇--HelloWorld

    Linux驱动的编写,大致分为两个过程,第一个过程为测试阶段,即为某一具体的设备,添加必要的驱动模块,为了节省编译时间,需要将代码单独放在一处,在编译时,只需要要调用内核的头文件即可:第二个过程为布置 ...

  4. 在Ubuntu上为Android系统编写Linux内核驱动程序(老罗学习笔记1)

    这里,我们不会为真实的硬件设备编写内核驱动程序.为了方便描述为Android系统编写内核驱动程序的过程,我们使用一个虚拟的硬件设备,这个设备只有一个4字节的寄存器,它可读可写.想起我们第一次学习程序语 ...

  5. 在Ubuntu上为Android系统编写Linux内核驱动程序

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6568411 在智能手机时代,每个品牌的手机都有 ...

  6. Android内核驱动程序的编写和编译过程

    注意:涉及的代码为android内核代码而不是android源码. 在智能手机时代,每个品牌的手机都有自己的个性特点.正是依靠这种与众不同的个性来吸引用户,营造品牌凝聚力和用户忠城度,典型的代表非ip ...

  7. ubuntu 12.04 上网体验

    买了新的电脑,装的系统ubuntu12.04.  但是开始的时候无法使用有线网络,也没有办法连上无线网络.这相当于一个与世界剥离的裸机器,很是郁闷.于是在网上买了一个无线网卡tplink721, 但是 ...

  8. 转:Linux设备驱动开发(1):内核基础概念

    一.linux设备驱动的作用 内核:用于管理软硬件资源,并提供运行环境.如分配4G虚拟空间等. linux设备驱动:是连接硬件和内核之间的桥梁. linux系统按个人理解可按下划分: 应用层:包括PO ...

  9. 在ubuntu上为android系统编写Linux驱动程序【转】

    本文转载自:http://blog.csdn.net/luoshengyang/article/details/6568411 在智能手机时代,每个品牌的手机都有自己的个性特点.正是依靠这种与众不同的 ...

随机推荐

  1. ios中将事件同步到系统日历

    //获取日历事件 EKEventStore* eventStore = [[EKEventStorealloc] init]; NSDate* ssdate = [NSDatedateWithTime ...

  2. How to Analyze "Deadlocked Schedulers" Dumps?---WINDBG

    https://blogs.msdn.microsoft.com/karthick_pk/2010/06/22/how-to-analyze-deadlocked-schedulers-dumps/ ...

  3. gns3 接口说明 转

    Dynamips 支持的模块首先从C7200 开始Slot 0:C7200-IO-FE <------> 支持1 个Fastethernet 接口C7200-IO-2FE <---- ...

  4. 扑克模拟,牌型判断java版

    Card类 package com.company; public class Card { private String color; private Integer value; public S ...

  5. 【POI】对于POI无法处理超大xls等文件,官方解决方法【已解决】【多线程提升速率待定】

    本次使用POI处理xlsx文件,莫名的遇到了一个无法逾越的问题. 总共71个xlsx文件,单个文件最大达到50M以上,71个xls文件摆在那里就有3-4G的大小. 在起始处理的时候,发现原本适用于正常 ...

  6. 【Git】GitHub for Windows使用(1)

    目录 1.下载GitHub for windows 客户端 2.注册GitHub 3.启动windows端客户端,登录帐号 4.了解Git客户端,从而了解Git的大体功能 5.创建一个新的资源库  6 ...

  7. MVC Movie App

    ylbtech- ASP.NET MVC:MVC Movie App 功能描述:MVC Movie App 2,TechnologyAndTheEnvironment(技术与环境) 操作系统: win ...

  8. Maven入门学习

    1 Maven的安装 maven下载路径:http://maven.apache.org/download.cgi 我是在win7上安装了,安装后在cmd输入 mvn -v: C:\Users\*** ...

  9. 【Python3 爬虫】12_代理IP的使用

    我们在爬取页面的时候,如果长时间使用一个网址去爬取某个网站,就会受爬去限制,此时,我们引用了代理IP,IP随时在变化,也就不会被限制了 一下是国内提供免费代理IP的地址:http://www.xici ...

  10. 【Java】Java_01初步

    1.编程语言的发展史和发展主线 计算机语言如果你将它当做一个产品,就像我们平时用的电视机.剃须刀.电脑.手机等, 他的发展也是有规律的. 任何一个产品的发展规律都是:向着人更加容易使用.功能越来越强大 ...