⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fpusb.lst

📁 2812学习板usb68013源代码,包括usb驱动
💻 LST
字号:
C51 COMPILER V6.10  FPUSB                                                                  04/27/2008 11:26:27 PAGE 1   


C51 COMPILER V6.10, COMPILATION OF MODULE FPUSB
OBJECT MODULE PLACED IN .\FPUSB.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\FPUSB.c BROWSE INCDIR(C:\Cypress\USB\Target\Inc\) DEBUG OBJECTEXTEND

stmt level    source

   1          #pragma NOIV               // Do not generate interrupt vectors
   2          
   3          #include "fx2.h"
   4          #include "fx2regs.h"
   5          #include "fx2sdly.h"            // SYNCDELAY macro
   6          
   7          extern BOOL GotSUD;             // Received setup data flag
   8          extern BOOL Sleep;
   9          extern BOOL Rwuen;
  10          extern BOOL Selfpwr;
  11          
  12          BYTE Configuration;             // Current configuration
  13          BYTE AlternateSetting;          // Alternate settings
  14          
  15          //-----------------------------------------------------------------------------
  16          // Constants
  17          //-----------------------------------------------------------------------------
  18          #define	VR_UPLOAD           0xc0
  19          #define VR_DOWNLOAD         0x40
  20          
  21          #define VR_ANCHOR_DLD       0xa0 // handled by core
  22          
  23          #define	VR_Reset     	0xb0
  24          #define	VR_Intr         0xb1
  25          
  26          //-----------------------------------------------------------------------------
  27          // Task Dispatcher hooks
  28          //   The following hooks are called by the task dispatcher.
  29          //-----------------------------------------------------------------------------
  30          
  31          sbit PA0 = IOA ^ 0;
  32          sbit PA1 = IOA ^ 1;
  33          sbit PA2 = IOA ^ 2;
  34          sbit PA3 = IOA ^ 3;
  35          sbit PA4 = IOA ^ 4;
  36          sbit PA5 = IOA ^ 5;
  37          sbit PA6 = IOA ^ 6;
  38          sbit PA7 = IOA ^ 7;
  39          
  40          void TD_Init(void)              // Called once at startup
  41          {
  42   1        BYTE i;
  43   1      
  44   1        // set the CPU clock to 48MHz
  45   1        CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ;
  46   1      
  47   1        SYNCDELAY;
  48   1        IFCONFIG = 0xcb;    // slave fifo, internal clk, async
  49   1      
  50   1        SYNCDELAY;
  51   1        EP2CFG = 0xA2; // EP2 is DIR=OUT, TYPE=BULK, SIZE=512, BUF=2x
  52   1      
  53   1        SYNCDELAY;
  54   1        FIFORESET = 0x80; // reset all FIFOs
  55   1        SYNCDELAY;
C51 COMPILER V6.10  FPUSB                                                                  04/27/2008 11:26:27 PAGE 2   

  56   1        FIFORESET = 0x02;
  57   1        SYNCDELAY;
  58   1        FIFORESET = 0x04;
  59   1        SYNCDELAY;
  60   1        FIFORESET = 0x06;
  61   1        SYNCDELAY;
  62   1        FIFORESET = 0x08;
  63   1        SYNCDELAY;
  64   1        FIFORESET = 0x00;
  65   1      
  66   1      	SYNCDELAY;
  67   1      	EP2FIFOCFG = 0x01; // EP2 is AUTOOUT=0, AUTOIN=0, ZEROLEN=0, WORDWIDE=1
  68   1      	SYNCDELAY;
  69   1      	EP2FIFOCFG = 0x11; // EP2 is AUTOOUT=1, AUTOIN=0, ZEROLEN=0, WORDWIDE=1
  70   1      	
  71   1      	SYNCDELAY;
  72   1      	OUTPKTEND = 0x82;
  73   1      	SYNCDELAY;
  74   1      	OUTPKTEND = 0x82;
  75   1      
  76   1        SYNCDELAY;
  77   1        EP6AUTOINLENH = 2;  // EP6 auto in length: 512
  78   1        SYNCDELAY;
  79   1        EP6AUTOINLENL = 0;
  80   1        
  81   1      
  82   1        SYNCDELAY;
  83   1        EP6FIFOCFG = 0x09;  // this lets the EP6 auto commit IN packets,
  84   1                            // and sets the slave FIFO data interface to 16-bits
  85   1      
  86   1        SYNCDELAY;
  87   1        EP4FIFOCFG = 0x00;
  88   1      
  89   1        SYNCDELAY;
  90   1        EP8FIFOCFG = 0x00;
  91   1      
  92   1        SYNCDELAY;
  93   1        PINFLAGSAB = 0x00; // defines FLAGA as prog-level flag, pointed to by FIFOADR[1:0]
  94   1                           // FLAGB as full flag, as pointed to by FIFOADR[1:0]
  95   1      
  96   1        SYNCDELAY;
  97   1        PINFLAGSCD = 0x00; // FLAGC as empty flag, as pointed to by FIFOADR[1:0]
  98   1      
  99   1        SYNCDELAY;
 100   1        PORTACFG = 0x00;   // used PA7/FLAGD as a port pin, not as a FIFO flag
 101   1      
 102   1        SYNCDELAY;
 103   1        FIFOPINPOLAR = 0x00; // set all slave FIFO interface pins as active low
 104   1        
 105   1        OEA = 0x08;//PA3输出
 106   1        IOA = 0x00;
 107   1      
 108   1       // PA7 = 0;
 109   1        //for(i=0;i<10;i++);
 110   1        //PA7 = 1;
 111   1      }
*** WARNING C280 IN LINE 42 OF .\FPUSB.C: 'i': unreferenced local variable
 112          
 113          void TD_Poll(void)              // Called repeatedly while the device is idle
 114          {
 115   1         // if there is some data in EP2 OUT, re-arm it
 116   1         if(!(EP2468STAT & bmEP2EMPTY))
C51 COMPILER V6.10  FPUSB                                                                  04/27/2008 11:26:27 PAGE 3   

 117   1         {
 118   2      		  //OUTPKTEND = 0x02; 
 119   2                SYNCDELAY;
 120   2         }
 121   1      }
 122          
 123          BOOL TD_Suspend(void)          // Called before the device goes into suspend mode
 124          {
 125   1         return(TRUE);
 126   1      }
 127          
 128          BOOL TD_Resume(void)          // Called after the device resumes
 129          {
 130   1         return(TRUE);
 131   1      }
 132          
 133          //-----------------------------------------------------------------------------
 134          // Device Request hooks
 135          //   The following hooks are called by the end point 0 device request parser.
 136          //-----------------------------------------------------------------------------
 137          
 138          BOOL DR_GetDescriptor(void)
 139          {
 140   1         return(TRUE);
 141   1      }
 142          
 143          BOOL DR_SetConfiguration(void)   // Called when a Set Configuration command is received
 144          {
 145   1         Configuration = SETUPDAT[2];
 146   1         return(TRUE);            // Handled by user code
 147   1      }
 148          
 149          BOOL DR_GetConfiguration(void)   // Called when a Get Configuration command is received
 150          {
 151   1         EP0BUF[0] = Configuration;
 152   1         EP0BCH = 0;
 153   1         EP0BCL = 1;
 154   1         return(TRUE);            // Handled by user code
 155   1      }
 156          
 157          BOOL DR_SetInterface(void)       // Called when a Set Interface command is received
 158          {
 159   1         AlternateSetting = SETUPDAT[2];
 160   1         return(TRUE);            // Handled by user code
 161   1      }
 162          
 163          BOOL DR_GetInterface(void)       // Called when a Set Interface command is received
 164          {
 165   1         EP0BUF[0] = AlternateSetting;
 166   1         EP0BCH = 0;
 167   1         EP0BCL = 1;
 168   1         return(TRUE);            // Handled by user code
 169   1      }
 170          
 171          BOOL DR_GetStatus(void)
 172          {
 173   1         return(TRUE);
 174   1      }
 175          
 176          BOOL DR_ClearFeature(void)
 177          {
 178   1         return(TRUE);
C51 COMPILER V6.10  FPUSB                                                                  04/27/2008 11:26:27 PAGE 4   

 179   1      }
 180          
 181          BOOL DR_SetFeature(void)
 182          {
 183   1         return(TRUE);
 184   1      }
 185          
 186          BOOL DR_VendorCmnd(void)
 187          {
 188   1      	BYTE i;
 189   1      
 190   1      	switch(SETUPDAT[1])
 191   1          {
 192   2      		case VR_Reset:
 193   2      			TD_Init();
 194   2                 break;
 195   2      
 196   2      		case VR_Intr:
 197   2      			PA3 = 1;
 198   2      			for(i=0;i<10;i++);
 199   2      			PA3 = 0;
 200   2      		   break;
 201   2          }
 202   1      
 203   1      	return(FALSE); // no error; command handled OK
 204   1      }
 205          
 206          //-----------------------------------------------------------------------------
 207          // USB Interrupt Handlers
 208          //   The following functions are called by the USB interrupt jump table.
 209          //-----------------------------------------------------------------------------
 210          
 211          // Setup Data Available Interrupt Handler
 212          void ISR_Sudav(void) interrupt 0
 213          {
 214   1         GotSUD = TRUE;            // Set flag
 215   1         EZUSB_IRQ_CLEAR();
 216   1         USBIRQ = bmSUDAV;         // Clear SUDAV IRQ
 217   1      }
 218          
 219          // Setup Token Interrupt Handler
 220          void ISR_Sutok(void) interrupt 0
 221          {
 222   1         EZUSB_IRQ_CLEAR();
 223   1         USBIRQ = bmSUTOK;         // Clear SUTOK IRQ
 224   1      }
 225          
 226          void ISR_Sof(void) interrupt 0
 227          {
 228   1         EZUSB_IRQ_CLEAR();
 229   1         USBIRQ = bmSOF;            // Clear SOF IRQ
 230   1      }
 231          
 232          void ISR_Ures(void) interrupt 0
 233          {
 234   1         if (EZUSB_HIGHSPEED())
 235   1         {
 236   2            pConfigDscr = pHighSpeedConfigDscr;
 237   2            pOtherConfigDscr = pFullSpeedConfigDscr;
 238   2         }
 239   1         else
 240   1         {
C51 COMPILER V6.10  FPUSB                                                                  04/27/2008 11:26:27 PAGE 5   

 241   2            pConfigDscr = pFullSpeedConfigDscr;
 242   2            pOtherConfigDscr = pHighSpeedConfigDscr;
 243   2         }
 244   1         
 245   1         EZUSB_IRQ_CLEAR();
 246   1         USBIRQ = bmURES;         // Clear URES IRQ
 247   1      }
 248          
 249          void ISR_Susp(void) interrupt 0
 250          {
 251   1         Sleep = TRUE;
 252   1         EZUSB_IRQ_CLEAR();
 253   1         USBIRQ = bmSUSP;
 254   1      }
 255          
 256          void ISR_Highspeed(void) interrupt 0
 257          {
 258   1         if (EZUSB_HIGHSPEED())
 259   1         {
 260   2            pConfigDscr = pHighSpeedConfigDscr;
 261   2            pOtherConfigDscr = pFullSpeedConfigDscr;
 262   2         }
 263   1         else
 264   1         {
 265   2            pConfigDscr = pFullSpeedConfigDscr;
 266   2            pOtherConfigDscr = pHighSpeedConfigDscr;
 267   2         }
 268   1      
 269   1         EZUSB_IRQ_CLEAR();
 270   1         USBIRQ = bmHSGRANT;
 271   1      }
 272          void ISR_Ep0ack(void) interrupt 0
 273          {
 274   1      }
 275          void ISR_Stub(void) interrupt 0
 276          {
 277   1      }
 278          void ISR_Ep0in(void) interrupt 0
 279          {
 280   1      }
 281          void ISR_Ep0out(void) interrupt 0
 282          {
 283   1      }
 284          void ISR_Ep1in(void) interrupt 0
 285          {
 286   1      }
 287          void ISR_Ep1out(void) interrupt 0
 288          {
 289   1      }
 290          void ISR_Ep2inout(void) interrupt 0
 291          {
 292   1      }
 293          void ISR_Ep4inout(void) interrupt 0
 294          {
 295   1      }
 296          void ISR_Ep6inout(void) interrupt 0
 297          {
 298   1      }
 299          void ISR_Ep8inout(void) interrupt 0
 300          {
 301   1      }
 302          void ISR_Ibn(void) interrupt 0
C51 COMPILER V6.10  FPUSB                                                                  04/27/2008 11:26:27 PAGE 6   

 303          {
 304   1      }
 305          void ISR_Ep0pingnak(void) interrupt 0
 306          {
 307   1      }
 308          void ISR_Ep1pingnak(void) interrupt 0
 309          {
 310   1      }
 311          void ISR_Ep2pingnak(void) interrupt 0
 312          {
 313   1      }
 314          void ISR_Ep4pingnak(void) interrupt 0
 315          {
 316   1      }
 317          void ISR_Ep6pingnak(void) interrupt 0
 318          {
 319   1      }
 320          void ISR_Ep8pingnak(void) interrupt 0
 321          {
 322   1      }
 323          void ISR_Errorlimit(void) interrupt 0
 324          {
 325   1      }
 326          void ISR_Ep2piderror(void) interrupt 0
 327          {
 328   1      }
 329          void ISR_Ep4piderror(void) interrupt 0
 330          {
 331   1      }
 332          void ISR_Ep6piderror(void) interrupt 0
 333          {
 334   1      }
 335          void ISR_Ep8piderror(void) interrupt 0
 336          {
 337   1      }
 338          void ISR_Ep2pflag(void) interrupt 0
 339          {
 340   1      }
 341          void ISR_Ep4pflag(void) interrupt 0
 342          {
 343   1      }
 344          void ISR_Ep6pflag(void) interrupt 0
 345          {
 346   1      }
 347          void ISR_Ep8pflag(void) interrupt 0
 348          {
 349   1      }
 350          void ISR_Ep2eflag(void) interrupt 0
 351          {
 352   1      }
 353          void ISR_Ep4eflag(void) interrupt 0
 354          {
 355   1      }
 356          void ISR_Ep6eflag(void) interrupt 0
 357          {
 358   1      }
 359          void ISR_Ep8eflag(void) interrupt 0
 360          {
 361   1      }
 362          void ISR_Ep2fflag(void) interrupt 0
 363          {
 364   1      }
C51 COMPILER V6.10  FPUSB                                                                  04/27/2008 11:26:27 PAGE 7   

 365          void ISR_Ep4fflag(void) interrupt 0
 366          {
 367   1      }
 368          void ISR_Ep6fflag(void) interrupt 0
 369          {
 370   1      }
 371          void ISR_Ep8fflag(void) interrupt 0
 372          {
 373   1      }
 374          void ISR_GpifComplete(void) interrupt 0
 375          {
 376   1      }
 377          void ISR_GpifWaveform(void) interrupt 0
 378          {
 379   1      }


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


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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -