本文主要是介绍atheros SDK中的模块间引用分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第一种情况是:KBUILD_EXTRA_SYMBOLS 来引用不属于同一个MAKEFILE编译出来的文件,如ath_dev.ko 引用 ath_hal.ko。
ath_hal.ko Makefile位于drivers/wlan/os/linux/ath_hal这个目录
ath_dev.ko 的Makefile位于drivers/wlan/os/linux目录
所以,在drivers/wlan/os/linux目录中的Makefile有这么一行:
KBUILD_EXTRA_SYMBOLS=$(ATH_HAL)/Module.symvers
$(ATH_HAL)等于drivers/wlan/os/linux/ath_hal
这样,ath_dev.ko就可以使用ath_hal.ko的外部符号
第二种情况是: ath_dev.ko 和 umac.ko都属于同一个Makefile下生成的不同ko模块
这时,umac.ko要引用ath_dev.ko中的接口,只需要在ath_dev.ko中源文件里用EXPORT_SYMBOL()声明一个可外部引用的符号
就可以了。
这时,Module.symvers中就会出现该符号。
这篇关于atheros SDK中的模块间引用分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!