Linux驱动——模块通信

本文介绍了一个模块间通信的实际案例,包括add_sub与test两个模块之间的交互。通过解决编译、链接及内核加载等问题,实现了模块间的正确通信,并探讨了模块随系统启动的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编写模块通信实例:

        模块add_sub提供add_integer()加法与sub_integer()减法函数,模块test调用函数完成操作。

        分别对两模块建立两个文件夹,编写对应的.c与Makefile文件,add_sub.h在add_sub模块文件夹内,分别make编译成功。

遇到的问题:

        1. insmod add_sub.ko成功。insmod test.ko失败。

        2. 两文件的Makefile内容不清晰,尤其是如PRINT_INC =$(PWD)/../include,SYMBOL_INC = $(obj)/../include等语句

        3. 加载成功后,想实现模块加入内核,随系统一起启动。配置好Kconfig与Makefile,执行过make menuconfig勾选菜单,

            重新启动linux,cat /proc/modules | grep add,发现并没有自动加载模块,此问题不知道如何解决。

问题1解决:

       add_sub文件夹中的Module.symvers文件复制到test模块文件夹中,此时加载便可以成功

问题2解决:

       好好学习Makefile编写知识

问题3未解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值