【问题标题】:How to detect a usb host connection on a usb device system in C?如何在 C 中检测 USB 设备系统上的 USB 主机连接?
【发布时间】:2013-04-20 15:54:26
【问题描述】:

我对 Linux 很陌生,所以如果我问一些非常简单的问题,我深表歉意。 我正在开发一个使用 SAM9G25 和 Angstrom 发行版作为操作系统的定制板。

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

我的问题来了。

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

我感谢任何形式的帮助。

【问题讨论】:

    标签: connection usb interrupt


    【解决方案1】:

    我知道这有点老了,但我发现了同样的问题,从用户空间发现你可以从 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
    

    祝你好运

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多