driver makefile
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的更多相关文章
- 内核源码之Kconfig和Makefile
转自:http://www.cnblogs.com/image-eye/archive/2011/08/28/2156005.html 内核源码之Kconfig和Makefile Linux内核源码树 ...
- linux设备驱动归纳总结(一)内核的相关基础概念【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-59413.html linux设备驱动归纳总结(一):内核的相关基础概念 xxxxxxxxxxxxxx ...
- Linux驱动开发之开篇--HelloWorld
Linux驱动的编写,大致分为两个过程,第一个过程为测试阶段,即为某一具体的设备,添加必要的驱动模块,为了节省编译时间,需要将代码单独放在一处,在编译时,只需要要调用内核的头文件即可:第二个过程为布置 ...
- 在Ubuntu上为Android系统编写Linux内核驱动程序(老罗学习笔记1)
这里,我们不会为真实的硬件设备编写内核驱动程序.为了方便描述为Android系统编写内核驱动程序的过程,我们使用一个虚拟的硬件设备,这个设备只有一个4字节的寄存器,它可读可写.想起我们第一次学习程序语 ...
- 在Ubuntu上为Android系统编写Linux内核驱动程序
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6568411 在智能手机时代,每个品牌的手机都有 ...
- Android内核驱动程序的编写和编译过程
注意:涉及的代码为android内核代码而不是android源码. 在智能手机时代,每个品牌的手机都有自己的个性特点.正是依靠这种与众不同的个性来吸引用户,营造品牌凝聚力和用户忠城度,典型的代表非ip ...
- ubuntu 12.04 上网体验
买了新的电脑,装的系统ubuntu12.04. 但是开始的时候无法使用有线网络,也没有办法连上无线网络.这相当于一个与世界剥离的裸机器,很是郁闷.于是在网上买了一个无线网卡tplink721, 但是 ...
- 转:Linux设备驱动开发(1):内核基础概念
一.linux设备驱动的作用 内核:用于管理软硬件资源,并提供运行环境.如分配4G虚拟空间等. linux设备驱动:是连接硬件和内核之间的桥梁. linux系统按个人理解可按下划分: 应用层:包括PO ...
- 在ubuntu上为android系统编写Linux驱动程序【转】
本文转载自:http://blog.csdn.net/luoshengyang/article/details/6568411 在智能手机时代,每个品牌的手机都有自己的个性特点.正是依靠这种与众不同的 ...
随机推荐
- YS端对端之间SSL通信安全问题
1.简介: 传统的互联网,SSL通信主要基于客户端和服务器之间,在物联网时代,端和端之间的加密通信将变得很普遍,在YS业务中主要的端和端通信为: (1).客户端(移动APP,YS工作 ...
- IIS中使用Microsoft.Office.Interop.Excel 常见问题:RPC 服务器不可用。 (异常来自 HRESULT:0x800706BA) 的异常。等
IIS中使用Microsoft.Office.Interop.Excel 异常1: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} ...
- 【spring data jpa】jpa实现update操作 字段有值就更新,没值就用原来的
示例代码如下: /** *复杂JPA操作 使用@Query()自定义sql语句 根据业务id UId去更新整个实体 * 删除和更新操作,需要@Modifying和@Transactional注解的支持 ...
- java_hibernate
入门:http://jingyan.baidu.com/article/cbf0e500965a352eab289368.html 步骤1.查看是否hibernate支持:file-->plug ...
- [转载]Oracle Merge的使用
FROM: http://zhangqchang.blog.163.com/blog/static/464989732009219114653226/ 摘至网上的几个例子 一.************ ...
- linux上MySQL改动password的各种方法,yc整理
MySQL改动password的各种方法 整理了下面四种在MySQL中改动rootpassword的方法,可能对大家有所帮助! 方法1: 用SET PASSWORD命令 mysql -uroot my ...
- HDU - 3038 How Many Answers Are Wrong (带权并查集)
题意:n个数,m次询问,每次问区间a到b之间的和为s,问有几次冲突 思路:带权并查集的应用.[a, b]和为s,所以a-1与b就能够确定一次关系.通过计算与根的距离能够推断出询问的正确性 #inclu ...
- Qt Creator项目中使用qss
近期学习qt .使用的编译器是qt creator ,学习过程中遇到的题就是 怎样将程序中将要用到的.qss 文件静态编译到.exe程序中,而不是在程序执行时动态加载.动态加载的最大问题在于一旦.qs ...
- Java 内部类种类及使用解析【转】
内部类Inner Class 将相关的类组织在一起,从而降低了命名空间的混乱. 一个内部类可以定义在另一个类里,可以定义在函数里,甚至可以作为一个表达式的一部分. Java中的内部类共分为四种: 静态 ...
- spring-boot-redis-cluster简单整合例子
代码地址如下:http://www.demodashi.com/demo/13184.html 一.前言 spring-boot项目整合redis很常见,Redis 一般上生产的时候都是以集群模式部署 ...