View difference between Paste ID: mE6SThBb and fXi9M4HU
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
    }