多个文件生成单个内核模块实例

本文详细介绍了如何将多个文件编译成一个Linux内核模块,包括核心文件`module_demo.c`调用`add.c`中的函数,以及对应的`add.h`头文件。通过两种不同的Makefile编写方法,展示了编译过程,并说明了内核模块的加载、卸载以及查看内核日志的方法,强调了模块化编程在Linux驱动开发中的重要性。
摘要由CSDN通过智能技术生成


前言

前面的文章介绍了最简单的内核模块实例,本文主要是介绍由多个文件组成的内核模块,包括代码实例及对应的Makefile文件的写法;和应用层代码一样,当该内核模块(驱动)实现的功能比较复杂时, 不可能把所有的代码都全部写在一个.c文件里面,它也会根据具体的功能,使用模块化编程,即将主要的内核模块相关的放到一个.c文件中,其他的函数接口放在其他.c文件中实现。

一、内核模块源代码实例

本实例共由两个 .c文件文件及对应的头文件组成,分别是module_demo.c 和 add.c ,add.h
其中module_demo.c是内核模块主体文件,它里面会去调用 add.c 里面实现的具体函数

1. module_demo.c

#include <linux/init.h>
#include <linux/module.h>

#include "add.h"                          //本地实现的头文件

static int hello_init(void)
{
   
    int a = 0;
    printk(KERN_INFO "in hello init\n");

    printk(KERN_INFO "*********** a = %d\n", a);                  
    add_test(&a);                                                 //调用add_test()
    printk(KERN_INFO "*********** a = %d\n", a);

    return 0<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值