Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if(ep==1){
- dtxfsts = OTG->ie[ep].DTXFSTS&0x1ff; //IN endpoint TxFIFO space available
- while( ((dtxfsts) > 0) &&
- (usbp->epc[ep]->in_state->txsize > usbp->epc[ep]->in_state->txcnt) )
- {
- n = usbp->epc[ep]->in_state->txsize - usbp->epc[ep]->in_state->txcnt;
- len = dtxfsts*4;
- if (len > usbp->epc[ep]->in_maxsize)
- len = usbp->epc[ep]->in_maxsize;
- if(len>=n)
- {
- /* Last packet */
- len=n;
- OTG->DIEPEMPMSK &= ~DIEPEMPMSK_INEPTXFEM(ep);
- }
- otg_fifo_write_from_buffer(ep,
- usbp->epc[ep]->in_state->mode.linear.txbuf,
- len);
- usbp->epc[ep]->in_state->mode.linear.txbuf += len;
- usbp->epc[ep]->in_state->txcnt += len;
- dtxfsts = OTG->ie[ep].DTXFSTS&0x1ff;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment