SHOW:
|
|
- or go back to the newest paste.
| 1 | if(ep==1){
| |
| 2 | dtxfsts = OTG->ie[ep].DTXFSTS&0x1ff; //IN endpoint TxFIFO space available | |
| 3 | - | while( ((dtxfsts) > 0) && |
| 3 | + | while( (dtxfsts > 0) && |
| 4 | (usbp->epc[ep]->in_state->txsize > usbp->epc[ep]->in_state->txcnt) ) | |
| 5 | {
| |
| 6 | ||
| 7 | n = usbp->epc[ep]->in_state->txsize - usbp->epc[ep]->in_state->txcnt; | |
| 8 | ||
| 9 | len = dtxfsts*4; | |
| 10 | ||
| 11 | if (len > usbp->epc[ep]->in_maxsize) | |
| 12 | len = usbp->epc[ep]->in_maxsize; | |
| 13 | if(len>=n) | |
| 14 | {
| |
| 15 | /* Last packet */ | |
| 16 | len=n; | |
| 17 | OTG->DIEPEMPMSK &= ~DIEPEMPMSK_INEPTXFEM(ep); | |
| 18 | } | |
| 19 | otg_fifo_write_from_buffer(ep, | |
| 20 | usbp->epc[ep]->in_state->mode.linear.txbuf, | |
| 21 | len); | |
| 22 | usbp->epc[ep]->in_state->mode.linear.txbuf += len; | |
| 23 | usbp->epc[ep]->in_state->txcnt += len; | |
| 24 | ||
| 25 | dtxfsts = OTG->ie[ep].DTXFSTS&0x1ff; | |
| 26 | } | |
| 27 | } |