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

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

?? ctrlrequest.lst

?? 增強型51單片機fs7821sd卡、mmc卡讀寫程序
?? LST
?? 第 1 頁 / 共 3 頁
字號:
 595   2               {
 596   3                 CSRWrite(USB_BASE + EP0_TXCNT, 1);
 597   3                 CSRWrite(USB_BASE + EP0_TXDATA, 0x00);
 598   3                 CSRWrite(USB_BASE + EP0_TXCSR, EN_TX0);    
 599   3                 pSotaUsbRequest->LoadInDataOk = false;
 600   3               }
 601   2               CSRWrite(USB_BASE + EP0_RXCSR, EN_RX0);            
 602   2               break;   
 603   2      
 604   2          case IN_OK_TOKEN:
 605   2               CSRWrite(USB_BASE + EP0_RXCSR, EN_RX0);
 606   2               CSRWrite(USB_BASE + EP0_TXCSR, EN_TX0_STL);
 607   2               break;
 608   2      
 609   2          case OUT_TOKEN:
 610   2          default:
 611   2               // Ctrl Read End
 612   2               pSotaUsbRequest->InProgress = false;
C51 COMPILER V7.02b   CTRLREQUEST                                                          02/01/2007 10:35:43 PAGE 11  

 613   2               break;          
 614   2        }  
 615   1      }  
 616          
 617          //----------------------------------------------------------------------------
 618          // Set Interface Request 
 619          //----------------------------------------------------------------------------
 620          void CtrlReqSetInterface()
 621          {
 622   1        BYTE Token = pSotaUsbRequest->Token;
 623   1          
 624   1        switch(Token)
 625   1        {
 626   2          case SETUP_TOKEN:
 627   2               // Because we don't support Alternate-IF-Set, we do nothing here. 
 628   2               CSRWrite(USB_BASE + EP0_RXCSR, EN_RX0_STL);    
 629   2               break;
 630   2               
 631   2          case IN_TOKEN:
 632   2               CtrlClearHaltFeature();
 633   2               CSRWrite(USB_BASE + EP0_TXCNT, 0);
 634   2               CSRWrite(USB_BASE + EP0_TXCSR, EN_TX0);    
 635   2               break;
 636   2      
 637   2          case IN_OK_TOKEN:
 638   2               CSRWrite(USB_BASE + EP0_RXCSR, EN_RX0);
 639   2               CSRWrite(USB_BASE + EP0_TXCSR, EN_TX0_STL);
 640   2              
 641   2          case OUT_TOKEN:
 642   2          default:
 643   2               pSotaUsbRequest->InProgress = false;
 644   2               break;          
 645   2        }  
 646   1      }
 647          
 648          //----------------------------------------------------------------------------
 649          // Sync Frame Request 
 650          //----------------------------------------------------------------------------
 651          void CtrlReqSyncFrame()
 652          {
 653   1        BYTE Token = pSotaUsbRequest->Token;
 654   1            
 655   1        switch(Token)
 656   1        {
 657   2          case SETUP_TOKEN:
 658   2               // We do not support isochronous mode.
 659   2               CSRWrite(USB_BASE + EP0_RXCSR, EN_RX0_STL);
 660   2               CSRWrite(USB_BASE + EP0_TXCSR, EN_TX0_STL);
 661   2               break;
 662   2         
 663   2          case IN_OK_TOKEN:
 664   2          case IN_TOKEN:
 665   2          case OUT_TOKEN:
 666   2          default:
 667   2               pSotaUsbRequest->InProgress = false;
 668   2               break;          
 669   2        }    
 670   1      }
 671          
 672          //----------------------------------------------------------------------------
 673          // Get Max Lun Request 
 674          //----------------------------------------------------------------------------
C51 COMPILER V7.02b   CTRLREQUEST                                                          02/01/2007 10:35:43 PAGE 12  

 675          void CtrlReqGetMaxLun()
 676          {
 677   1        BYTE Token = pSotaUsbRequest->Token;
 678   1          
 679   1        switch(Token)
 680   1        {
 681   2          case SETUP_TOKEN:
 682   2               pSotaUsbRequest->LoadInDataOk = true;
 683   2               CSRWrite(USB_BASE + EP0_RXCSR, EN_RX0_STL);    
 684   2               break;
 685   2      
 686   2          case IN_TOKEN:
 687   2               if (pSotaUsbRequest->LoadInDataOk)
 688   2               {
 689   3                 CSRWrite(USB_BASE + EP0_TXCNT, 1);
 690   3                 CSRWrite(USB_BASE + EP0_TXDATA, LastDevice);   
 691   3                 CSRWrite(USB_BASE + EP0_TXCSR, EN_TX0);    
 692   3                 pSotaUsbRequest->LoadInDataOk = false; 
 693   3               } 
 694   2               CSRWrite(USB_BASE + EP0_RXCSR, EN_RX0);     
 695   2               break;
 696   2      
 697   2          case IN_OK_TOKEN:
 698   2               CSRWrite(USB_BASE + EP0_RXCSR, EN_RX0);
 699   2               CSRWrite(USB_BASE + EP0_TXCSR, EN_TX0_STL);
 700   2               break;
 701   2      
 702   2          case OUT_TOKEN:
 703   2          default:
 704   2               // Ctrl Read End
 705   2               pSotaUsbRequest->InProgress = false;
 706   2               break;          
 707   2        }  
 708   1      }  
 709          
 710          //----------------------------------------------------------------------------
 711          // Bulk Only Reset Request 
 712          //----------------------------------------------------------------------------
 713          void CtrlReqBulkReset()
 714          {
 715   1        BYTE Token = pSotaUsbRequest->Token;
 716   1          
 717   1        switch(Token)
 718   1        {
 719   2          case SETUP_TOKEN:
 720   2      #ifndef CTRL_SIMULATION 
 721   2               BulkState = CBW_GET_COMPLETED;    
 722   2               CmdStatus = COMMAND_PASSED;
 723   2      #endif  
 724   2               break;
 725   2                        
 726   2          case IN_TOKEN:
 727   2               CSRWrite(USB_BASE + EP0_TXCNT, 0);
 728   2               CSRWrite(USB_BASE + EP0_TXCSR, EN_TX0);    
 729   2               break;
 730   2      
 731   2          case IN_OK_TOKEN:
 732   2               CSRWrite(USB_BASE + EP0_RXCSR, EN_RX0);
 733   2               CSRWrite(USB_BASE + EP0_TXCSR, EN_TX0_STL);
 734   2              
 735   2          case OUT_TOKEN:
 736   2          default:
C51 COMPILER V7.02b   CTRLREQUEST                                                          02/01/2007 10:35:43 PAGE 13  

 737   2               // Ctrl Read End
 738   2               pSotaUsbRequest->InProgress = false;
 739   2               break;          
 740   2        }  
 741   1      }
 742          
 743          //----------------------------------------------------------------------------
 744          // Request Setup
 745          //----------------------------------------------------------------------------
 746          void CtrlReqSetup()
 747          {
 748   1        PUSB_REQUEST pReq = &(pSotaUsbRequest->Request);
 749   1      
 750   1        memcpy((void *)pReq, (void *)UsbBuf, sizeof(USB_REQUEST));
 751   1        pSotaUsbRequest->InProgress = true;
 752   1        pSotaUsbRequest->FinishedDataLen = 0;
 753   1        pReq->wLength = ConvertEndian16(pReq->wLength);  
 754   1      }
 755          
 756          //----------------------------------------------------------------------------
 757          // Rx Transation Check
 758          //----------------------------------------------------------------------------  
 759          void CtrlRxCheck()
 760          {
 761   1        BYTE i;
 762   1        BYTE Len;
 763   1        BYTE RxTokenType = 0;
 764   1      
 765   1        Len = CSRRead(USB_BASE + EP0_RXCNT);
 766   1        for (i=0; i < Len; i++)
 767   1        {
 768   2          UsbBuf[i] = CSRRead(USB_BASE + EP0_RXDATA);
 769   2        }
 770   1          
 771   1        RxTokenType = CSRRead(USB_BASE + EP0_RXTOKEN);  
 772   1        if (RxTokenType & (STS_SETUP0 | STS_SETUP0_OW)) 
 773   1        {
 774   2          if (Len == USB_REQUEST_LEN)
 775   2          {
 776   3            CtrlReqSetup(); 
 777   3            pSotaUsbRequest->Token = SETUP_TOKEN; 
 778   3          }  
 779   2          else
 780   2          {
 781   3            pSotaUsbRequest->Token = BAD_SETUP_TOKEN;
 782   3          }
 783   2          // Add delay may resolve SE1 issue if using H/W incurred this issue.
 784   2      //    Delay(30);
 785   2        }  
 786   1        else // Out Token Coming
 787   1          pSotaUsbRequest->Token = OUT_TOKEN;   
 788   1        CSRWrite(USB_BASE + EP0_RXTOKEN, 0x00);
 789   1      }  
 790          
 791          //--------------------------------------------------------------------
 792          // 
 793          //--------------------------------------------------------------------
 794          void CtrlRequestProcess()
 795          {
 796   1          BYTE RequestCode = pSotaUsbRequest->Request.bRequest;
 797   1          BYTE RequestType = pSotaUsbRequest->Request.bmRequestType;
 798   1        
C51 COMPILER V7.02b   CTRLREQUEST                                                          02/01/2007 10:35:43 PAGE 14  

 799   1          if((RequestType & 0x60) == 0) // Standard Request
 800   1          {  
 801   2              switch (RequestCode)
 802   2              {
 803   3                  case GET_STATUS       : CtrlReqGetStatus();        return;
 804   3                  case CLEAR_FEATURE    : CtrlReqClearFeature();     return;
 805   3                  case SET_FEATURE      : CtrlReqSetFeature();       return;
 806   3                  case SET_ADDRESS      : CtrlReqSetAddress();       return;
 807   3                  case GET_DESCRIPTOR   : CtrlReqGetDescriptor();    return;
 808   3                  case GET_CONFIGURATION: CtrlReqGetConfiguration(); return;
 809   3                  case SET_CONFIGURATION: CtrlReqSetConfiguration(); return;
 810   3                  case GET_INTERFACE    : CtrlReqGetInterface();     return;
 811   3                  case SET_INTERFACE    : CtrlReqSetInterface();     return;
 812   3                  case SYNCH_FRAME      : CtrlReqSyncFrame();        return;
 813   3              }
 814   2          }
 815   1      
 816   1          else if((RequestType & 0x60) == 0x20) // Class Request
 817   1          {
 818   2              switch (RequestCode)
 819   2              {       
 820   3                  case BULKONLY_GET_MAX_LUN: CtrlReqGetMaxLun(); return;
 821   3                  case BULKONLY_RESET      : CtrlReqBulkReset(); return;
 822   3              }
 823   2          }        
 824   1      
 825   1          pSotaUsbRequest->InProgress = false;
 826   1          CSRWrite(USB_BASE + EP0_RXCSR, EN_RX0);    
 827   1          CSRWrite(USB_BASE + EP0_TXCSR, EN_TX0_STL);      
 828   1      }  
 829          
 830          //----------------------------------------------------------------------------
 831          // Ctrl Pipe Check
 832          //----------------------------------------------------------------------------
 833          void UsbCtrlIntHandler(BYTE IntEvent)
 834          {
 835   1        // Clear IRQs.
 836   1        CSRWrite(USB_BASE + EPIE, ~IntEvent);                 
 837   1      
 838   1        if (IntEvent & IRQ_IN0)
 839   1        {
 840   2          pSotaUsbRequest->Token = IN_TOKEN;     
 841   2          CSRWrite(USB_BASE + EP0_RXCSR, 0); // Fix the PHY miss IN ACK problem
 842   2        }
 843   1        if (IntEvent & IRQ_TX0) // This irq mean IN packet Completed
 844   1          pSotaUsbRequest->Token = IN_OK_TOKEN;
 845   1        if (IntEvent & IRQ_RX0)
 846   1          CtrlRxCheck();  
 847   1        
 848   1        if (pSotaUsbRequest->InProgress)
 849   1          CtrlRequestProcess();  
 850   1        else
 851   1          CSRWrite(USB_BASE + EP0_RXCSR, EN_RX0);    
 852   1      }  
 853                  
 854          //----------------------------------------------------------------------------
 855          // Init USB
 856          //----------------------------------------------------------------------------
 857          void UsbInit()
 858          {
 859   1          BYTE Reg;
 860   1      
C51 COMPILER V7.02b   CTRLREQUEST                                                          02/01/2007 10:35:43 PAGE 15  

 861   1          CtrlPktSize = CTRL_PKT_SIZE; 
 862   1              
 863   1          CSRWrite(USB_BASE + EPIM, 0xdf); 
 864   1          CSRWrite(USB_BASE + EPCTL, EN_EP0 | EN_EP1 | EN_EP2);
 865   1          pSotaUsbRequest               = &SotaUsbRequest;
 866   1          pSotaUsbRequest->InProgress   = false;
 867   1          pSotaUsbRequest->LoadInDataOk = false;
 868   1          pSotaUsbRequest->HaltStatus   = false;
 869   1      
 870   1          InitBulkPipe();  
 871   1      
 872   1          while(1) // Detect USB Link Speed
 873   1          {
 874   2              Reg = CSRRead(USB_BASE + USB_SPEED);
 875   2              if(Reg & SPEED_READY)
 876   2                  break;
 877   2          }
 878   1      }
 879            


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1941    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     84    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1      45
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2       7
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线欧美日韩国产| 国产成人av电影在线| 欧美色倩网站大全免费| 粉嫩欧美一区二区三区高清影视 | 精品久久国产老人久久综合| 成人avav影音| 国产一区二区三区视频在线播放| 中文字幕一区在线观看| 精品国产乱码久久| 欧美一区二区在线播放| 国产一区二区伦理片| 日本aⅴ精品一区二区三区 | 国产精品99久久久| 午夜影视日本亚洲欧洲精品| 中文字幕乱码一区二区免费| 精品久久久久99| 欧美一区二区免费视频| 日本高清免费不卡视频| 激情综合网激情| 裸体健美xxxx欧美裸体表演| 亚洲大片在线观看| 亚洲欧洲国产日本综合| 日本一区二区动态图| 久久一留热品黄| 精品成a人在线观看| 日韩免费看网站| 精品少妇一区二区三区视频免付费 | 成人h动漫精品| 国产伦理精品不卡| 国产成人综合网| 国产99久久久国产精品潘金| 国产一区二区三区av电影| 国产综合一区二区| 国产精品1024| 狠狠色狠狠色综合系列| 激情五月播播久久久精品| 国产毛片精品视频| 成人自拍视频在线观看| 99久久精品一区二区| 色哟哟日韩精品| 欧美剧在线免费观看网站| 欧美一卡二卡三卡| 久久婷婷国产综合精品青草| 免费在线视频一区| 丁香桃色午夜亚洲一区二区三区| 在线日韩av片| 日本一区二区免费在线观看视频| 亚洲一区二区三区四区在线| 国产成人鲁色资源国产91色综| 色综合久久中文字幕综合网| 久久久久国产精品厨房| 亚洲.国产.中文慕字在线| 成人视屏免费看| 日韩视频一区二区| 亚洲欧洲性图库| 男男视频亚洲欧美| 在线观看视频一区| 中文字幕永久在线不卡| 国产麻豆精品theporn| 在线综合视频播放| 亚洲美女免费视频| 91免费看片在线观看| 欧美激情在线一区二区| 国内久久精品视频| 91精品国产乱| 五月婷婷激情综合| 欧美色倩网站大全免费| 一区二区三区四区中文字幕| 97精品久久久午夜一区二区三区 | 亚洲综合色在线| 成人免费黄色在线| 久久精品亚洲精品国产欧美| 国产乱人伦精品一区二区在线观看| 9191精品国产综合久久久久久| 一区二区三区在线观看网站| 色婷婷精品大视频在线蜜桃视频| 国产精品久久久久久久久久免费看| 国产精品一区一区三区| 久久综合999| 丰满亚洲少妇av| 中文字幕一区二区在线播放| 懂色av一区二区夜夜嗨| 亚洲欧美自拍偷拍| 色婷婷国产精品| 亚洲va天堂va国产va久| 在线不卡中文字幕| 美女久久久精品| 久久综合狠狠综合久久综合88| 紧缚奴在线一区二区三区| 久久久精品tv| 99国产精品99久久久久久| 成人免费一区二区三区在线观看 | 91黄色免费版| 亚洲3atv精品一区二区三区| 911国产精品| 精品一区二区三区影院在线午夜| 日韩三级视频中文字幕| 国产在线精品一区二区不卡了 | 91猫先生在线| 亚洲 欧美综合在线网络| 欧美一区二区在线不卡| 国产精品一二三区| 亚洲欧美另类图片小说| 欧美丰满嫩嫩电影| 国产99精品国产| 亚洲美女屁股眼交| 欧美一级二级在线观看| 丁香激情综合国产| 亚洲综合成人在线视频| 精品国产一区a| 色婷婷久久久综合中文字幕| 五月天激情小说综合| 久久伊人蜜桃av一区二区| 色哟哟精品一区| 麻豆精品一区二区综合av| 18成人在线视频| 日韩一卡二卡三卡| 91亚洲午夜精品久久久久久| 男男视频亚洲欧美| 亚洲乱码国产乱码精品精可以看| 正在播放亚洲一区| 成人h动漫精品一区二| 日韩福利电影在线| 国产精品久久久久影院色老大| 欧美男人的天堂一二区| 成人av免费观看| 精品一区二区三区久久| 亚洲一区视频在线| 亚洲国产精品av| 精品av久久707| 8x福利精品第一导航| av成人动漫在线观看| 开心九九激情九九欧美日韩精美视频电影 | 中文字幕一区二区三区在线不卡 | 久久久久久久久久久电影| 色播五月激情综合网| 成人永久免费视频| 国产一区不卡视频| 免费的成人av| 日韩高清在线观看| 天天色综合成人网| 亚洲一区在线播放| 亚洲精品乱码久久久久久黑人| 国产三级欧美三级日产三级99| 91精品国产乱码久久蜜臀| 欧美亚洲一区二区三区四区| av电影在线观看完整版一区二区| 国产综合色在线| 国产精品自拍三区| 国产伦精品一区二区三区免费| 九色综合狠狠综合久久| 极品销魂美女一区二区三区| 免费高清视频精品| 精品一区二区三区久久| 激情图片小说一区| 国产一区二区成人久久免费影院| 蓝色福利精品导航| 久久国产生活片100| 久久91精品久久久久久秒播| 麻豆精品视频在线观看免费| 麻豆91精品91久久久的内涵| 青娱乐精品在线视频| 精品一二三四在线| 国产精品一区二区在线播放| 国产精品自在欧美一区| 国产99久久久国产精品| 9人人澡人人爽人人精品| 91麻豆高清视频| 欧美影片第一页| 制服丝袜av成人在线看| 日韩欧美亚洲国产精品字幕久久久| 欧美一区二区三区电影| 欧美不卡视频一区| 国产精品免费丝袜| 亚洲综合免费观看高清完整版在线| 亚洲午夜精品在线| 七七婷婷婷婷精品国产| 久久99久久久欧美国产| 国产酒店精品激情| 99久久精品国产一区| 欧美怡红院视频| 久久夜色精品一区| 亚洲视频在线一区观看| 午夜电影久久久| 国产成人自拍网| 欧美日韩一级二级| 久久久蜜臀国产一区二区| 亚洲精品欧美专区| 久久精品72免费观看| 成人国产一区二区三区精品| 欧美视频第二页| 日本一区二区三区久久久久久久久不 | 成人欧美一区二区三区在线播放| 亚洲一区免费观看| 国产一区二区美女诱惑| 一本一道波多野结衣一区二区| 91精品蜜臀在线一区尤物| 国产精品三级视频| 人人爽香蕉精品| 一本色道综合亚洲|