设备的端点是有USB PHY芯片决定的,那每一个端点的特性也是芯片决定好的吗?如我现在的USB协议栈中的描述符里: /* Endpoint 1 descriptor */ 0x07, 0x05, 0x84, 0x03, 0x08, 0x00, 0x0B, /* Data Class Interface Descriptor Requirement */ 0x09, 0x04, 0x01, 0x00, 0x02, 0x0A, 0x00, 0x00,0x00, /* First alternate setting Endpoint 1 descriptor */ 0x07, 0x05, 0x01, 0x02, 0x00, 0x02, 0x00, /* Endpoint 2 descriptor */ 0x07, 0x05, 0x82, 0x02, 0x00, 0x02, 0x00, 其中端点4位IN中断端点,端点1和端点2分别为OUT批量端点和IN批量端点 但当我修改端点的ID号时则不能用,比如将IN批量端点为0x82修改为0x86,则无法实现device向host传数......我的PHY芯片是支持16个IN端点和OUT端点的,那么,对应ID号的端点的特性是在PHY芯片中定好的呢,还是可以自定义某一个端点为IN或者OUT呢? |
评分
查看全部评分
和STM32有些不同,我这里是根据几个函数可以初始化所有的端点,如:
ux_dcd_dwc_otg_endpoint_create.c
ux_dcd_dwc_otg_endpoint_reset.c
ux_dcd_dwc_otg_endpoint_stall.c
ux_dcd_dwc_otg_endpoint_status.c
......
如此的这类函数,里面都可以根据“ed = &dcd_otg -> ux_dcd_otg_ed[otg_endpoint_index];”otg_endpoint_index的这个值来判断使用的哪个端点,所以应该是有过初始化和激活