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

📄 custome.lst

📁 进行USB开发的外围设备固件程序
💻 LST
字号:
C51 COMPILER V6.10  CUSTOME                                                                12/02/2005 23:12:53 PAGE 1   


C51 COMPILER V6.10, COMPILATION OF MODULE CUSTOME
OBJECT MODULE PLACED IN .\custome.OBJ
COMPILER INVOKED BY: e:\p\u\Keil\C51\BIN\C51.EXE .\custome.c DEBUG OBJECTEXTEND

stmt level    source

   1          #pragma NOIV               // Do not generate interrupt vectors
   2          //-----------------------------------------------------------------------------
   3          //   File:      bulkloop.c
   4          //   Contents:   Hooks required to implement USB peripheral function.
   5          //
   6          //   Copyright (c) 2000 Cypress Semiconductor All rights reserved
   7          //-----------------------------------------------------------------------------
   8          #include "fx2.h"
   9          #include "fx2regs.h"
  10          #include "fx2sdly.h"            // SYNCDELAY macro
  11          
  12          extern BOOL GotSUD;             // Received setup data flag
  13          extern BOOL Sleep;
  14          extern BOOL Rwuen;
  15          extern BOOL Selfpwr;
  16          
  17          BYTE Configuration;             // Current configuration
  18          BYTE AlternateSetting;          // Alternate settings
  19          
  20          #define VR_NAKALL_ON    0xD0
  21          #define VR_NAKALL_OFF   0xD1
  22          
  23          //-----------------------------------------------------------------------------
  24          // Task Dispatcher hooks
  25          //   The following hooks are called by the task dispatcher.
  26          //-----------------------------------------------------------------------------
  27          
  28          void TD_Init(void)             // Called once at startup
  29          {
  30   1         // set the CPU clock to 48MHz
  31   1         CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ;
  32   1      
  33   1        // enable dual autopointer feature
  34   1        AUTOPTRSETUP |= 0x01;
  35   1      
  36   1        Rwuen = TRUE;                 // Enable remote-wakeup	
  37   1       
  38   1      }
  39          
  40          
  41          void TD_Poll(void)              // Called repeatedly while the device is idle
  42          {
  43   1        WORD i;
  44   1        WORD count,x;
  45   1      
  46   1        if(!(EP2468STAT & bmEP2EMPTY))
  47   1        { // check EP2 EMPTY(busy) bit in EP2468STAT (SFR), core set's this bit when FIFO is empty
  48   2      	
  49   2          APTR1H = MSB( &EP2FIFOBUF );
  50   2          APTR1L = LSB( &EP2FIFOBUF );
  51   2      
  52   2          count = (EP2BCH << 8) + EP2BCL;
  53   2      
  54   2          // loop EP2OUT buffer data to EP6IN
  55   2          for( i = 0x0000; i < count; i++ )
C51 COMPILER V6.10  CUSTOME                                                                12/02/2005 23:12:53 PAGE 2   

  56   2          {
  57   3              // Read from the buffer to empty it.
  58   3      		x=*(&EP2FIFOBUF+i);
  59   3          }
  60   2          EP2BCL = 0x80;          // re(arm) EP2OUT
  61   2      
  62   2      	//Reset PLD to state 0(waiting for trigger)
  63   2      	IOA &=0xf7;
  64   2      	EZUSB_Delay(100);
  65   2        	IOA |=0x08;	
  66   2      
  67   2         }
  68   1      }
  69          
  70          BOOL TD_Suspend(void)          // Called before the device goes into suspend mode
  71          {
  72   1         return(TRUE);
  73   1      }
  74          
  75          BOOL TD_Resume(void)          // Called after the device resumes
  76          {
  77   1         return(TRUE);
  78   1      }
  79          
  80          //-----------------------------------------------------------------------------
  81          // Device Request hooks
  82          //   The following hooks are called by the end point 0 device request parser.
  83          //-----------------------------------------------------------------------------
  84          
  85          BOOL DR_GetDescriptor(void)
  86          {
  87   1         return(TRUE);
  88   1      }
  89          
  90          BOOL DR_SetConfiguration(void)   // Called when a Set Configuration command is received
  91          {
  92   1         Configuration = SETUPDAT[2];
  93   1         return(TRUE);            // Handled by user code
  94   1      }
  95          
  96          BOOL DR_GetConfiguration(void)   // Called when a Get Configuration command is received
  97          {
  98   1         EP0BUF[0] = Configuration;
  99   1         EP0BCH = 0;
 100   1         EP0BCL = 1;
 101   1         return(TRUE);            // Handled by user code
 102   1      }
 103          
 104          BOOL DR_SetInterface(void)       // Called when a Set Interface command is received
 105          {
 106   1         AlternateSetting = SETUPDAT[2];
 107   1         return(TRUE);            // Handled by user code
 108   1      }
 109          
 110          BOOL DR_GetInterface(void)       // Called when a Set Interface command is received
 111          {
 112   1         EP0BUF[0] = AlternateSetting;
 113   1         EP0BCH = 0;
 114   1         EP0BCL = 1;
 115   1         return(TRUE);            // Handled by user code
 116   1      }
 117          
C51 COMPILER V6.10  CUSTOME                                                                12/02/2005 23:12:53 PAGE 3   

 118          BOOL DR_GetStatus(void)
 119          {
 120   1         return(TRUE);
 121   1      }
 122          
 123          BOOL DR_ClearFeature(void)
 124          {
 125   1         return(TRUE);
 126   1      }
 127          
 128          BOOL DR_SetFeature(void)
 129          {
 130   1         return(TRUE);
 131   1      }
 132          
 133          BOOL DR_VendorCmnd(void)
 134          {
 135   1        BYTE tmp;
 136   1        
 137   1        switch (SETUPDAT[1])
 138   1        {
 139   2           case VR_NAKALL_ON:
 140   2              tmp = FIFORESET;
 141   2              tmp |= bmNAKALL;      
 142   2              SYNCDELAY;                    
 143   2              FIFORESET = tmp;
 144   2              break;
 145   2           case VR_NAKALL_OFF:
 146   2              tmp = FIFORESET;
 147   2              tmp &= ~bmNAKALL;      
 148   2              SYNCDELAY;                    
 149   2              FIFORESET = tmp;
 150   2              break;
 151   2           default:
 152   2              return(TRUE);
 153   2        }
 154   1      
 155   1        return(FALSE);
 156   1      }
 157          
 158          //-----------------------------------------------------------------------------
 159          // USB Interrupt Handlers
 160          //   The following functions are called by the USB interrupt jump table.
 161          //-----------------------------------------------------------------------------
 162          
 163          // Setup Data Available Interrupt Handler
 164          void ISR_Sudav(void) interrupt 0
 165          {
 166   1         GotSUD = TRUE;            // Set flag
 167   1         EZUSB_IRQ_CLEAR();
 168   1         USBIRQ = bmSUDAV;         // Clear SUDAV IRQ
 169   1      }
 170          
 171          // Setup Token Interrupt Handler
 172          void ISR_Sutok(void) interrupt 0
 173          {
 174   1         EZUSB_IRQ_CLEAR();
 175   1         USBIRQ = bmSUTOK;         // Clear SUTOK IRQ
 176   1      }
 177          
 178          void ISR_Sof(void) interrupt 0
 179          {
C51 COMPILER V6.10  CUSTOME                                                                12/02/2005 23:12:53 PAGE 4   

 180   1         EZUSB_IRQ_CLEAR();
 181   1         USBIRQ = bmSOF;            // Clear SOF IRQ
 182   1      }
 183          
 184          void ISR_Ures(void) interrupt 0
 185          {
 186   1         // whenever we get a USB reset, we should revert to full speed mode
 187   1         pConfigDscr = pFullSpeedConfigDscr;
 188   1         ((CONFIGDSCR xdata *) pConfigDscr)->type = CONFIG_DSCR;
 189   1         pOtherConfigDscr = pHighSpeedConfigDscr;
 190   1         ((CONFIGDSCR xdata *) pOtherConfigDscr)->type = OTHERSPEED_DSCR;
 191   1      
 192   1         EZUSB_IRQ_CLEAR();
 193   1         USBIRQ = bmURES;         // Clear URES IRQ
 194   1      }
 195          
 196          void ISR_Susp(void) interrupt 0
 197          {
 198   1         Sleep = TRUE;
 199   1         EZUSB_IRQ_CLEAR();
 200   1         USBIRQ = bmSUSP;
 201   1      }
 202          
 203          void ISR_Highspeed(void) interrupt 0
 204          {
 205   1      //   if (EZUSB_HIGHSPEED())
 206   1      //   {
 207   1      //      pConfigDscr = pHighSpeedConfigDscr;
 208   1      //      ((CONFIGDSCR xdata *) pConfigDscr)->type = CONFIG_DSCR;
 209   1            pOtherConfigDscr = pFullSpeedConfigDscr;
 210   1            ((CONFIGDSCR xdata *) pOtherConfigDscr)->type = OTHERSPEED_DSCR;
 211   1      //   }
 212   1      
 213   1         EZUSB_IRQ_CLEAR();
 214   1         USBIRQ = bmHSGRANT;
 215   1      }
 216          void ISR_Ep0ack(void) interrupt 0
 217          {
 218   1      }
 219          void ISR_Stub(void) interrupt 0
 220          {
 221   1      }
 222          void ISR_Ep0in(void) interrupt 0
 223          {
 224   1      }
 225          void ISR_Ep0out(void) interrupt 0
 226          {
 227   1      }
 228          void ISR_Ep1in(void) interrupt 0
 229          {
 230   1      }
 231          void ISR_Ep1out(void) interrupt 0
 232          {
 233   1      }
 234          void ISR_Ep2inout(void) interrupt 0
 235          {
 236   1      }
 237          void ISR_Ep4inout(void) interrupt 0
 238          {
 239   1      }
 240          void ISR_Ep6inout(void) interrupt 0
 241          {
C51 COMPILER V6.10  CUSTOME                                                                12/02/2005 23:12:53 PAGE 5   

 242   1      }
 243          void ISR_Ep8inout(void) interrupt 0
 244          {
 245   1      }
 246          void ISR_Ibn(void) interrupt 0
 247          {
 248   1      }
 249          void ISR_Ep0pingnak(void) interrupt 0
 250          {
 251   1      }
 252          void ISR_Ep1pingnak(void) interrupt 0
 253          {
 254   1      }
 255          void ISR_Ep2pingnak(void) interrupt 0
 256          {
 257   1      }
 258          void ISR_Ep4pingnak(void) interrupt 0
 259          {
 260   1      }
 261          void ISR_Ep6pingnak(void) interrupt 0
 262          {
 263   1      }
 264          void ISR_Ep8pingnak(void) interrupt 0
 265          {
 266   1      }
 267          void ISR_Errorlimit(void) interrupt 0
 268          {
 269   1      }
 270          void ISR_Ep2piderror(void) interrupt 0
 271          {
 272   1      }
 273          void ISR_Ep4piderror(void) interrupt 0
 274          {
 275   1      }
 276          void ISR_Ep6piderror(void) interrupt 0
 277          {
 278   1      }
 279          void ISR_Ep8piderror(void) interrupt 0
 280          {
 281   1      }
 282          void ISR_Ep2pflag(void) interrupt 0
 283          {
 284   1      }
 285          void ISR_Ep4pflag(void) interrupt 0
 286          {
 287   1      }
 288          void ISR_Ep6pflag(void) interrupt 0
 289          {
 290   1      }
 291          void ISR_Ep8pflag(void) interrupt 0
 292          {
 293   1      }
 294          void ISR_Ep2eflag(void) interrupt 0
 295          {
 296   1      }
 297          void ISR_Ep4eflag(void) interrupt 0
 298          {
 299   1      }
 300          void ISR_Ep6eflag(void) interrupt 0
 301          {
 302   1      }
 303          void ISR_Ep8eflag(void) interrupt 0
C51 COMPILER V6.10  CUSTOME                                                                12/02/2005 23:12:53 PAGE 6   

 304          {
 305   1      }
 306          void ISR_Ep2fflag(void) interrupt 0
 307          {
 308   1      }
 309          void ISR_Ep4fflag(void) interrupt 0
 310          {
 311   1      }
 312          void ISR_Ep6fflag(void) interrupt 0
 313          {
 314   1      }
 315          void ISR_Ep8fflag(void) interrupt 0
 316          {
 317   1      }
 318          void ISR_GpifComplete(void) interrupt 0
 319          {
 320   1      }
 321          void ISR_GpifWaveform(void) interrupt 0
 322          {
 323   1      }


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


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

⌨️ 快捷键说明

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