内核模块内存访问

Rad*_*asp 9 kernel

两个不同的内核模块是否可以通过调用 ioremap_nocache() 来访问相同的内存区域?

我有一个无线驱动程序和一个单独的模块,我希望单独的模块在驱动程序仍在运行时分析卡上的噪声值。因此我上面的问题。

我探索的一种方法是从驱动程序启动一个内核线程,然后我实现了一个信号量,以防止由于对同一地址空间的并发读/写而引起的任何竞争条件。我希望子线程能够访问相同的内存区域。

不幸的是,这并没有像我预期的那样奏效。我将不胜感激任何建议。

小智 7

我假设您打算实现另一个内核模块,因为您认为在内核模块之间共享数据更容易。但也许这不是一个好的选择。如果可以在用户空间中“分析噪音”,我认为更好的解决方案是在用户空间中实现“分析器”。

在这个解决方案中,用户空间分析器读取数据,执行一些计算,然后提交结果。

如果这个方案没问题,实现如下。

在内核模块中,只是在'/proc'中注册一个char设备并实现'read'和'write'原语。在用户空间,只是实现profiler,读写char设备。此实现的详细信息和信息都在这里