我试图在内核源代码中找出USB从机检测中断。我使用 IMX8MM 平台作为从属 USB 设备。我想在USB检测中断上实现并行ISR。当USB与主机连接时,从机USB驱动程序会产生一些软件中断。我想使用该中断作为对使用自定义 ISR 的顶级用户应用程序的指示。我可以在
/proc/interrupt
中看到下面的中断。
58: 0 0 0 0 GICv3 72 Level 32e40000.usb
请帮助我实现这一目标。
此类事件应该通过内核的hotplug uevent机制来报告。在大多数 Linux 系统上,此类热插拔事件是通过 udev 在用户空间中处理的。因此,它应该像编写 udev 规则一样简单,启动所需的操作。
如果 udev 在您的目标平台上可用,您可以使用(如
root
)命令
udevadm monitor
实时显示热插拔事件。您可以使用它作为编写适当的 udev 规则的起点。
您绝对不应该尝试在这里搞乱内核内部和“软”中断。一方面,没有必要这样做。更重要的是,弄乱内核中的这些细节可能会导致难以调试系统不稳定。