我的嵌入式设备中有多个内核模块,可以处理LCD,触摸屏,串行端口等。
一个内核模块能够读取PCB版本。
我希望我的LCD模块也能够读取PCB版本。 最简单的方法是先加载PCB版本模块,然后让LCD模块询问版本。
这两个模块都是可加载的.ko的,都是我写的。
有没有一种简单的方法可以:
- 从一个模块到另一个模块进行函数调用?
- 读取另一个模块中的全局变量?
- 从一个模块到另一个模块进行 IOCTL 调用?
我的偏好是#3。
部分答案:
调用另一个模块中的函数:
-
将MODULE_DEPEND宏放在本地模块的顶部,以 a( 确保首先加载另一个模块,以及 b( 您可以链接到其函数。 不确定 b。 例如:
MODULE_DEPEND(lcd_mod, timer_mod, 1, 1, 1(;
-
在本地模块中放置远程函数的声明。
-
只需调用远程函数。