/* 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差太多了,是什么原因呢 
 
 
 
 
 |