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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gpif.lst

?? HIGH_SPEED_USB_To_ATA(IDE)Firmware相關代碼(EZ USB FX2芯片)
?? LST
?? 第 1 頁 / 共 4 頁
字號:
C51 COMPILER V7.50   GPIF                                                                  11/07/2006 14:52:08 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE GPIF
OBJECT MODULE PLACED IN gpif.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE gpif.c ROM(COMPACT) OPTIMIZE(9,SPEED) REGFILE(.\fx2_ata.ORC) BROWSE ORDER I
                    -NCDIR(c:\cypress\usb\target\inc) DEFINE(GPIF=0,FLASH=0,DEVICE_TYPE_IS_SCSI=1,DEVICE_TYPE_IS_IDE=1,VBUS_DETECT=1) DEBUG O
                    -BJECTEXTEND CODE

line level    source

   1          //-----------------------------------------------------------------------------
   2          //  Copyright (c) 1999 Cypress Semiconductor, Inc. All rights reserved
   3          //-----------------------------------------------------------------------------
   4          //
   5          // This file contains GPIF support code.  
   6          //
   7          // $Archive: /USB/atapifx2/software/gpif.c $
   8          // $Date: 1/23/02 9:37a $
   9          // $Revision: 62 $
  10          //-----------------------------------------------------------------------------
  11          #pragma ot(8,SPEED) // keep gpif.c at Optimization Level 8 (no re-ordering)
  12                                                  // This is because some DVD-RAM drives had a problem when a common
  13                                                  // subroutine was replaced. The problem appeared to be only a minor
  14                                                  // difference in timing. The DVD-RAM drive would fail if a subroutine
  15                                                  // call was added to readPIO8. It reported a residue of data after
  16                                                  // a prior transfer had been completed, and when that data was read,
  17                                                  // it was just a buffer filled with invalid (repeating) data.
  18                                                  // The problem appeared to be the fault of the DVD-ROM drive.
  19          
  20          #include <scsi.h>
  21          #include "fx2.h"
  22          #include "fx2regs.h"
  23          #include "gpif.h"
  24          
  25          
  26          #ifdef GPIF_ABORT_BUG_PRESENT
              const char code AbortWave[32] =                                                           
              { 
              /* LenBr */ 0x01,     0x3F,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,    
              /* Opcode*/ 0x00,     0x07,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,    
              /* Output*/ 0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,    
              /* LFun  */ 0x00,     0x40,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00    
              };
              #endif
  35          //
  36          // Do not edit the following waveform array!  Use the GPIF utility to edit the file
  37          // GPIFPIO0.C.  Once modifications are made there, paste the resulting waveform
  38          // array into this file.
  39          //
  40          const char code WaveDataPio0[128] =                                                           
  41          { 
  42          // Wave 0                                                                                  
  43          /* LenBr */ 0x0A,     0x01,     0x0A,     0x3F,     0x00,     0x00,     0x00,     0x00,    
  44          /* Opcode*/ 0x02,     0x02,     0x04,     0x01,     0x00,     0x00,     0x00,     0x00,    
  45          /* Output*/ 0xFE,     0xFF,     0xFF,     0xFF,     0x00,     0x00,     0x00,     0x00,    
  46          /* LFun  */ 0x00,     0x00,     0x00,     0x76,     0x00,     0x00,     0x00,     0x00,    
  47          // Wave 1                                                                                  
  48          /* LenBr */ 0x08,     0x0A,     0x3F,     0x00,     0x00,     0x00,     0x00,     0x00,    
  49          /* Opcode*/ 0x00,     0x06,     0x01,     0x00,     0x00,     0x00,     0x00,     0x00,    
  50          /* Output*/ 0xFD,     0xFF,     0xFF,     0x00,     0x00,     0x00,     0x00,     0x00,    
  51          /* LFun  */ 0x00,     0x00,     0x36,     0x00,     0x00,     0x00,     0x00,     0x00,    
  52          // Wave 0  UDMA Write
  53          /* LenBr */ 0x08,     0x01,     0x05,     0x1C,     0x03,     0x01,     0x02,     0x01,    
C51 COMPILER V7.50   GPIF                                                                  11/07/2006 14:52:08 PAGE 2   

  54          /* Opcode*/ 0x01,     0x00,     0x02,     0x03,     0x02,     0x02,     0x26,     0x00,    
  55          /* Output*/ 0xFF,     0xFB,     0xFA,     0xFA,     0xF8,     0xF9,     0xC3,     0xFF,    
  56          /* LFun  */ 0x09,     0x09,     0xA8,     0x09,     0x00,     0x00,     0x36,     0x3F,     
  57          // Wave 1 UDMA Read
  58          /* LenBr */ 0x08,     0x01,     0x13,     0x05,     0x01,     0x02,     0x01,     0x01,    
  59          /* Opcode*/ 0x01,     0x00,     0x01,     0x00,     0x00,     0x26,     0x26,     0x00,    
  60          /* Output*/ 0xFF,     0xFB,     0xF8,     0xFB,     0xFB,     0xFB,     0xFF,     0xFF,    
  61          /* LFun  */ 0x09,     0x09,     0x09,     0x09,     0x00,     0x2D,     0x36,     0x3F,    
  62          };                                                                                         
  63          
  64          //
  65          // Do not edit the following waveform array!  Use the GPIF utility to edit the file
  66          // GPIFPIO4.C.  Once modifications are made there, paste the resulting waveform
  67          // array into this file.
  68          //
  69          // Don't forget that the IORDY signal can be produced at the drive up to 35ns after we
  70          // drop RD or WR.  It then takes 2 clocks for us to demet the signal (async input).  The
  71          // IORDY signal is available on the FIFTH clock edge after RD or WR is dropped.
  72          // Edge 1)  Drop RD/WR (start state 0)
  73          // Edge 2)  No action
  74          // Edge 3)  IORDY detected at first flop
  75          // Edge 4)  IORDY detected at second flop
  76          // Edge 5)  IORDY available as an input to IF/THEN statements. (start state 1)
  77          //
  78          const char code WaveDataPio4[128] =                                                           
  79          {                                                                                          
  80          // Wave 0                                                                                  
  81          /* LenBr */ 0x04,     0x11,     0x01,     0x3F,     0,0,0,0,
  82          /* Opcode*/ 0x02,     0x03,     0x02,     0x07,     0,0,0,0,
  83          /* Output*/ 0xFE,     0xFE,     0xFF,     0xFF,     0,0,0,0,
  84          /* LFun  */ 0x00,     0x00,     0x00,     0x36,     0,0,0,0,
  85          // Wave 1                                                                                  
  86          /* LenBr */ 0x04,     0x11,     0x3f,     0x00,     0,0,0,0,
  87          /* Opcode*/ 0x00,     0x01,     0x07,     0x00,     0,0,0,0,
  88          /* Output*/ 0xFD,     0xFD,     0xFF,     0x00,     0,0,0,0,
  89          /* LFun  */ 0x00,     0x00,     0x00,     0x00,     0,0,0,0,
  90          // Wave 0  UDMA Write
  91          /* LenBr */ 0x08,     0x01,     0x06,     0x1C,     0x01,     0x01,     0x02,     0x07,    
  92          /* Opcode*/ 0x01,     0x00,     0x02,     0x03,     0x02,     0x02,     0x26,     0x00,    
  93          /* Output*/ 0xFF,     0xFB,     0xFA,     0xFA,     0xF8,     0xFB,     0xFB,     0xFF,    
  94          /* LFun  */ 0x09,     0x09,     0x12,     0x09,     0x00,     0x2d,     0x36,     0x3F,     
  95          // Wave 1  UDMA Read
  96          /* LenBr */ 0x08,     0x01,     0x13,     0x01,     0x01,     0x02,     0x01,     0x07,    
  97          /* Opcode*/ 0x01,     0x00,     0x01,     0x00,     0x00,     0x26,     0x26,     0x00,    
  98          /* Output*/ 0xFF,     0xFB,     0xF8,     0xFB,     0xFB,     0xFB,     0xFF,     0xFF,    
  99          /* LFun  */ 0x09,     0x09,     0x09,     0x1b,     0x00,     0x2D,     0x36,     0x3F,    
 100          };                                                                                         
 101          
 102          void hardwareReset()
 103          {
 104   1          OUTATAPI &= ~ATAPI_RESET_;
 105   1          EZUSB_Delay(100);
 106   1          OUTATAPI |= ATAPI_RESET_;
 107   1      }   
 108          
 109          
 110          void initUdmaRead()
 111          {
 112   1      
 113   1         FLOWLOGIC = 0x36;
 114   1         FLOWEQ0CTL = 0x00;
 115   1         FLOWEQ1CTL = 0x02;
C51 COMPILER V7.50   GPIF                                                                  11/07/2006 14:52:08 PAGE 3   

 116   1         FLOWSTB = 0xD0;
 117   1         FLOWSTBEDGE = 0x03;
 118   1         GPIFHOLDAMOUNT = 0x01;
 119   1      
 120   1         EP8FIFOCFG = 0x0D;
 121   1         IFCONFIG = 0xc6;
 122   1      }
 123          
 124          void initUdmaWrite()
 125          {
 126   1         FLOWLOGIC = 0x70;
 127   1         FLOWEQ0CTL = 0x00;
 128   1         FLOWEQ1CTL = 0x08;           // Enable CTL3 signal for XRO
 129   1         FLOWSTB = 0x11;
 130   1         FLOWSTBEDGE = 0x03;
 131   1         if(udmaMode == TRANSFER_MODE_UDMA2)
 132   1                 FLOWSTBHPERIOD = 0x04;  // for UDMA33
 133   1         else  
 134   1                 FLOWSTBHPERIOD = 0x02;  // for UDMA66
 135   1         GPIFHOLDAMOUNT = 0x01;
 136   1         EP2GPIFFLGSEL = 0x01;
 137   1         IFCONFIG = 0x86;
 138   1      }
 139          
 140          // Write a single byte to the given disk register or buffer
 141          void writePIO8(char addr, WORD indata)
 142          {
 143   1      
 144   1         // make sure GPIF is not busy
 145   1          while (!gpifIdle())
 146   1              {
 147   2              }
 148   1      
 149   1         GPIFWFSELECT = 0;    // PIO write is waveform 0
 150   1      
 151   1         // Write the address/chip selects
 152   1          OUTATAPI = addr | (~ATAPI_ADDR_MASK & ATAPI_IDLE_VALUE);
 153   1      
 154   1          // trigger the GPIF
 155   1          XGPIFSGLDATH = MSB(indata);                       // Single bus transaction on the GPIF
 156   1          XGPIFSGLDATLX = LSB(indata);                   // Single bus transaction on the GPIF
 157   1      
 158   1         // make sure GPIF is not busy
 159   1          while (!gpifIdle())
 160   1              {
 161   2              }
 162   1      
 163   1          // Clear the address/chip selects
 164   1          OUTATAPI = ATAPI_IDLE_VALUE;
 165   1      
 166   1      }   
 167          
 168          // Write the string to the given disk register or buffer
 169          void writePIO16(char addr, WORD count)
 170          {
 171   1          int timeout = IORDY_TIMEOUT_RELOAD;
 172   1      
 173   1          GPIFABORT = 0x00;
 174   1      
 175   1          while (!gpifIdle())
 176   1            ;
 177   1      
C51 COMPILER V7.50   GPIF                                                                  11/07/2006 14:52:08 PAGE 4   

 178   1         GPIFWFSELECT = 0;    // PIO write is waveform 0
 179   1      
 180   1         // Write the address/chip selects
 181   1          OUTATAPI = addr | (~ATAPI_ADDR_MASK & ATAPI_IDLE_VALUE);
 182   1      
 183   1      
 184   1         // set up GPIF transfer
 185   1         EP2GPIFTCH = MSB(count >> 1);
 186   1         EP2GPIFTCL = LSB(count >> 1);  // # of GPIF wordwide transactions
 187   1         EP2GPIFTRIG = 0x00;           // trigger the transfer
 188   1      //   GPIFTRIG = 0x00;        // GPIFTRIG[2] = RD/WR BIT (1 = READ)
 189   1                                    // xxxxxxxx
 190   1                                    // ||||||00 b0/b1:  EP bit code:  00=EP2, 01=EP4, 10=EP6, 11=EP8
 191   1                                    // |||||0-- b3:     R/W#: W=0, R=1
 192   1                                    // 0------- b7:     DONE
 193   1          while (!gpifIdle())
 194   1            ; 
 195   1      }   
 196          
 197          // Read the status register.  Added to save space.
 198          BYTE readATAPI_STATUS_REG()
 199          {
 200   1         return(readPIO8(ATAPI_STATUS_REG));
 201   1      }
 202          
 203          // Read a string from the given disk register or buffer
 204          BYTE readPIO8(char addr)
 205          {
 206   1         BYTE retval;
 207   1      
 208   1         while (!gpifIdle());
 209   1      
 210   1         GPIFWFSELECT = (1 << 4);    // PIO read is waveform 1
 211   1      
 212   1         // put out address of interest
 213   1         OUTATAPI = addr | (~ATAPI_ADDR_MASK & ATAPI_IDLE_VALUE);
 214   1      
 215   1         // trigger the GPIF
 216   1         retval = XGPIFSGLDATLX;         // Single bus transaction on the GPIF
 217   1      
 218   1         while (!gpifIdle());             // wait till GPIF is done before getting real data
 219   1      
 220   1         retval = XGPIFSGLDATLNOX;        // get data from last GPIF transaction
 221   1         OUTATAPI = ATAPI_IDLE_VALUE;     // Clear the address/chip selects      
 222   1      
 223   1          return(retval);
 224   1      }
 225          
 226          WORD readWordPIO8(char addr)
 227          {
 228   1         WORD retval;
 229   1         
 230   1         while (!gpifIdle());

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本精品一区二区三区四区的功能| 日韩精品一区二区三区在线播放 | 亚洲视频一二区| 国产精品1024| 中文字幕字幕中文在线中不卡视频| 成人va在线观看| 樱桃国产成人精品视频| 精品视频在线免费| 男女男精品网站| 2欧美一区二区三区在线观看视频| 国产河南妇女毛片精品久久久| 欧美国产禁国产网站cc| 91啪亚洲精品| 污片在线观看一区二区| 欧美va在线播放| yourporn久久国产精品| 亚洲午夜电影在线| 精品久久久久久久一区二区蜜臀| 国产精品中文欧美| 亚洲精品成人少妇| 91精品国产黑色紧身裤美女| 国产99久久久精品| 亚洲一区二区三区小说| 欧美不卡一区二区三区| 99久久夜色精品国产网站| 午夜精品一区在线观看| 久久精品视频一区二区三区| 99久久99精品久久久久久| 亚洲图片欧美色图| 国产区在线观看成人精品| 欧美在线观看视频一区二区三区| 国产美女一区二区| 亚洲国产视频一区| 中文字幕乱码亚洲精品一区| 欧美日韩国产天堂| av在线播放不卡| 免费人成黄页网站在线一区二区| 亚洲三级小视频| 久久色成人在线| 欧美精品一二三四| 91在线精品一区二区三区| 免费av网站大全久久| 亚洲蜜臀av乱码久久精品| 2020国产成人综合网| 91精品福利在线一区二区三区| 成人av免费观看| 国产麻豆9l精品三级站| 日日欢夜夜爽一区| 亚洲自拍另类综合| 亚洲人123区| 国产欧美日韩在线看| 日韩欧美aaaaaa| 欧美高清性hdvideosex| 一本久道久久综合中文字幕| 国产mv日韩mv欧美| 久久激情五月激情| 国产69精品久久久久毛片 | 午夜久久久久久久久| 中文字幕亚洲区| 国产丝袜在线精品| 久久婷婷国产综合精品青草 | 欧美在线免费观看视频| 99久久夜色精品国产网站| 成人在线综合网| 国产乱码精品1区2区3区| 麻豆成人91精品二区三区| 亚洲高清免费在线| 夜夜嗨av一区二区三区网页| 亚洲精品视频在线| 亚洲另类色综合网站| 亚洲人成精品久久久久久| 日韩一区有码在线| 日韩毛片高清在线播放| 中文字幕制服丝袜一区二区三区| 日本一区二区成人在线| 久久精品一区二区三区不卡牛牛| 日韩女优视频免费观看| 91精品午夜视频| 911国产精品| 精品久久久久av影院| 日韩美女在线视频| 久久综合成人精品亚洲另类欧美 | 开心九九激情九九欧美日韩精美视频电影 | 欧美精品1区2区| 欧美一级日韩一级| 日韩精品一区二区三区中文不卡| 精品国产区一区| 欧美国产日韩a欧美在线观看| 国产女主播在线一区二区| 亚洲欧洲日韩av| 亚洲一二三区视频在线观看| 午夜欧美一区二区三区在线播放 | 久久黄色级2电影| 国产最新精品免费| 成人精品在线视频观看| 色妞www精品视频| 欧美日韩一区二区三区在线看| 欧美亚洲一区二区三区四区| 5858s免费视频成人| 精品国产成人系列| 国产精品久久99| 亚洲自拍偷拍九九九| 久久激情五月激情| 99热这里都是精品| 在线电影一区二区三区| 久久精品综合网| 一区二区三区免费看视频| 琪琪久久久久日韩精品| 国产成人亚洲综合a∨婷婷| 91美女精品福利| 日韩欧美国产综合| 国产精品拍天天在线| 香蕉成人啪国产精品视频综合网 | 成人黄色小视频在线观看| 91高清视频免费看| 久久久久久夜精品精品免费| 亚洲免费在线播放| 激情欧美一区二区三区在线观看| www.欧美色图| 日韩视频免费观看高清完整版在线观看| 久久久久久久久久久久电影| 亚洲一卡二卡三卡四卡五卡| 国产一区二区女| 欧美色图第一页| 欧美激情一区二区三区不卡 | 久久精品亚洲国产奇米99| 亚洲少妇最新在线视频| 精品无人码麻豆乱码1区2区 | 日产国产欧美视频一区精品| 成人h动漫精品一区二区| 欧美一级一级性生活免费录像| 亚洲欧洲成人精品av97| 精久久久久久久久久久| 欧美老女人第四色| 亚洲天堂中文字幕| 国产精品一二三在| 日韩欧美一区二区免费| 一区二区视频在线| 成人免费毛片app| 久久久午夜精品| 麻豆精品在线观看| 欧美日韩不卡在线| 亚洲美女区一区| 99久久免费精品高清特色大片| 精品国产区一区| 久久er99精品| 717成人午夜免费福利电影| 一区二区三区视频在线看| 成人av手机在线观看| 国产亚洲美州欧州综合国| 免费av网站大全久久| 91麻豆精品国产91久久久资源速度| 一区二区三区免费| 一本色道久久综合亚洲91| 国产精品国产自产拍在线| 国产精品99久久久久久宅男| 欧美精品一区二区三| 美女视频黄a大片欧美| 91精品国产综合久久久蜜臀图片| 午夜精品在线看| 欧美精品99久久久**| 日本午夜一区二区| 欧美精品一卡两卡| 日韩黄色免费电影| 在线综合+亚洲+欧美中文字幕| 日韩成人av影视| 日韩一级视频免费观看在线| 美女视频网站久久| 久久综合中文字幕| 国产大陆亚洲精品国产| 国产午夜亚洲精品羞羞网站| 国产精华液一区二区三区| 国产精品欧美综合在线| 色一情一伦一子一伦一区| 亚洲一区二区高清| 欧美一级专区免费大片| 久久精品国产第一区二区三区| 欧美大片在线观看一区二区| 国产一区二区三区免费在线观看 | 日韩欧美综合一区| 老司机午夜精品| 日本一区二区三区视频视频| 成人一区二区视频| 亚洲美女偷拍久久| 欧美一卡2卡三卡4卡5免费| 国产九九视频一区二区三区| 国产精品乱码久久久久久| 在线视频一区二区三| 日韩精品国产欧美| 久久精品人人爽人人爽| 99re亚洲国产精品| 午夜视频在线观看一区| 久久久夜色精品亚洲| 91在线国内视频| 美女脱光内衣内裤视频久久网站| 国产午夜精品一区二区三区视频 | 亚洲国产精品久久不卡毛片 | 亚洲免费毛片网站| 欧美三级电影网站| 国产经典欧美精品|