RK3568平台(基础篇) EXPORT_SYMBOL的作用

本文详细解释了在Linux内核模块开发中,EXPORT_SYMBOL和EXPORT_SYMBOL_GPL这两个宏的作用、使用方法以及它们之间的区别,特别强调了后者对GPL许可模块的限制。通过实例展示了如何在模块间导出和使用函数,以及在处理USB相关驱动时的用法。
摘要由CSDN通过智能技术生成

一、EXPORT_SYMBOL 的作用

1.在一个模块中使用 EXPORT_SYMBOL(name)。name 表示函数或者变量等符号,它是对全部内核代码公开的,因此在您的内核模块中可以直接调用 name,即使用 EXPORT_SYMBOL 可以将一个函数以符号的方式导出给其他模块使用。

2.EXPORT_SYMBOL 的符号,是把这些符号和对应的地址保存起来,在内核运行的过程中,可以找到这些符号对应的地址。而模块在加载过程中,其本质就是能动态连接到内核。

3.如果在模块中引用了内核或其它模块的符号,就要 EXPORT_SYMBOL 这些符号,这样才能找到对应的地址连接。

二.EXPORT_SYMBOL 和 EXPORT_SYMBOL_GPL 的区别

EXPORT_SYMBOL(name);
EXPORT_SYMBOL_GPL(name);
这两个宏均用于将给定的符号导出到模块外, _GPL版本的宏定义只能使符号对GPL许可的模块可用。

三、EXPORT_SYMBOL 和 EXPORT_SYMBOL_GPL 使用方法

EXPORT_SYMBOL 使用方法:

在模块函数定义之后使用 EXPORT_SYMBOL(函数名);

在调用该函数的模块中使用 extern 对它声明,才可以开始调用函数;

首先加载(insmod mod1.ko)定义该函数的模块,再

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式_笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值