/* bulk out */
if(IrqStL & HSUSBD_GINTSTS_EPBIF_Msk)
{
int volatile i;
IrqSt = HSUSBD->EP[EPB].EPINTSTS & HSUSBD->EP[EPB].EPINTEN;
gu32RxSize = HSUSBD->EP[EPB].EPDATCNT & 0xffff;
for(i = 0; i < gu32RxSize; i++)
gUsbRxBuf[i] = HSUSBD->EP[EPB].EPDAT_BYTE;
/* Set a flag to indicate bulk out ready */
gi8BulkOutReady = 1;
HSUSBD_CLR_EP_INT_FLAG(EPB, IrqSt);
}
M463的hsusbd测试中,当bulkout发来数据,进入中断读取数据的时候,gu32RxSize=512字节的数据 在没有编译器优化的情况下,大约需要170us才能读完。
for(i = 0; i < gu32RxSize; i++)
gUsbRxBuf[i] = HSUSBD->EP[EPB].EPDAT_BYTE;
CPU跑的是200M,不知道为什么读usb的数据速度这么慢,这样也算不上usb2.0高速了,好像只要不到30M的波特率了,和480M差太多了,是什么原因呢
|