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

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

?? fw.lst

?? 用于進行Cypress USB FX2控制
?? LST
?? 第 1 頁 / 共 2 頁
字號:
C51 COMPILER V8.05a   FW                                                                   04/30/2008 16:42:26 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE FW
OBJECT MODULE PLACED IN fw.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE fw.c DEBUG OBJECTEXTEND

line level    source

   1          //-----------------------------------------------------------------------------
   2          //   File:      fw.c
   3          //   Contents:  Firmware frameworks task dispatcher and device request parser
   4          //
   5          // $Archive: /USB/Examples/FX2LP/bulkext/fw.c $
   6          // $Date: 3/23/05 2:53p $
   7          // $Revision: 8 $
   8          //
   9          //
  10          //-----------------------------------------------------------------------------
  11          // Copyright 2003, Cypress Semiconductor Corporation
  12          //-----------------------------------------------------------------------------
  13          #include "fx2.h"
  14          #include "fx2regs.h"
  15          #include "syncdly.h"            // SYNCDELAY macro
  16          #include "stdio.h"
  17          //-----------------------------------------------------------------------------
  18          // Constants
  19          //-----------------------------------------------------------------------------
  20          #define DELAY_COUNT   0x9248*8L  // Delay for 8 sec at 24Mhz, 4 sec at 48
  21          #define _IFREQ  48000            // IFCLK constant for Synchronization Delay
  22          #define _CFREQ  48000            // CLKOUT constant for Synchronization Delay
  23          
  24          //-----------------------------------------------------------------------------
  25          // Random Macros
  26          //-----------------------------------------------------------------------------
  27          #define   min(a,b) (((a)<(b))?(a):(b))
  28          #define   max(a,b) (((a)>(b))?(a):(b))
  29          
  30          //-----------------------------------------------------------------------------
  31          // Global Variables
  32          //-----------------------------------------------------------------------------
  33          volatile BOOL   GotSUD;
  34          BOOL      Rwuen;
  35          BOOL      Selfpwr;
  36          volatile BOOL   Sleep;                  // Sleep mode enable flag
  37          
  38          WORD   pDeviceDscr;   // Pointer to Device Descriptor; Descriptors may be moved
  39          WORD   pDeviceQualDscr;
  40          WORD   pHighSpeedConfigDscr;
  41          WORD   pFullSpeedConfigDscr;   
  42          WORD   pConfigDscr;
  43          WORD   pOtherConfigDscr;   
  44          WORD   pStringDscr;   
  45          
  46          //-----------------------------------------------------------------------------
  47          // Prototypes
  48          //-----------------------------------------------------------------------------
  49          void SetupCommand(void);
  50          void TD_Init(void);
  51          void TD_Poll(void);
  52          BOOL TD_Suspend(void);
  53          BOOL TD_Resume(void);
  54          
  55          BOOL DR_GetDescriptor(void);
C51 COMPILER V8.05a   FW                                                                   04/30/2008 16:42:26 PAGE 2   

  56          BOOL DR_SetConfiguration(void);
  57          BOOL DR_GetConfiguration(void);
  58          BOOL DR_SetInterface(void);
  59          BOOL DR_GetInterface(void);
  60          BOOL DR_GetStatus(void);
  61          BOOL DR_ClearFeature(void);
  62          BOOL DR_SetFeature(void);
  63          BOOL DR_VendorCmnd(void);
  64          
  65          // this table is used by the epcs macro 
  66          const char code  EPCS_Offset_Lookup_Table[] =
  67          {
  68             0,    // EP1OUT
  69             1,    // EP1IN
  70             2,    // EP2OUT
  71             2,    // EP2IN
  72             3,    // EP4OUT
  73             3,    // EP4IN
  74             4,    // EP6OUT
  75             4,    // EP6IN
  76             5,    // EP8OUT
  77             5,    // EP8IN
  78          };
  79          
  80          // macro for generating the address of an endpoint's control and status register (EPnCS)
  81          #define epcs(EP) (EPCS_Offset_Lookup_Table[(EP & 0x7E) | (EP > 128)] + 0xE6A1)
  82          
  83          //-----------------------------------------------------------------------------
  84          // Code
  85          //-----------------------------------------------------------------------------
  86          
  87          // Task dispatcher
  88          void main(void)
  89          {
  90   1         DWORD   i;
  91   1         WORD   offset;
  92   1         DWORD   DevDescrLen;
  93   1         DWORD   j=0;
  94   1         WORD   IntDescrAddr;
  95   1         WORD   ExtDescrAddr;
  96   1         //初始化串口
  97   1         SCON0= 0x52;
  98   1         TMOD = 0x20; 
  99   1         TCON = 0x69;
 100   1         TH1 =  0xf3; 
 101   1         printf("\n\n start! \n\n");
 102   1          // Initialize Global States
 103   1         Sleep = FALSE;               // Disable sleep mode
 104   1         Rwuen = FALSE;               // Disable remote wakeup
 105   1         Selfpwr = FALSE;            // Disable self powered
 106   1         GotSUD = FALSE;               // Clear "Got setup data" flag
 107   1        
 108   1         // Initialize user device
 109   1         printf("\n\n Initialize user device start! \n\n");
 110   1            
 111   1         TD_Init();
 112   1      
 113   1      
 114   1         // The following section of code is used to relocate the descriptor table. 
 115   1         // The frameworks uses SUDPTRH and SUDPTRL to automate the SETUP requests
 116   1         // for descriptors.  These registers only work with memory locations
 117   1         // in the EZ-USB internal RAM.  Therefore, if the descriptors are located
C51 COMPILER V8.05a   FW                                                                   04/30/2008 16:42:26 PAGE 3   

 118   1         // in external RAM, they must be copied to in internal RAM.  
 119   1         // The descriptor table is relocated by the frameworks ONLY if it is found 
 120   1         // to be located in external memory.
 121   1         pDeviceDscr = (WORD)&DeviceDscr;
 122   1         pDeviceQualDscr = (WORD)&DeviceQualDscr;
 123   1         pHighSpeedConfigDscr = (WORD)&HighSpeedConfigDscr;
 124   1         pFullSpeedConfigDscr = (WORD)&FullSpeedConfigDscr;
 125   1         pStringDscr = (WORD)&StringDscr;
 126   1      
 127   1         // Is the descriptor table in external RAM (> 16Kbytes)?  If yes,
 128   1         // then relocate.
 129   1         // Note that this code only checks if the descriptors START in 
 130   1         // external RAM.  It will not work if the descriptor table spans
 131   1         // internal and external RAM.
 132   1         // 這段代碼只是確定描述符是否位于外部RAM上。
 133   1         if ((WORD)&DeviceDscr & 0xC000)
 134   1         {
 135   2            // first, relocate the descriptors
 136   2            IntDescrAddr = INTERNAL_DSCR_ADDR;
 137   2            ExtDescrAddr = (WORD)&DeviceDscr;
 138   2            DevDescrLen = (WORD)&UserDscr - (WORD)&DeviceDscr + 2;
 139   2            for (i = 0; i < DevDescrLen; i++)
 140   2               *((BYTE xdata *)IntDescrAddr+i) = *((BYTE xdata *)ExtDescrAddr+i);
 141   2      
 142   2            // update all of the descriptor pointers
 143   2            pDeviceDscr = IntDescrAddr;
 144   2            offset = (WORD)&DeviceDscr - INTERNAL_DSCR_ADDR;
 145   2            pDeviceQualDscr -= offset;
 146   2            pConfigDscr -= offset;
 147   2            pOtherConfigDscr -= offset;
 148   2            pHighSpeedConfigDscr -= offset;
 149   2            pFullSpeedConfigDscr -= offset;
 150   2            pStringDscr -= offset;
 151   2         }
 152   1                printf("\n\n start! \n\n");
 153   1         EZUSB_IRQ_ENABLE();            // Enable USB interrupt (INT2)
 154   1         EZUSB_ENABLE_RSMIRQ();            // Wake-up interrupt
 155   1      
 156   1         INTSETUP |= (bmAV2EN | bmAV4EN);     // Enable INT 2 & 4 autovectoring
 157   1      
 158   1         USBIE |= bmSUDAV | bmSUTOK | bmSUSP | bmURES | bmHSGRANT;   // Enable selected interrupts
 159   1         EA = 1;                  // Enable 8051 interrupts
 160   1      
 161   1      #ifndef NO_RENUM
 162   1         // Renumerate if necessary.  Do this by checking the renum bit.  If it
 163   1         // is already set, there is no need to renumerate.  The renum bit will
 164   1         // already be set if this firmware was loaded from an eeprom.
 165   1         if(!(USBCS & bmRENUM))
 166   1         {
 167   2             EZUSB_Discon(TRUE);   // renumerate
 168   2         }
 169   1      #endif
 170   1      
 171   1         // unconditionally re-connect.  If we loaded from eeprom we are
 172   1         // disconnected and need to connect.  If we just renumerated this
 173   1         // is not necessary but doesn't hurt anything
 174   1         USBCS &=~bmDISCON;
 175   1      
 176   1         CKCON = (CKCON&(~bmSTRETCH)) | FW_STRETCH_VALUE; // Set stretch
 177   1      
 178   1         // clear the Sleep flag.
 179   1         Sleep = FALSE;
C51 COMPILER V8.05a   FW                                                                   04/30/2008 16:42:26 PAGE 4   

 180   1      
 181   1         // Task Dispatcher
 182   1              printf("\n\n while(TRUE) start! \n\n");
 183   1         while(TRUE)               // Main Loop
 184   1         {
 185   2            // Poll User Device
 186   2            TD_Poll();
 187   2      
 188   2            // Check for pending SETUP
 189   2      
 190   2            if(GotSUD)
 191   2            {
 192   3               SetupCommand();          // Implement setup command
 193   3               GotSUD = FALSE;          // Clear SETUP flag
 194   3            }
 195   2      

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产日韩a在线播放| 国产在线一区二区| 在线免费av一区| 亚洲午夜免费福利视频| 欧美精品一级二级| 极品少妇xxxx偷拍精品少妇| 亚洲国产成人私人影院tom| 欧洲精品在线观看| 国产美女精品人人做人人爽| 国产精品久久夜| 日韩免费一区二区三区在线播放| 国产精品亚洲а∨天堂免在线| 亚洲精品久久7777| **网站欧美大片在线观看| 日韩精品一区二区三区在线观看 | 91精品国产91热久久久做人人| 加勒比av一区二区| 亚洲综合男人的天堂| 亚洲精品福利视频网站| 国产精品天干天干在观线| 久久午夜免费电影| 久久午夜色播影院免费高清| 日韩一二三四区| 精品国产一区二区在线观看| 欧美精品免费视频| 欧美一级淫片007| 91.xcao| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲影院免费观看| 亚洲亚洲精品在线观看| 中文字幕一区二区三区不卡| 中文字幕精品一区二区精品绿巨人 | 国产肉丝袜一区二区| 国产精品免费免费| 亚洲一区二区三区四区的| 天涯成人国产亚洲精品一区av| 亚洲成人tv网| 国产一区二区伦理| aaa欧美大片| 67194成人在线观看| 日韩精品一区二区在线观看| 久久九九国产精品| 亚洲国产aⅴ天堂久久| 精品一区二区av| 欧美日韩一区中文字幕| www亚洲一区| 亚洲福利视频一区二区| 国产激情偷乱视频一区二区三区| 99免费精品视频| 欧美成人a在线| 亚洲成av人片一区二区梦乃 | 精品系列免费在线观看| 色婷婷av一区二区三区大白胸| 欧美老年两性高潮| 亚洲天堂成人网| 成人免费毛片片v| 精品国产一区a| 亚洲国产精品精华液网站| 国内精品写真在线观看| 欧美一区二区性放荡片| 亚洲视频一二三区| 春色校园综合激情亚洲| 久久夜色精品国产噜噜av| 日本欧美加勒比视频| 欧美日韩情趣电影| 亚洲欧美激情视频在线观看一区二区三区 | 丝袜美腿亚洲色图| 精品视频一区二区不卡| 亚洲成av人影院在线观看网| 91久久久免费一区二区| 一区二区三区精品| 在线精品视频一区二区| 亚洲精品亚洲人成人网在线播放| 97久久超碰国产精品| 一区二区三区av电影| 4hu四虎永久在线影院成人| 日本最新不卡在线| 国产精品素人一区二区| 色八戒一区二区三区| 国产成人高清在线| 国产精品家庭影院| 欧美久久高跟鞋激| 国产一区二区三区黄视频| 亚洲视频免费在线| 91麻豆精品国产91久久久更新时间 | bt7086福利一区国产| 亚洲国产视频一区二区| 欧美一级欧美三级| 91香蕉国产在线观看软件| 亚洲午夜久久久| 欧美国产精品v| 51精品秘密在线观看| 成人毛片视频在线观看| 日韩成人免费电影| 中文字幕一区免费在线观看| 欧美日韩精品专区| 国产成人精品免费| 黄一区二区三区| 日本在线不卡视频| 亚洲午夜一区二区| 亚洲欧美日韩在线不卡| 欧美激情一二三区| 久久亚洲精华国产精华液| 欧美一区二区三区在线电影| 欧美男人的天堂一二区| 91污在线观看| 欧美自拍丝袜亚洲| 色老汉一区二区三区| 一本大道av伊人久久综合| 成人免费毛片a| 成人激情动漫在线观看| 国产成人免费视频一区| 国产91精品入口| 成熟亚洲日本毛茸茸凸凹| 国产精品一线二线三线| 波多野结衣中文字幕一区二区三区 | 北条麻妃国产九九精品视频| 国产91精品精华液一区二区三区 | 亚洲图片一区二区| 午夜欧美视频在线观看| 狠狠色综合日日| 国产在线视频一区二区三区| 成人美女视频在线看| 91福利在线免费观看| 日韩精品中文字幕在线不卡尤物| 日韩欧美一区中文| 国产欧美一区二区三区鸳鸯浴 | 久久久www免费人成精品| 国产精品视频第一区| 亚洲精品中文在线| 日韩国产欧美在线播放| 成人高清免费观看| 88在线观看91蜜桃国自产| 国产精品萝li| 国产一区二区三区免费看| 在线观看日产精品| 中文字幕欧美区| 日韩av网站免费在线| 成人激情动漫在线观看| 日韩一区和二区| 亚洲成a人片在线观看中文| 成人sese在线| 久久久精品影视| 美国十次综合导航| 91麻豆精品国产91久久久使用方法| 中文字幕二三区不卡| 国产99久久久久久免费看农村| 欧美电影一区二区三区| 亚洲va韩国va欧美va| 在线影院国内精品| 亚洲一级电影视频| 在线观看亚洲精品| 午夜精品成人在线| 91精品国产美女浴室洗澡无遮挡| gogogo免费视频观看亚洲一| 这里只有精品99re| 国产精品美女久久久久aⅴ国产馆| 日韩高清国产一区在线| 色视频一区二区| 亚洲久本草在线中文字幕| 日本乱人伦一区| 亚洲综合在线视频| 精品视频在线免费看| 三级不卡在线观看| 精品国偷自产国产一区| 国产精品资源网| 国产精品久久777777| 欧美影片第一页| 男男成人高潮片免费网站| 精品国产乱子伦一区| 国产一区二区三区精品视频| 国产精品视频九色porn| 欧美日韩精品三区| 国产乱码精品一区二区三| 亚洲欧美色综合| 欧美一级欧美一级在线播放| 成人在线视频一区| 日日摸夜夜添夜夜添亚洲女人| 精品久久久三级丝袜| 99久久免费精品| 蜜桃视频在线观看一区| 亚洲乱码日产精品bd| 日韩欧美黄色影院| 欧美日韩一卡二卡三卡 | 亚洲人成精品久久久久| 欧美一区二区三区精品| 91原创在线视频| 久久精品国产在热久久| 亚洲成年人影院| 亚洲码国产岛国毛片在线| 欧美成人伊人久久综合网| 在线观看成人免费视频| 成人蜜臀av电影| 日本乱人伦一区| 粉嫩aⅴ一区二区三区四区| 久热成人在线视频| 琪琪一区二区三区| 香蕉影视欧美成人| 亚洲va天堂va国产va久| 亚洲国产日韩一区二区|