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

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

?? ide.lst

?? linux下數(shù)據(jù)下載器的設(shè)計(jì)與實(shí)現(xiàn)
?? LST
?? 第 1 頁 / 共 2 頁
字號:
C51 COMPILER V7.50   IDE                                                                   10/12/2007 17:05:44 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE IDE
OBJECT MODULE PLACED IN ide.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE ide.c OBJECTADVANCED OPTIMIZE(11,SIZE) REGFILE(.\nand_fw2k.ORC) BROWSE ORDE
                    -R INCDIR(c:\cypress\usb\target\inc) DEFINE(NAND_2K) DEBUG

line level    source

   1          //-----------------------------------------------------------------------------
   2          // IDE.c
   3          // This file contains the IDE specific portions of the code.
   4          //
   5          // Format:  indent 3.  NO TABS!
   6          //
   7          
   8          //--------------------------------------------------------------------------
   9          
  10          //--------------------------------------------------------------------------
  11          
  12          #include "globals.h"
  13          
  14          void loadEP4BC(WORD dataLen);
  15          
  16          void cMedia() { if (bEject) sensePtr = senseNoMedia; else sensePtr=senseOk; }
  17          
  18          // This command is only used for removable DRIVES, not removable media
  19          // An example of removable drive is Compact Flash 
  20          #define checkForMedia(x) cMedia()
  21          
  22          
  23          // From SCSI spec SPC (SCSI primary commands)
  24          // Byte 0 -- 70 = Current error
  25          // Byte 1 -- Segment number
  26          // Byte 2 -- Sense key (SPC table 107)
  27          //             5 = ILLEGAL REQUEST. Indicates that there was an illegal parameter in 
  28          //                 the CDB or in the additional parameters supplied as data for some commands
  29          //             B = ABORTED COMMAND. Indicates that the device server aborted the command.
  30          //                 The application client may be able to recover by trying the command again.
  31          //             E = MISCOMPARE. Indicates that the source data did not match the data read 
  32          //                 from the medium.
  33          // Byte 3-6  -- Information (not used)
  34          // Byte 7    -- add'l sense length 
  35          // byte 8-11 -- Command specific information
  36          // byte 12   -- ASC (Add'l sense code)
  37          // byte 13   -- ASQ (Add'l sense qualifier)
  38          //                                                Key                                                     
             -   ASC   ASQ
  39          //                                    0     1     2     3     4     5     6     7     8     9    10    11 
             -   12    13    14    15
  40          //const char code senseTemplate[]= {0x70,  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0
             -0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};   
  41          //                                                SK    ASC   ASQ
  42          
  43          const char code senseArray[senseWriteProtected+1][3] = 
  44          {{0x0b, 0x08, 0x03},   // senseCRCError               0 // Set on CRC error.  Causes host to retry  
  45          {0x05, 0x24, 0x00},    // senseInvalidFieldInCDB      1 
  46          {0x00, 0x00, 0x00},    // senseOk                     2
  47          {0x02, 0x3a, 0x00},    // senseNoMedia                3
  48          {0x03, 0x03, 0x00},    // senseWriteFault             4
  49          {0x03, 0x11, 0x00},    // senseReadError              5
  50          {0x03, 0x12, 0x00},    // senseAddrNotFound           6
  51          {0x05, 0x20, 0x00},    // senseInvalidOpcode          7
C51 COMPILER V7.50   IDE                                                                   10/12/2007 17:05:44 PAGE 2   

  52          {0x05, 0x21, 0x00},    // senseInvalidLBA             8
  53          {0x05, 0x26, 0x00},    // senseInvalidParameter       9
  54          {0x05, 0x53, 0x02},    // senseCantEject              0xa
  55          {0x06, 0x28, 0x00},    // senseMediaChanged           0xb
  56          {0x06, 0x29, 0x00},    // senseDeviceReset            0xc 
  57          {0x07, 0x27, 0x00}};   // senseWriteProtected         0xd
  58          
  59          char sensePtr;
  60          
  61          /////////////////////////////////////////////////////////////////////////////////
  62          //
  63          // Called when we have received a valid CBW from the host
  64          //
  65          // Input:
  66          //    EP2FIFOBUF -- Contains CBW
  67          //   
  68          // Output:
  69          //    EP4FIFOBUF -- Used to send the data phase of the command back to the host.
  70          //    Returns a byte to be sent as the CSW status byte.
  71          //////////////////////////////////////////////////////////////////////////////////
  72          bit IDECommand()
  73          {
  74   1         BYTE cmd;
  75   1      
  76   1         bShortPacketSent = !directionIn;
  77   1         
  78   1         cmd = EP2FIFOBUF[0xf]; 
  79   1      
  80   1      #ifndef NO_WP
  81   1         ////////////////////////////////////////////////////////////////////////////////////////////////////
  82   1         // Check for WP status changed.  If the WP status has changed, fail ANY command that comes in and
  83   1         // set the status to "media changed"
  84   1         if (bWriteProtectEnable)
  85   1         {
  86   2            if ((bWPSwitchState != NAND_WP_SWITCH) )
  87   2               {
  88   3               // Free the OUT buffer containing the command, load the error pointer, store new switch value and
             - fail the command   
  89   3               OUTPKTEND = 0x82;
  90   3               bWPSwitchState = NAND_WP_SWITCH;
  91   3               sensePtr = senseMediaChanged; 
  92   3               if (directionIn) failedIn();
  93   3               else stallEP2OUT();
  94   3               //bEject = 0;  // toggle the switch will enable device again
  95   3               return(USBS_FAILED);
  96   3               }
  97   2         }
  98   1      #endif
  99   1      
 100   1         switch (cmd)
 101   1         {
 102   2      /// IN Command
 103   2            //////////////////////////////////////////////////////////////////////////////////
 104   2            // Good example of the processing required for a case in this switch statement.
 105   2            // -- Gives OUT bulk buffer back to the host
 106   2            // -- Loads IN buffer with a response
 107   2            // -- Adjusts dataTransferLen (inside loadEP4BC)
 108   2            // -- Returns PASSED or FAILED
 109   2            case INQUIRY:
 110   2            {
 111   3               OUTPKTEND = 0x82;
 112   3               // Send out our stored inquiry data
C51 COMPILER V7.50   IDE                                                                   10/12/2007 17:05:44 PAGE 3   

 113   3               waitForInBuffer();
 114   3               AUTOPTRL2 = LSB(EP4FIFOBUF);
 115   3      #ifdef USE_2LUN
                       if (!bLUN1) P_XAUTODAT2 = 0; else P_XAUTODAT2 = cDriveType;
              #else
 118   3               P_XAUTODAT2 = 0;
 119   3      #endif
 120   3      
 121   3      #ifndef NO_WP
 122   3               if (bWriteProtectEnable) P_XAUTODAT2 = SCSI_INQUIRY_REMOVABLE_BIT;
 123   3               else P_XAUTODAT2 = 0;
 124   3      #else
                       P_XAUTODAT2 = SCSI_INQUIRY_REMOVABLE_BIT;
              #endif
 127   3               P_XAUTODAT2 = 0;
 128   3               P_XAUTODAT2 = 0;
 129   3               P_XAUTODAT2 = 0x1F;
 130   3               P_XAUTODAT2 = 0;
 131   3               P_XAUTODAT2 = 0;
 132   3               P_XAUTODAT2 = 0;
 133   3               // copy SCSI Inquiry string
 134   3               mymemmovexx(EP4FIFOBUF+8, halfKBuffer+cHALF_BUFF_OFFSET, cINQUIRY_LENGTH); 
 135   3               loadEP4BC(0x1F+5);
 136   3               sensePtr = senseOk;
 137   3               return(USBS_PASSED);
 138   3            }
 139   2      
 140   2            case NAND_SCSI_CMD_VENDOR_CBW: return handleVendorCBW();
 141   2      
 142   2            // This command is "spoofed".  We tell the host that the command has succeeded but
 143   2            // don't actually do anything.
 144   2            case SYNCHRONIZE_CACHE:
 145   2            case SEEK_10:
 146   2            {
 147   3                  // relinquish control of the bulk buffer occupied by the CBW
 148   3                  OUTPKTEND = 0x82;
 149   3                  return(USBS_PASSED);
 150   3            }                
 151   2      
 152   2            case READ_FORMAT_CAPACITIES:
 153   2            case READ_CAPACITY:
 154   2            {
 155   3               BYTE num_bytes = 8;
 156   3      
 157   3               // Nand Mfg support
 158   3               GetNandCfg();
 159   3               // add this for 30ns cycle support
 160   3               if (b30nsCycle && EZUSB_HIGHSPEED())
 161   3               {
 162   4                    GPIF_40();
 163   4                    b30nsCycle = 0;  // load only one time
 164   4               }
 165   3               // relinquish control of the bulk buffer occupied by the CBW
 166   3               OUTPKTEND = 0x82;       
 167   3               checkForMedia(1);
 168   3                       
 169   3               waitForInBuffer();
 170   3               if (sensePtr == senseOk)
 171   3               {
 172   4                  AUTOPTRL2 = LSB(EP4FIFOBUF);
 173   4                  if(cmd == READ_FORMAT_CAPACITIES) // add 4 byte capacity list header
 174   4                  {
C51 COMPILER V7.50   IDE                                                                   10/12/2007 17:05:44 PAGE 4   

 175   5                     P_XAUTODAT2 = 0x0;
 176   5                     P_XAUTODAT2 = 0x0;
 177   5                     P_XAUTODAT2 = 0x0;
 178   5                     P_XAUTODAT2 = 0x08;
 179   5                     num_bytes = 12;
 180   5                  }
 181   4      #ifdef USE_2LUN
                          if (bLUN1)
                          {
                             P_XAUTODAT2 = (cLUN1_Capacity >> 24);
                             P_XAUTODAT2 = (cLUN1_Capacity >> 16);
                             P_XAUTODAT2 = (cLUN1_Capacity >>  8);
                             P_XAUTODAT2 = (cLUN1_Capacity >>  0);
                          }
                          else
                          {
                             P_XAUTODAT2 = ((BYTE *) &gDriveCapacity)[0];
                             P_XAUTODAT2 = ((BYTE *) &gDriveCapacity)[1];
                             P_XAUTODAT2 = ((BYTE *) &gDriveCapacity)[2];
                             P_XAUTODAT2 = ((BYTE *) &gDriveCapacity)[3];
                          }
              #else
 197   4                  P_XAUTODAT2 = ((BYTE *) &gDriveCapacity)[0];
 198   4                  P_XAUTODAT2 = ((BYTE *) &gDriveCapacity)[1];
 199   4                  P_XAUTODAT2 = ((BYTE *) &gDriveCapacity)[2];
 200   4                  P_XAUTODAT2 = ((BYTE *) &gDriveCapacity)[3];
 201   4      #endif
 202   4                  if(cmd == READ_FORMAT_CAPACITIES) 
 203   4                     P_XAUTODAT2 = ((NAND_ATA_SECTOR_SIZE >> 24) & 0xff) | 2;     // Report media type -- Format
             -ted
 204   4                  else
 205   4                     P_XAUTODAT2 = (NAND_ATA_SECTOR_SIZE >> 24) & 0xff;
 206   4                  P_XAUTODAT2 = (NAND_ATA_SECTOR_SIZE >> 16) & 0xff;
 207   4                  P_XAUTODAT2 = (NAND_ATA_SECTOR_SIZE >>  8) & 0xff;
 208   4                  P_XAUTODAT2 = (NAND_ATA_SECTOR_SIZE >>  0) & 0xff;
 209   4      
 210   4                  loadEP4BC(num_bytes);
 211   4                  return(USBS_PASSED);
 212   4               }
 213   3               else
 214   3               {
 215   4                  failedIn();
 216   4                  return(USBS_FAILED);
 217   4               }
 218   3            }
 219   2      
 220   2            case TEST_UNIT_READY:
 221   2            case VERIFY_10:
 222   2            case FORMAT_UNIT:
 223   2            {
 224   3               // relinquish control of the bulk buffer occupied by the CBW
 225   3               OUTPKTEND = 0x82;
 226   3               if (dataTransferLen)
 227   3               {
 228   4                  if (directionIn) failedIn(); else stallEP2OUT();
 229   4               }
 230   3               checkForMedia(1);
 231   3               
 232   3               if (sensePtr == senseOk)
 233   3                  return(USBS_PASSED);
 234   3               else
 235   3                  return(USBS_FAILED);
C51 COMPILER V7.50   IDE                                                                   10/12/2007 17:05:44 PAGE 5   

 236   3            }                
 237   2            case REQUEST_SENSE:

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人欧美一区二区三区小说| 欧美日韩高清一区二区三区| 国产亚洲精品久| 久久精品国产精品亚洲综合| 日韩欧美国产午夜精品| 青青草国产成人99久久| 日韩精品一区二区三区中文不卡| 蜜桃一区二区三区在线观看| 亚洲精品在线观看视频| 国产剧情一区在线| 中文字幕亚洲区| 色婷婷综合久久久中文一区二区 | 中文字幕一区二区三区在线不卡| 国产精一品亚洲二区在线视频| 国产精品视频线看| 99精品久久只有精品| 亚洲国产精品久久人人爱| 欧美一区二区三区婷婷月色| 韩国一区二区三区| 中文字幕中文字幕一区| 欧美在线免费观看亚洲| 日韩va欧美va亚洲va久久| 欧美精品一区二区三区蜜桃| 不卡一区二区中文字幕| 亚洲综合小说图片| 欧美r级在线观看| 99久久99久久综合| 日本成人在线不卡视频| 久久久天堂av| 欧美日韩在线直播| 国产经典欧美精品| 亚洲国产精品久久人人爱蜜臀| 精品国产一区二区在线观看| a4yy欧美一区二区三区| 麻豆视频观看网址久久| 国产精品久久精品日日| 777精品伊人久久久久大香线蕉| 国产精品一区一区三区| 亚洲va欧美va人人爽午夜| 久久久99精品免费观看不卡| 欧美日韩三级在线| 国产91在线|亚洲| 亚洲高清免费视频| 中文字幕中文乱码欧美一区二区| 91精品国产高清一区二区三区蜜臀| 国产毛片精品一区| 亚洲一区二区精品视频| 日本一区二区电影| 欧美一区二区三区色| 91麻豆产精品久久久久久| 久久精品国产一区二区三区免费看 | 日韩三级在线免费观看| 97国产一区二区| 国内精品自线一区二区三区视频| 亚洲一区二区三区国产| 亚洲桃色在线一区| 久久久无码精品亚洲日韩按摩| 69久久夜色精品国产69蝌蚪网| 色综合亚洲欧洲| 成人免费毛片app| 国产精品538一区二区在线| 视频一区在线播放| 亚洲综合色丁香婷婷六月图片| 国产欧美va欧美不卡在线 | 精品国产伦一区二区三区免费| 91激情五月电影| 成人午夜视频网站| 国产激情91久久精品导航| 日韩电影在线免费观看| 亚洲成人午夜影院| 亚洲影院理伦片| 一二三区精品视频| 亚洲欧美综合在线精品| 中文字幕高清不卡| 国产日韩精品久久久| 精品国产乱码久久久久久影片| 日韩三区在线观看| 日韩欧美成人午夜| 欧美一区二区三区色| 91精品国产91久久综合桃花| 538在线一区二区精品国产| 欧美日韩一区三区| 欧美久久久久久蜜桃| 欧美女孩性生活视频| 欧美军同video69gay| 欧美一级高清片| 日韩视频一区二区在线观看| 日韩视频在线一区二区| 久久先锋影音av鲁色资源网| 久久综合视频网| 国产亚洲欧美在线| 亚洲欧美一区二区视频| 亚洲综合一二三区| 日韩高清一级片| 国产在线播放一区| 国产成人免费视频精品含羞草妖精| 国产在线不卡视频| 成人在线一区二区三区| 色综合色狠狠天天综合色| 欧美四级电影网| 日韩视频在线你懂得| 国产亚洲精品福利| 亚洲人一二三区| 日韩国产在线一| 国产成人午夜视频| 色94色欧美sute亚洲线路二 | 日韩一区二区在线看| 日韩美女视频一区二区在线观看| 久久久美女毛片| 亚洲免费观看高清| 午夜视频在线观看一区二区| 精品一区二区免费在线观看| 丁香婷婷综合激情五月色| 91免费在线播放| 欧美一区二区三区视频在线| 国产目拍亚洲精品99久久精品| 国产精品久久久久9999吃药| 日韩精品亚洲专区| 成人91在线观看| 欧美日韩午夜影院| 日韩精品一区二区三区视频| 欧美激情一区三区| 亚洲激情第一区| 五月婷婷激情综合网| 极品少妇一区二区三区精品视频| 国产乱码精品一区二区三区av | 激情亚洲综合在线| 成人午夜又粗又硬又大| 色综合久久精品| 日韩精品一区二区三区三区免费 | 国产午夜精品在线观看| 亚洲免费观看视频| 午夜精品久久久| 蜜臀av国产精品久久久久 | 国产精品成人免费精品自在线观看| 亚洲国产成人va在线观看天堂| 免费三级欧美电影| 粉嫩av一区二区三区| 欧美另类一区二区三区| 国产亚洲va综合人人澡精品| 亚洲va欧美va天堂v国产综合| 国产精品99久久久| 欧美人伦禁忌dvd放荡欲情| 欧美成人精品福利| 夜夜嗨av一区二区三区中文字幕| 精品制服美女丁香| 在线观看日韩国产| 久久综合九色欧美综合狠狠 | 欧美一卡2卡3卡4卡| 国产精品久久毛片| 精品一区二区三区欧美| 在线日韩一区二区| 久久精品一区二区三区不卡| 三级在线观看一区二区| av爱爱亚洲一区| 欧美国产97人人爽人人喊| 日韩精品电影在线| 一本一道久久a久久精品综合蜜臀| 精品剧情v国产在线观看在线| 亚洲欧美日韩一区二区三区在线观看| 五月天中文字幕一区二区| 色综合天天综合色综合av| 久久综合国产精品| 美女视频黄 久久| 精品视频色一区| 亚洲国产婷婷综合在线精品| 丰满放荡岳乱妇91ww| 2021久久国产精品不只是精品| 亚洲午夜电影在线观看| 国产aⅴ综合色| 久久久久久一二三区| 麻豆成人91精品二区三区| 欧美午夜理伦三级在线观看| 亚洲欧美激情一区二区| 成人av电影免费观看| 国产网站一区二区三区| 精品亚洲porn| 日韩精品一区二区三区三区免费| 亚洲午夜久久久久久久久电影院 | 日韩精品亚洲一区二区三区免费| 欧美日韩电影一区| 亚洲韩国精品一区| 欧美午夜精品久久久久久超碰 | 国产精品一区二区久久不卡| 精品国产sm最大网站| 蜜桃在线一区二区三区| 日韩一区二区视频| 国产精品原创巨作av| 久久久亚洲精品一区二区三区| 激情成人综合网| 日韩欧美亚洲另类制服综合在线| 国模套图日韩精品一区二区| 精品sm在线观看| 国产精品77777| 国产精品色眯眯| 麻豆久久久久久| 国产欧美一区在线| 成人黄色a**站在线观看| 国产精品久久久久久久久免费相片 | 在线观看视频91|