我目前正在使用 PetaLinux 设计一个带有 ZC702 板的外围设备。为 USB OTG 外设提供的示例是大容量存储或 USB 上的以太网。这两个例子都适用于董事会。我现在正在尝试将板子实现为具有批量输入/输出端点集的简单 OTG 外围设备,这样我就可以向它发送批量传输命令并让板子发回批量响应。chipidea 驱动程序期望在 usb 小工具下设置一个功能。之前的海量存储和以太网功能是通过分别为mass_storage.ms0 和rndis.rn0 创建目录来完成的。当我不创建函数时,它给我一个错误,说当我调用 echo "ci_hdrc.0" > UDC 时没有函数。以下是 PetaLinux 启动后我在提示符下的调用:
zynq> mount /dev/mmcblk0p1 /mnt
zynq> insmod /mnt/configfs.ko
zynq> insmod /mnt/libcomposite.ko
zynq> mount -t configfs none /sys/kernel/config
zynq> cd /sys/kernel/config/usb_gadget
zynq> mkdir g1
zynq> cd g1
zynq> echo "64" > bMaxPacketSize0
zynq> echo "0x200" > bcdUSB
zynq> echo "0x100" > bcdDevice
zynq> echo "0x0114" > idVendor
zynq> echo "0x0019" > idProduct
zynq> mkdir strings/0x409
zynq> cd strings
zynq> cd 0x409
zynq> echo “0123456789” > serialnumber
zynq> echo “My Company” > manufacturer
zynq> echo “MyDevice” > product
zynq> mkdir configs/c1.1
zynq> echo "ci_hdrc.0" > UDC
如何使用 Bulk 端点实现 OTG 外围设备?有什么资源可以帮助我完成这个旅程吗?
谢谢。