亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? gpiflongxfr.c

?? Cypress CY7C68013A USB GIF 高速接口編程接口FirmWall
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
BOOL DR_GetStatus( void )
{
   return( TRUE );
}

BOOL DR_ClearFeature( void )
{
   return( TRUE );
}

BOOL DR_SetFeature( void )
{
   return( TRUE );
}

#define VX_B2 0xB2              // turn OFF debug LEDs...
#define VX_B4 0xB4              // read GPIFTRIG register
#define VX_B5 0xB5              // GPIFABORT
#define VX_B7 0xB7              // re-initialize, call TD_Init( );
#define VX_B8 0xB8              // do a "soft reset", vector to org 00h
#define VX_B9 0xB9              // commit IN pkt. via INPKTEND=6
#define VX_C0 0xC0              // td poll handles data transfers
#define VX_C1 0xC1              // vend cmnd handles data transfers
#define VX_C2 0xC2              // cpu source out data
#define VX_C3 0xC3              // switch to AUTOOUT=1, auto mode
#define VX_C4 0xC4              // switch to AUTOOUT=0, manual mode
#define VX_C5 0xC5              // read REVCTL register
#define VX_D0 0xD0              // read GPIFTCx registers
#define VX_D1 0xD1              // setup GPIFTCx = 0xFFFFFFFF;
#define VX_D2 0xD2              // launch GPIF FIFOWr Waveform


// Core uses bRequest value 0xA0 for Anchor downloads/uploads...
// Cypress Semiconductor reserves bRequest values 0xA1 through 0xAF...
// Your implementation should not use the above bRequest values...
// Also, previous fw.c versions trap all bRequest values 0x00 through 0x0F...
//
//   bRequest value: SETUPDAT[1]
//   standard, 0x00 through 0x0F
//
//   bmRequest value: SETUPDAT[0]
//   standard,  0x80 IN   Token
//   vendor,    0xC0 IN   Token
//   class,     0xA0 IN   Token
//   standard,  0x00 OUT  Token
//   vendor,    0x40 OUT  Token
//   class,     0x60 OUT  Token

BOOL DR_VendorCmnd( void )
{
  
  // Registers which require a synchronization delay, see section 15.14
  // FIFORESET        FIFOPINPOLAR
  // INPKTEND         OUTPKTEND
  // EPxBCH:L         REVCTL
  // GPIFTCB3         GPIFTCB2
  // GPIFTCB1         GPIFTCB0
  // EPxFIFOPFH:L     EPxAUTOINLENH:L
  // EPxFIFOCFG       EPxGPIFFLGSEL
  // PINFLAGSxx       EPxFIFOIRQ
  // EPxFIFOIE        GPIFIRQ
  // GPIFIE           GPIFADRH:L
  // UDMACRCH:L       EPxGPIFTRIG
  // GPIFTRIG
  
  // Note: The pre-REVE EPxGPIFTCH/L register are affected, as well...
  //      ...these have been replaced by GPIFTC[B3:B0] registers

	switch( SETUPDAT[ 1 ] )
	{ 
    case VX_B2:
    { // turn OFF debug LEDs...
    
      ledX_rdvar = LED0_OFF;    // visual
      ledX_rdvar = LED1_OFF;    // visual
      ledX_rdvar = LED2_OFF;    // visual
      ledX_rdvar = LED3_OFF;    // visual
      
      *EP0BUF = VX_B2;
      break;
    }
    case VX_B4:
    { 
      *EP0BUF = GPIFTRIG;
      break;
    }
    case VX_B5:
    { 
      GPIFABORT = 0xFF;
      *EP0BUF = VX_B5;
      break;
    }
    case VX_B7:
    { 
      TD_Init( );
      *EP0BUF = VX_B7;
      break;
    }
    case VX_B8:
    { 
      EP0BCH = 0;
      EP0BCL = 1;                   // Arm endpoint with # bytes to transfer
      EP0CS |= bmHSNAK;             // Acknowledge handshake phase of device request
      SYNCDELAY;                    // used here as "delay"
      SYNCDELAY;                    // used here as "delay"
      
      EA = 0;             
                      
      // ...do a "soft" code only RESET... vector to ORG 0x0000
      ( ( void ( code * ) ( void ) ) 0x0000 ) ( );
      
      *EP0BUF = VX_B8;
      break;
    }
    case VX_B9:
    { 
      // AUTOIN=0, so 8051 pass pkt. to host...
      SYNCDELAY;                // 
      INPKTEND = 0x06;          // ...w/skip=0; commit however many bytes in pkt.
      SYNCDELAY;                // 
                                // ...NOTE: this also handles "shortpkt"
      *EP0BUF = VX_B9;
      break;
    }
    case VX_C0:
    { // td_poll(); handles data transfers
      td_poll_handles_transfers = 1;
      *EP0BUF = VX_C0;
      break;
    }
    case VX_C1:
    { // vend cmnds handle data transfers
      td_poll_handles_transfers = 0;
      *EP0BUF = VX_C1;
      break;
    }
    case VX_C2:
    { // cpu source out data
      if( EP24FIFOFLGS & 0x02 )
      {
        REVCTL = 0x01;            // ENH_PKT=1 (enabled in TD_Init( ); as well...)
        SYNCDELAY;                // 
        FIFORESET = 0x80;         // nak all OUT pkts. from host
        SYNCDELAY;                // 
        FIFORESET = 0x02;         // advance all EP2 buffers to cpu domain
        SYNCDELAY;                // 
        EP2FIFOBUF[0] = 0xAA;     // create newly source pkt. data
        SYNCDELAY;                // 
        EP2BCH = 0x00;
        SYNCDELAY;                // 
        EP2BCL = 0x01;            // commit newly sourced pkt. to interface fifo
      
        // setup GPIF transaction count
        SYNCDELAY;
        GPIFTCB3 = 0x00;
        SYNCDELAY;
        GPIFTCB2 = 0x00;
        SYNCDELAY;
        GPIFTCB1 = 0x00;
        SYNCDELAY;
        GPIFTCB0 = 0x01;
      
        // trigger FIFO write transaction(s), using SFR
        // R/W=0, EP[1:0]=00 for EP2 write(s)
        SYNCDELAY;
        GPIFTRIG = GPIFTRIGWR | GPIF_EP2;  
      
        // one byte (value = 0xAA) transfers over the peripheral bus
        SYNCDELAY;
        // wait for the transaction to terminate naturally...
        while( !( GPIFTRIG & 0x80 ) )
        { 
          ; // poll GPIFTRIG.7, DONE bit...
        }
      
        // beware of "left over" uncommitted buffers
                                
        SYNCDELAY;                // 
        OUTPKTEND = 0x82;         // skip uncommitted pkt. (second pkt.)
        SYNCDELAY;                // 
        OUTPKTEND = 0x82;         // skip uncommitted pkt. (third pkt.)
        SYNCDELAY;                // 
        OUTPKTEND = 0x82;         // skip uncommitted pkt. (fourth pkt.)
        // note: core will not allow pkts. to get out of sequence
        SYNCDELAY;                // 
        FIFORESET = 0x00;         // release "nak all"
        SYNCDELAY;
      
        *EP0BUF = VX_C2;
      }
      else
      {
        *EP0BUF = 0xFF;
      }
      
      break;
    }
    case VX_C3:
    { // switch to AUTO mode
      SYNCDELAY;                // 
      EP2FIFOCFG = 0x10;        // AUTOOUT=1
      SYNCDELAY;                // 
      EP6FIFOCFG = 0x05;        // AUTOIN=1
      // NOTE: these can be performed independently
      endp_auto_mode_enabled = 1;
      *EP0BUF = VX_C3;
      break;
    }
    case VX_C4:
    { // switch to MANUAL mode
      SYNCDELAY;                // 
      EP2FIFOCFG = 0x00;        // AUTOOUT=0
      SYNCDELAY;                // 
      EP6FIFOCFG = 0x04;        // AUTOIN=0
      // NOTE: these can be performed independently
      endp_auto_mode_enabled = 0;
      *EP0BUF = VX_C4;
      break;
    }
    case VX_C5:
    { // read REVCTL register
      *EP0BUF = REVCTL;
      break;
    }
    case VX_D0:
    { // read live GPIF Transaction Count
      EP0BUF[0] = GPIFTCB3;
      EP0BUF[1] = GPIFTCB2;
      EP0BUF[2] = GPIFTCB1;
      EP0BUF[3] = GPIFTCB0;
      EP0BUF[4] = VX_D0;
      EP0BCH = 0;
      EP0BCL = 5;                   // Arm endpoint with # bytes to transfer
      EP0CS |= bmHSNAK;             // Acknowledge handshake phase of device request
  
	    return( FALSE );              // no error; command handled OK
      break;
    }
    case VX_D1:
    { // setup GPIF transaction count
      
      GPIFTCB3 = 0xFF;
      SYNCDELAY;                    // 
      GPIFTCB2 = 0xFF;
      SYNCDELAY;                    // 
      GPIFTCB1 = 0xFF;
      SYNCDELAY;                    // 
      GPIFTCB0 = 0xFF;
      SYNCDELAY;                    // 
      
      *EP0BUF = VX_D1;
      break;
    }
    case VX_D2:
    { 
      // you may wish to check your peripheral's status here...
      
      // trigger FIFO write transaction(s), using SFR
      // R/W=0, EP[1:0]=00 for EP2 write(s)
      SYNCDELAY;                    // 
      GPIFTRIG = GPIFTRIGWR | GPIF_EP2;  
      
      // NOTE: 512 bytes transfers in ~75usec on 8-bit async bus 
      // ...once master (GPIF) drains OUT pkt, it (re)arms to usb domain
      *EP0BUF = VX_D2;
      break;
    }
    default:
    {
      ledX_rdvar = LED3_ON;     // debug visual, stuck "ON" to warn developer...
	    return( FALSE );          // no error; command handled OK
    }
	}
  
  EP0BCH = 0;
  EP0BCL = 1;                   // Arm endpoint with # bytes to transfer
  EP0CS |= bmHSNAK;             // Acknowledge handshake phase of device request
  
	return( FALSE );              // no error; command handled OK
}

//-----------------------------------------------------------------------------
// USB Interrupt Handlers
//   The following functions are called by the USB interrupt jump table.
//-----------------------------------------------------------------------------

// Setup Data Available Interrupt Handler
void ISR_Sudav( void ) interrupt 0
{
   GotSUD = TRUE;         // Set flag
   EZUSB_IRQ_CLEAR( );
   USBIRQ = bmSUDAV;      // Clear SUDAV IRQ
}

// Setup Token Interrupt Handler
void ISR_Sutok( void ) interrupt 0
{
   EZUSB_IRQ_CLEAR( );
   USBIRQ = bmSUTOK;      // Clear SUTOK IRQ
}

void ISR_Sof( void ) interrupt 0
{
   EZUSB_IRQ_CLEAR( );
   USBIRQ = bmSOF;        // Clear SOF IRQ
}

void ISR_Ures( void ) interrupt 0
{
   if ( EZUSB_HIGHSPEED( ) )
   {
      pConfigDscr = pHighSpeedConfigDscr;
      pOtherConfigDscr = pFullSpeedConfigDscr;
   }
   else
   {
      pConfigDscr = pFullSpeedConfigDscr;
      pOtherConfigDscr = pHighSpeedConfigDscr;
   }
   
   EZUSB_IRQ_CLEAR( );
   USBIRQ = bmURES;       // Clear URES IRQ
}

void ISR_Susp( void ) interrupt 0
{
   Sleep = TRUE;
   EZUSB_IRQ_CLEAR( );
   USBIRQ = bmSUSP;
}

void ISR_Highspeed( void ) interrupt 0
{
   if ( EZUSB_HIGHSPEED( ) )
   {
      pConfigDscr = pHighSpeedConfigDscr;
      pOtherConfigDscr = pFullSpeedConfigDscr;
   }
   else
   {
      pConfigDscr = pFullSpeedConfigDscr;
      pOtherConfigDscr = pHighSpeedConfigDscr;
   }

   EZUSB_IRQ_CLEAR( );
   USBIRQ = bmHSGRANT;
}
void ISR_Ep0ack( void ) interrupt 0
{
}
void ISR_Stub( void ) interrupt 0
{
}
void ISR_Ep0in( void ) interrupt 0
{
}
void ISR_Ep0out( void ) interrupt 0
{
}
void ISR_Ep1in( void ) interrupt 0
{
}
void ISR_Ep1out( void ) interrupt 0
{
}
void ISR_Ep2inout( void ) interrupt 0
{
}
void ISR_Ep4inout( void ) interrupt 0
{
}
void ISR_Ep6inout( void ) interrupt 0
{
}
void ISR_Ep8inout( void ) interrupt 0
{
}
void ISR_Ibn( void ) interrupt 0
{
}
void ISR_Ep0pingnak( void ) interrupt 0
{
}
void ISR_Ep1pingnak( void ) interrupt 0
{
}
void ISR_Ep2pingnak( void ) interrupt 0
{
}
void ISR_Ep4pingnak( void ) interrupt 0
{
}
void ISR_Ep6pingnak( void ) interrupt 0
{
}
void ISR_Ep8pingnak( void ) interrupt 0
{
}
void ISR_Errorlimit( void ) interrupt 0
{
}
void ISR_Ep2piderror( void ) interrupt 0
{
}
void ISR_Ep4piderror( void ) interrupt 0
{
}
void ISR_Ep6piderror( void ) interrupt 0
{
}
void ISR_Ep8piderror( void ) interrupt 0
{
}
void ISR_Ep2pflag( void ) interrupt 0
{
}
void ISR_Ep4pflag( void ) interrupt 0
{
}
void ISR_Ep6pflag( void ) interrupt 0
{
}
void ISR_Ep8pflag( void ) interrupt 0
{
}
void ISR_Ep2eflag( void ) interrupt 0
{
}
void ISR_Ep4eflag( void ) interrupt 0
{
}
void ISR_Ep6eflag( void ) interrupt 0
{
}
void ISR_Ep8eflag( void ) interrupt 0
{
}
void ISR_Ep2fflag( void ) interrupt 0
{
}
void ISR_Ep4fflag( void ) interrupt 0
{
}
void ISR_Ep6fflag( void ) interrupt 0
{
}
void ISR_Ep8fflag( void ) interrupt 0
{
}
void ISR_GpifComplete( void ) interrupt 0
{
}
void ISR_GpifWaveform( void ) interrupt 0
{  // FIFORd WF detected peripheral prematurely empty (less than max. pkt. size)

  GPIFABORT = 0xFF;             // abort to handle shortpkt
  
  SYNCDELAY;
	EXIF &=  ~0x40;
  INT4CLR = 0xFF;             // automatically enabled at POR
  SYNCDELAY;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
粉嫩高潮美女一区二区三区| 国产精品嫩草影院com| 国产午夜精品在线观看| 亚洲午夜免费福利视频| 粗大黑人巨茎大战欧美成人| 欧美一区二区精品久久911| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 久久国产精品72免费观看| 色噜噜狠狠成人网p站| 国产午夜精品美女毛片视频| 青青青爽久久午夜综合久久午夜| 日本高清视频一区二区| 国产精品久久久久影院色老大| 精品一区二区三区免费毛片爱 | 亚洲美女淫视频| 国产精品456露脸| 日韩精品一区二区三区三区免费 | 亚洲精品国产无天堂网2021| 成人性视频免费网站| 欧美精品一区二区三| 日本少妇一区二区| 欧美三级日韩在线| 一区二区在线观看免费| 97精品国产97久久久久久久久久久久| 久久精品在线观看| 紧缚奴在线一区二区三区| 91麻豆精品国产综合久久久久久| 亚洲一区二区三区四区五区中文| 91麻豆视频网站| 国产精品久久久久一区二区三区共 | 欧美电影免费观看高清完整版在线观看| 亚洲精品国产无套在线观| 91亚洲精华国产精华精华液| 欧美国产精品专区| 国产成人aaaa| 国产三级精品三级在线专区| 国产精品香蕉一区二区三区| 久久精品人人做人人爽人人| 国产成人精品免费网站| 国产丝袜在线精品| 成人动漫视频在线| 国产精品免费视频一区| 成人精品免费看| 国产精品毛片久久久久久| 成人av中文字幕| 最新不卡av在线| 91久久香蕉国产日韩欧美9色| 亚洲激情五月婷婷| 欧美一a一片一级一片| 首页国产欧美久久| 91精品国产欧美日韩| 精品中文字幕一区二区小辣椒| 欧美v日韩v国产v| 国产九色sp调教91| 国产精品丝袜黑色高跟| 波多野洁衣一区| 国产麻豆精品视频| 26uuu国产电影一区二区| 国产精品影音先锋| 国产精品毛片大码女人| 色综合久久久久综合体| 午夜精品福利一区二区蜜股av| 91精品啪在线观看国产60岁| 精品一区二区免费在线观看| 国产欧美一区二区在线| 99视频在线观看一区三区| 亚洲精品国产成人久久av盗摄| 欧美日韩精品福利| 精品综合免费视频观看| 国产精品麻豆一区二区| 欧美日韩在线观看一区二区| 日本不卡的三区四区五区| 久久亚洲二区三区| 色综合色综合色综合| 日韩高清不卡在线| 国产色综合久久| 色妹子一区二区| 毛片一区二区三区| 国产精品久久久久婷婷二区次| 欧美系列在线观看| 久久精品国产亚洲5555| 国产精品国产精品国产专区不片| 欧美色视频一区| 国产精品一区一区| 亚洲午夜久久久| 久久精品日产第一区二区三区高清版| 99久久久久免费精品国产| 亚洲成人av一区二区| 久久久久久免费毛片精品| 欧美影院午夜播放| 国产精品99久久久久久宅男| 亚洲一区二区三区精品在线| 久久一夜天堂av一区二区三区| 色呦呦一区二区三区| 国产综合色精品一区二区三区| 一区二区三区精品视频在线| 精品精品国产高清一毛片一天堂| 色综合久久久久综合体桃花网| 国内精品久久久久影院薰衣草| 亚洲综合在线电影| 久久青草欧美一区二区三区| 欧美性猛交一区二区三区精品| 激情亚洲综合在线| 亚洲国产精品一区二区www在线| 国产色产综合色产在线视频| 56国语精品自产拍在线观看| fc2成人免费人成在线观看播放| 免播放器亚洲一区| 亚洲综合在线观看视频| 中文在线免费一区三区高中清不卡 | 亚洲一区自拍偷拍| 国产日韩欧美精品一区| 91精品婷婷国产综合久久性色| 91捆绑美女网站| 国产精品原创巨作av| 日本成人在线看| 亚洲免费高清视频在线| 久久九九影视网| 91精品久久久久久久91蜜桃| 91成人网在线| 成人国产精品免费| 国内精品免费在线观看| 日韩国产一二三区| 亚洲精品成a人| 国产视频在线观看一区二区三区 | 久久久亚洲高清| 91精品国产综合久久精品图片| 91视频在线观看| 国产成都精品91一区二区三| 精品一区二区三区在线视频| 日产国产欧美视频一区精品| 一区二区欧美在线观看| 18成人在线视频| 国产三级一区二区三区| 久久嫩草精品久久久久| 欧美α欧美αv大片| 日韩限制级电影在线观看| 欧美人体做爰大胆视频| 在线观看亚洲精品视频| 一本色道久久综合狠狠躁的推荐 | 国产在线精品一区二区不卡了| 亚洲444eee在线观看| 亚洲曰韩产成在线| 亚洲免费在线观看视频| 亚洲欧洲无码一区二区三区| 欧美国产禁国产网站cc| 国产亚洲精久久久久久| 久久婷婷成人综合色| 精品国产亚洲在线| 日韩欧美国产综合| 欧美一区二区国产| 555夜色666亚洲国产免| 在线观看91av| 日韩午夜av电影| 日韩视频一区二区| 欧美成人女星排行榜| 欧美一区欧美二区| 日韩免费在线观看| 亚洲欧美在线高清| 欧美日韩在线播放三区四区| 欧美色涩在线第一页| 91久久精品国产91性色tv| 97久久人人超碰| 色婷婷综合久色| 欧美亚洲综合在线| 欧美精品三级日韩久久| 日韩午夜精品电影| 日韩视频免费直播| 久久综合九色欧美综合狠狠 | 色老汉一区二区三区| 欧美午夜不卡在线观看免费| 欧美群妇大交群中文字幕| 日韩欧美精品在线视频| 久久久精品天堂| 中文字幕五月欧美| 亚洲美女偷拍久久| 丝袜美腿亚洲综合| 麻豆一区二区99久久久久| 国产精品66部| 91蜜桃网址入口| 欧美日韩一本到| 日韩欧美国产不卡| 欧美激情一区二区在线| 亚洲精品大片www| 日本不卡视频一二三区| 国产精品综合视频| 99re66热这里只有精品3直播| 欧美日韩一级二级| 26uuu精品一区二区| 亚洲特级片在线| 婷婷激情综合网| 国产成人精品综合在线观看| 日本韩国欧美一区| 亚洲精品你懂的| 久久国产综合精品| 99久久久精品免费观看国产蜜| 欧美亚洲图片小说| 久久新电视剧免费观看| 亚洲摸摸操操av| 九色综合国产一区二区三区|