设备驱动程序子系统选项

设备驱动程序子系统选项

将硬件设备及其驱动程序连接到 HWMON 子系统与 INPUT 子系统之间有何性能差异?

我有一个带有 ADC 的嵌入式板,通过 SPI 总线连接。它当前使用一个简单的供应商提供的设备驱动程序,将其绑定到 HWMON 子系统。当 ADC 频繁读取时,会消耗大量 CPU 时间。创建使用 INPUT 子系统的驱动程序与使用 HWMON 子系统相比是否会更有效?

答案1

在我看来,HWMON 子系统最适合读取相对昂贵的设备,但只需要在应用程序需要时读取。

在 INPUT 子系统驱动程序中,您需要实现一种机制,允许应用程序告诉驱动程序应该读取设备的频率,或者接受驱动程序将按固定时间间隔轮询设备每时每刻,导致持续的CPU消耗。

您应该以批判的眼光看待供应商提供的设备驱动程序代码。它实际上是生产质量,还是只是一个关于如何读取 ADC 而不关心性能的简单示例?

如果它通过愚蠢地在循环中旋转来执行与 ADC 相关的计时,并且您的嵌入式平台可以提供高分辨率计时器,则可以用时钟事件处理程序或其他允许内核执行其他操作直到需要返回的机制来替换循环。阅读 ADC 将是一个好主意。无论使用哪个子系统与其连接,它都可以大大减少驱动程序使用的 CPU 时间。

相关内容