【发布时间】:2014-04-25 05:13:56
【问题描述】:
我是 Linux 的新手。有人可以解释一下这个功能之间的区别。以及执行顺序。
我看了@这个查询。
并且对探测有了一些想法。
我了解在挂起之后会调用恢复函数。请指导我理解功能。
【问题讨论】:
标签: linux-kernel linux-device-driver embedded-linux archlinux
我是 Linux 的新手。有人可以解释一下这个功能之间的区别。以及执行顺序。
我看了@这个查询。
并且对探测有了一些想法。
我了解在挂起之后会调用恢复函数。请指导我理解功能。
【问题讨论】:
标签: linux-kernel linux-device-driver embedded-linux archlinux
两者在外观上是不同的:
探测: 当您第一次注册设备时将被调用。(在设备启动期间调用 (a). 或 (b). 调用 insmod/modprob)。
简历: 它是驱动程序的处理函数例程部分,您可以为处理程序或离开提供函数(取决于您的驱动程序实现)。
简单来说 - 探针只被调用一次(在注册驱动程序期间) - 简历被调用取决于
(a) 是否为处理程序提供了函数例程
(b) 如果是这样,那么在挂起时它会被调用。 (所以 n 次它会被调用 n 次它被暂停)
【讨论】:
我猜你提到的线程中有足够的信息。但我会试着用其他语言来解释。
探测函数是linux设备驱动程序初始化序列的一部分。通常,Init 函数包含某种驱动程序注册调用,Linux 层之一稍后会调用 probe()。但只有驱动程序的作者才能决定应该在 init() 或 probe() 中执行哪部分代码:这取决于您的设备硬件规格和相应的 linux 层(PCI、SPI 等)功能。顺便说一句,在您的驱动程序中,您不必使用任何现有层,因此不必使用 probe()。
关于暂停-恢复:这对功能只有在您想要实现设备的任何节能功能时才应该占据一席之地。 Suspend() 告诉您可以关闭某些东西(如果有的话)以保存能量。 Resume() 告诉你应该重新打开。没有这样的选择吗?不要实现suspend-resume。
【讨论】: