如何在C中检测USB设备系统上的USB主机连接?

时间:2013-04-26 12:56:00

标签: connection usb interrupt

我对Linux很陌生,所以如果我会问一些非常简单的东西,我会道歉。 我正在使用SAM9G25和Angstrom分发作为操作系统的定制电路板。

该板作为USB设备(海量存储设备),何时连接到主机。现在我只是启用和删除g_mass_storage模块,事情正常。 在最终版本中,我需要根据USB电缆的连接和断开来管理g_mass_storage模块。我认为使用VBUS作为中断(也可以使用轮询)。

这就是我的问题。

由于VBUS GPIO由USB驱动程序处理,我无法从用户空间读取它的状态。我只看到/ proc / interrupt中的中断计数。 我问是否有一种方法可以获得中断(来自驱动程序)或者当usb电缆与系统连接/断开时能够读取VBUS GPIO值。

我赞成任何形式的帮助。

1 个答案:

答案 0 :(得分:0)

我知道这有点旧,但我发现了同样的问题,从用户空间发现你可以从udc sys类设备查看连接状态。例如,在我的架构上,可以从以下位置查看USB的状态:

/sys/class/udc/ci_hdrc.0/status

PC connection: configured
Power adapter: powered
Disconnected: not attached

我可以通过以下方式阅读AM335x架构:

/sys/class/udc/musb-hdrc.0.auto/current_speed

祝你好运