亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
91麻豆精品国产91久久久资源速度| 欧美一区二区视频网站| 国产欧美精品一区二区色综合| 视频一区国产视频| 精品国产伦一区二区三区观看方式| 免费在线观看精品| 国产精品你懂的| 欧美精品在线一区二区| 狠狠色丁香婷婷综合| 国产欧美精品一区aⅴ影院| 色综合天天综合| 久久99久久久久| 亚洲三级久久久| 精品欧美一区二区三区精品久久| 欧亚一区二区三区| 日韩成人伦理电影在线观看| 欧美激情综合五月色丁香| 欧美性生活一区| 国产99久久精品| 韩国三级电影一区二区| 天堂影院一区二区| 亚洲色图制服丝袜| 中文一区二区在线观看| 精品久久久久久久久久久久包黑料 | 亚洲精品欧美二区三区中文字幕| 欧美www视频| 欧美一区在线视频| 欧美一区二区三区视频在线| 欧美在线free| 欧美日本一区二区三区| 色综合网色综合| 91成人免费电影| 在线看不卡av| 欧美视频三区在线播放| 欧美丝袜第三区| 日韩一区二区三区视频在线| 91麻豆精品国产91久久久久| 色婷婷激情综合| 7777精品伊人久久久大香线蕉| 在线一区二区三区四区| 色综合av在线| 欧美国产乱子伦 | 337p亚洲精品色噜噜| 日韩午夜在线影院| 久久综合九色综合97婷婷女人| 欧美国产欧美亚州国产日韩mv天天看完整| 精品少妇一区二区三区在线播放 | 久久综合久久鬼色中文字| 国产午夜精品一区二区三区视频| 久久奇米777| 亚洲高清在线视频| 国产精品综合视频| 日本福利一区二区| 欧美极品aⅴ影院| 亚洲午夜私人影院| 成人国产精品免费观看| 欧美欧美欧美欧美| 日韩一区精品视频| 国产一区高清在线| 欧美老女人在线| 中文字幕一区二区三区精华液| 同产精品九九九| 日本韩国欧美国产| 欧美激情中文不卡| 国产在线播放一区| 日韩精品综合一本久道在线视频| 亚洲精品日产精品乱码不卡| 国产高清成人在线| 久久丝袜美腿综合| 精品一区二区三区在线观看 | 久久99精品国产麻豆婷婷| 色综合久久天天| 亚洲同性gay激情无套| 国产成人免费视频网站| ww久久中文字幕| 丰满少妇在线播放bd日韩电影| 日韩亚洲欧美高清| 久久国产剧场电影| 日韩欧美电影一二三| 韩国女主播成人在线| 欧美一区二区在线免费观看| 五月天一区二区三区| 欧美日韩成人综合| 裸体健美xxxx欧美裸体表演| 日韩欧美精品在线视频| 一区二区三区中文字幕在线观看| 日本韩国一区二区三区视频| 国产伦精品一区二区三区在线观看| 日韩精品影音先锋| 99精品视频免费在线观看| 亚洲免费观看在线观看| 日韩一区二区免费在线电影| 国产精品一区二区久久不卡| 亚洲自拍偷拍综合| 精品国产免费人成在线观看| 成人av资源站| 久久国产精品一区二区| 亚洲精选免费视频| 久久精品视频免费| 91精品国产乱| 成人深夜在线观看| 久久99久久精品| 亚洲第一av色| 国产精品久久久一本精品 | 51精品视频一区二区三区| 亚洲精品国产视频| 欧亚一区二区三区| 91黄色小视频| 国产亚洲成av人在线观看导航| 综合色天天鬼久久鬼色| 五月天亚洲精品| av中文字幕一区| 精品国产乱码久久久久久图片| 波多野结衣的一区二区三区| 欧美电影免费观看高清完整版在线观看| 91精品国产美女浴室洗澡无遮挡| 精品国产一区二区精华| 国产精品二三区| 免费在线看一区| 在线观看精品一区| 久久日一线二线三线suv| 亚洲精品成人悠悠色影视| 激情综合网av| 欧美日韩卡一卡二| 17c精品麻豆一区二区免费| 久久er99精品| 在线电影欧美成精品| 亚洲成人在线观看视频| 国产馆精品极品| 久久―日本道色综合久久| 午夜影院久久久| 欧美精品自拍偷拍动漫精品| 中文在线免费一区三区高中清不卡 | 色琪琪一区二区三区亚洲区| 久久蜜臀中文字幕| 国产精品一区免费视频| 51精品国自产在线| 一区二区三区在线免费| 国产一区二区三区免费观看| 91精品国产综合久久精品图片| 亚洲日本一区二区三区| 91小视频免费看| 亚洲男同1069视频| 欧美日韩免费视频| 日韩1区2区日韩1区2区| 欧美区一区二区三区| 日韩专区中文字幕一区二区| 91丨九色丨黑人外教| 中文字幕精品一区二区精品绿巨人| 狠狠色丁香婷婷综合久久片| 精品福利一区二区三区| 国产成人日日夜夜| 国产精品传媒视频| 欧美老女人在线| 国产一区三区三区| 亚洲你懂的在线视频| 欧美精品在线观看播放| 国产一区999| 亚洲欧美激情小说另类| 欧美另类久久久品| 国产成人8x视频一区二区| 一区二区三区波多野结衣在线观看| 欧美无砖专区一中文字| 狠狠色丁香久久婷婷综| 亚洲va欧美va天堂v国产综合| 欧美v亚洲v综合ⅴ国产v| 成人午夜激情视频| 精油按摩中文字幕久久| 亚洲 欧美综合在线网络| 亚洲国产视频在线| 精品国产污污免费网站入口 | 日韩美女天天操| 91福利视频网站| 一本色道久久综合亚洲aⅴ蜜桃 | 欧美亚洲一区二区三区四区| 国产久卡久卡久卡久卡视频精品| 亚洲综合免费观看高清完整版在线| 久久九九全国免费| 26uuu精品一区二区| 欧美一区二区成人| 欧美视频一区二区三区在线观看| 久久精品国产秦先生| 天堂一区二区在线| 亚洲欧美aⅴ...| 国产欧美一区二区精品性色| 欧美一级二级三级乱码| 精品久久人人做人人爱| 日韩欧美久久一区| 精品女同一区二区| 国产亚洲va综合人人澡精品| 久久久久久久久久久黄色| 久久久影院官网| 亚洲已满18点击进入久久| 一区二区三区毛片| 美女视频黄 久久| 成人免费视频播放| 欧美体内she精高潮| xf在线a精品一区二区视频网站| 国产亚洲欧美在线| 亚欧色一区w666天堂|