前面分析了这么多,在最后贴一个zero设备的测试例,供大家参考。在这个测试例中,需要对host端和gadget端都进行相应的配置。下面分开讲述。
主机端的配置:我们在host端(可以是一个装了linux的pc,或其他嵌入式设备也可以,但需要有usb host controller),在host端安装驱动usb-skeleton,这个驱动是主机端的驱动。我们后面再分析这个驱动。首先,需要编译usb-skeleton,在编译之前需要把修改两个宏。
/* Define these values to match your devices */
#define USB_SKEL_VENDOR_ID 0xfff0
#define USB_SKEL_PRODUCT_ID 0xfff0
将这两个宏修改成对应于zero.c中的数。其中,在zero.c中有如下的定义:
#define DRIVER_VENDOR_NUM 0x0525 /* NetChip */
#define DRIVER_PRODUCT_NUM 0xa4a0 /* Linux-USB "Gadget Zero" */
因此,这两个数需要相同(在usb设备插入,枚举时候会根据vendor id 和 product