2

現在、PetaLinux を使用して ZC702 ボードでペリフェラル デバイスを設計しています。USB OTG 周辺機器用に提供されている例は、大容量ストレージまたは Ethernet over 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 周辺機器を実装するにはどうすればよいですか? この旅に役立つリソースはありますか?

ありがとう。

4

0 に答える 0