`
ackerman
  • 浏览: 75018 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux模块Makefile模板

阅读更多

1.

#如果已定义KERNELRELEASE,则说明是从内核构造系统调用的
#因此可以利用其内建语句
ifneq ($(KERNELRELEASE),)
	obj-m := helloworld.o

#否则,是直接从命令行调用的,
#这时要调用内核构造系统
else
#	KERNELDIR ?= /lib/modules/$(shell unname -r)/build
	KERNELDIR ?= /opt/EmbedSky/linux-2.6.30.4
	PWD := $(shell pwd)
default:
	$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif

 2.helloworld.c

#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
	printk(KERN_ALERT "Hello, world\n");
	return 0;
}

static void hello_exit(void)
{
	 printk(KERN_ALERT "Goodbye, cruel world\n");
}

module_init(hello_init);
module_exit(hello_exit);
 
分享到:
评论

相关推荐

    LINUX驱动Makefile模板[文].pdf

    LINUX驱动Makefile模板是一个非常复杂的文件,它涉及到多个方面的知识点,包括Makefile的结构、变量定义、交叉编译、调试模式、驱动模块名称和源文件、编译和安装、伪目标等。正确地理解和使用Makefile是驱动程序...

    单独模块Makefile模板

    单独编译linux 内核某一模块,使用此Makefile只用修改c文件及模块名字

    通用的makefile模板

    通用的 `Makefile` 模板旨在提供一个灵活、模块化和跨平台的解决方案,使得开发者能够在不同环境中轻松地编译和管理项目。本文将深入探讨这个模板的核心特性及其在实际开发中的应用。 首先,`Makefile` 的模块化...

    Linux下Makefile的automake生成全攻略.pdf

    在Makefile中,每个目标都有其依赖项,当依赖项更新时,Makefile会自动识别并重新编译相应的模块。这种机制确保了项目的构建过程既高效又准确。 然而,手工编写Makefile存在诸多挑战,包括与开发环境的紧密耦合、对...

    Linux驱动模块单独编译Makefile

    1、此Makefile为个人原创,多年来从事Linux驱动开发单独编译驱动的模板Makefile,非常好用; 2、仅供参考

    一套的实用完整Makefile参考模板

    今天,我们将详细解释一份完整的 Makefile 参考模板,该模板可以应用于 Linux 编译环境中。 目录结构 在我们的示例中,应用系统的目录结构如下: * ~/bin:可执行程式目录 * ~/etc:设置文件目录 * ~/inc:头文件...

    Linux下c语言模块条件编译模板源码

    在Linux系统下Makefile和C/C++语言都有提供条件选择编译的语法,就是在编译源码的时候,可以选择性地编译指定的代码。这种条件选择编译的使用场合有好多,例如我们开发一个兼容标准版本与定制版本兼容的项目,那么,...

    linux内核驱动模块模板之hello

    一个基本的Makefile模板可能如下: ```makefile obj-m += hello.o KERNEL_DIR ?= /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) all: make -C $(KERNEL_DIR) M=$(PWD) modules clean: make -C $...

    linux驱动模板,包含Makefile

    在这个压缩包中,我们看到一个名为"linux驱动模板,包含Makefile"的项目,这暗示了它提供了一个基础的框架,用于开发Linux下的SPI(Serial Peripheral Interface)模块驱动。 SPI是一种同步串行接口,常用于连接微...

    kbuild makefile 总结

    下面是对给定的 2.4 内核模块 Makefile 模板的分析: ```makefile KVER=$(shell uname -r) KDIR=/lib/modules/$(KVER)/build OBJS=mymodule.o CFLAGS=-D__KERNEL__ -I$(KDIR)/include -DMODULE ``` - **`KVER`**:...

    Makefile-Templates-master.7z

    《Makefile模板详解及其在软件构建中的应用》 在软件开发过程中,自动化构建是一个至关重要的环节,它能够节省开发者的时间,提高工作效率。Makefile作为Unix/Linux系统中的一个自动化构建工具,用于编译、链接和...

    Linux 2.6内核模块编程范例

    "程序以及一个标准的Makefile模板,帮助开发者了解如何编写和构建内核模块。 首先,我们来看"Hello, World!"程序,Exhello.c。这是每个编程学习者接触的第一个程序,但在内核模块中,它的作用是展示如何与内核交互...

    linux-Linux驱动程序模板.zip

    3. **Makefile**:用于编译驱动程序,将其编译为ko(内核模块)文件。 4. **设备模型**:如`device_tree`或`sysfs`,用于描述设备在内核中的表示。 编写驱动程序时,需要遵循内核编程规范,如使用原子操作、锁机制...

    Makefile企业级.zip

    在企业级开发中,高效的Makefile模板能够极大地提高开发效率,确保项目的可维护性和可扩展性。 一、Makefile基本结构与语法 Makefile由一系列规则组成,每个规则包含目标(Target)、依赖项(Dependency)和命令...

    Linux内核可装载模块对设备驱动的影响

    2.6内核的Makefile模板(清单3)使用`KERNELRELEASE`变量,通过内核源码目录下的Makefile进行编译。 3. 版本检查: 2.6内核增加了更严格的版本检查,确保模块与内核版本匹配,防止不兼容的模块加载。 4. 初始化与...

    Makefile测试程序(亲测有效)

    在实际开发中,Makefile的灵活性使得它可以适应各种项目需求,无论是简单的单文件程序还是大型的多模块项目。熟练掌握Makefile的编写不仅可以提高工作效率,还能确保构建过程的一致性和可重复性。 通过实践和理解这...

    PROE二次开发的工程模板(使用makefile)

    在开始PRO/E二次开发之前,建议仔细阅读提供的工程说明文件,它可能包含了关于如何使用模板、如何添加新模块、如何调试代码等重要信息。理解并遵循这些说明将有助于避免常见的陷阱,提高开发效率。 在实际应用中,...

    linux下C语言工程模板,使用gcc编译.zip

    在Linux环境下进行C语言开发时,常常需要构建一个标准的工程模板来组织代码,以便于编译、调试和维护。本资源提供了一个基础的Linux下C语言工程模板,使用了广泛使用的GCC(GNU Compiler Collection)作为编译工具。...

    makefile

    - 使用规则模板:减少重复代码,提高Makefile的可读性和可维护性。 - 编写清晰的注释:帮助其他开发者理解和修改Makefile。 通过学习和熟练掌握Makefile的编写,开发者能够在Unix/Linux环境下更高效地管理和构建...

    linux字符设备驱动程序

    - 在Makefile中配置了模块编译的相关指令,可以通过`make`命令来编译模块。 ```makefile KERNELDIR?=/usr/src/kernels/2.6.23.1-42.fc8-i686/ obj-m+=mydriver.o ``` 这些指令指定了内核源码目录位置,并指明...

Global site tag (gtag.js) - Google Analytics