This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/LINUXEZSDK-Sitara:如何使用 AM335x EVM Linux SDK 从器件端的 USB 零小工具驱动程序读取数据

Guru**** 2553450 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/615084/linux-linuxezsdk-sitara-how-to-read-data-from-usb-zero-gadget-driver-at-device-side-using-am335x-evm-linux-sdk

器件型号:LINUXEZSDK-Sitara

工具/软件:Linux

您好!

我使用的定制板与 AM335x EVM 板非常匹配。 在此过程中、我在我们的定制板上成功移植了 Linux SDK v 4.9.28。 现在、我想在批量传输模式下获取 usb0数据。 我想根据此要求使用 USB 高速通信与主机进行通信 Linux USB Gadget 零驱动程序非常匹配。因此我使用 make menuconfig 启用了此驱动程序。 现在、当我将定制板连接到 Windows 主机时、会在 Windows 设备管理器中检测到该设备。  之后、我通过它发送(写入)数据。 然后我在内核源文件 f_sourcesink.c 中放置一些调试打印、有趣的名称是 check_read_data ()、它位于 drivers/USB/gadget/function/f_sourcesink.c 我能够成功地看到主机应用程序发送的数据、现在我有一些问题/疑问。

1]如何从器件的用户端内核收集此批量数据(我想处理从主机接收的数据、并将其发送到另一侧)。

2]如果我在此检查了目录/proc/bus、 它不会显示任何 USB 设备。 因此,如果将来要使用 open()系统调用来打开设备,如何在该目录中启用 USB。

3]如果上述方法不可行,那么如何在 Linux /dev/xxxx 目录中公开 USB 小工具零设备,以便我可以使用 open()、read()、write()、close()系统调用来访问它...?

此致、

Vishvajeet

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    首先、请在此处查看 USB 驱动程序的完整内核文档:
    processors.wiki.ti.com/.../Processor_SDK_Linux_DWC3
    processors.wiki.ti.com/.../Processor_SDK_Linux_USB

    您可以在/sys/bus/usb/devices 中看到 USB 端口、如下所述:
    processors.wiki.ti.com/.../USB_Debug_Techniques

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!
    感谢您的回复、我阅读了提到的链接、还阅读了 Linux 文档。不过、我仍有疑问、如果我想让用户空间中的 USB 小工具零驱动程序数据如何获得。 请建议我使用理想方法、我使用了 gadgetfs 驱动程序、并参考了交叉编译的 usb.c、通过用户空间枚举 USB 驱动程序。但在我们的案例中、这并不有用。 我想使用正常工作的小工具零驱动程序、我只想将主机发送的数据放入用户空间缓冲区、所以请告诉我这方面的任何方法。

    此致、
    Vishvajeet
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我需要一些时间来看看这一点。 我将使用我的发现更新该主题。

    此致、
    Yordan