usb device 中的寄存器EP0_CSR 与 IN_CSR1_REG
请教一个问题:usb device 寄存器EP0_CSR 与 IN_CSR1_REG都是映射到了0x52000184(L) 0x52000187(B)地址处,在实际用的时候如何区分哪个寄存器是in的,哪个寄存器是out的?
如何区分ep0中断是in还是out?
非常感谢。 韦东山的u-boot-1.1.6_OpenJTAG中usb device配置函数里是这样写的,看来是INDEX_REG的值决定的
void ReconfigUsbd(void)
{
...
usbdevregs->INDEX_REG=0;
usbdevregs->EP0_CSR_IN_CSR1_REG=EP0_SERVICED_OUT_PKT_RDY|EP0_SERVICED_SETUP_END;
...
usbdevregs->INDEX_REG=1;
usbdevregs->EP0_CSR_IN_CSR1_REG=EPI_FIFO_FLUSH|EPI_CDT;
...
usbdevregs->INDEX_REG=2;
usbdevregs->EP0_CSR_IN_CSR1_REG=EPI_FIFO_FLUSH|EPI_CDT|EPI_BULK;
...
usbdevregs->INDEX_REG=3;
usbdevregs->EP0_CSR_IN_CSR1_REG=EPI_FIFO_FLUSH|EPI_CDT|EPI_BULK;
...
usbdevregs->INDEX_REG=4;
usbdevregs->EP0_CSR_IN_CSR1_REG=EPI_FIFO_FLUSH|EPI_CDT|EPI_BULK;
...
}
ep0中断是in还是out?
这个需要了解USB协议
看主机发送给设备的控制请求
struct usb_ctrlrequest {
__u8 bRequestType;
__u8 bRequest;
__le16 wValue;
__le16 wIndex;
__le16 wLength;
} __attribute__ ((packed));
bRequestType成员的第7位的值表明了是in还是out
bit7=1:要求设备发送数据给主机
bit7=0:要求设备接收主机的数据 pcwangyihui 发表于 2012-7-28 10:41 static/image/common/back.gif
韦东山的u-boot-1.1.6_OpenJTAG中usb device配置函数里是这样写的,看来是INDEX_REG的值决定的
void Recon ...
噢,应该是 INDEX_REG的值决定的。
非常感谢! 一般情况下,EP0是用作控制端点
页:
[1]