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

📄 bulkext.lst

📁 基于MSP430的CYpress USB芯片68013的开发
💻 LST
字号:
C51 COMPILER V7.50   BULKEXT                                                               02/25/2008 20:23:33 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE BULKEXT
OBJECT MODULE PLACED IN bulkext.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE bulkext.c DEBUG OBJECTEXTEND

line level    source

   1          //-----------------------------------------------------------------------------
   2          //   File:      bulkext.c
   3          //   Contents:  Hooks required to implement USB peripheral function.
   4          //
   5          // $Archive: /USB/Examples/FX2LP/bulkext/bulkext.c $
   6          // $Date: 3/23/05 2:53p $
   7          // $Revision: 3 $
   8          //
   9          //
  10          //-----------------------------------------------------------------------------
  11          // Copyright 2003, Cypress Semiconductor Corporation
  12          //-----------------------------------------------------------------------------
  13          #pragma NOIV               // Do not generate interrupt vectors
  14          #include "fx2.h"
  15          #include "fx2regs.h"
  16          #include "syncdly.h"            // SYNCDELAY macro
  17          
  18          extern BOOL GotSUD;             // Received setup data flag
  19          extern BOOL Sleep;
  20          extern BOOL Rwuen;
  21          extern BOOL Selfpwr;
  22          
  23          BYTE Configuration;             // Current configuration
  24          BYTE AlternateSetting;          // Alternate settings
  25          
  26          //-----------------------------------------------------------------------------
  27          // Task Dispatcher hooks
  28          //   The following hooks are called by the task dispatcher.
  29          //-----------------------------------------------------------------------------
  30          
  31          void TD_Init(void)             // Called once at startup
  32          {   // set the CPU clock to 48MHz   
  33   1       // CPUCS = 0x10 ;   
  34   1       // set the slave FIFO interface to 48MHz  
  35   1        IFCONFIG = 0xCB; // 0 - external IFCLK, 1 - internal IFCLK 
  36   1              // 0 - when internal clock, 0 - 30MHz; 1 - 48MHz
  37   1              // 0 - ignore
  38   1              // 0 - ignore
  39   1              // 0 - sync IFCLK, 1 - ansync
  40   1              // 0 - no state drive
  41   1              // 11 - Slave fifo, external master*** 
  42   1        SYNCDELAY;
  43   1        REVCTL = 0X01;    // enable the external master  
  44   1        SYNCDELAY;  
  45   1      SYNCDELAY;                    // see TRM section 15.14  
  46   1      EP2CFG = 0xA2;   // 1 - valid
  47   1              // 1 - in
  48   1              // 10 - bulk
  49   1              // 1 - 1024, 0 - 512 
  50   1      
  51   1              // 0 - always
  52   1              // 00 - 4 x buffer
  53   1      SYNCDELAY;
  54   1      EP8CFG = 0XE0;
  55   1      SYNCDELAY;
C51 COMPILER V7.50   BULKEXT                                                               02/25/2008 20:23:33 PAGE 2   

  56   1       FIFORESET = 0x80;//RESET EP2FIFO
  57   1       SYNCDELAY;
  58   1       FIFORESET = 0x02;
  59   1       SYNCDELAY;
  60   1       FIFORESET = 0x04;
  61   1       SYNCDELAY;
  62   1       FIFORESET = 0x06;
  63   1       SYNCDELAY;
  64   1       FIFORESET = 0x08;
  65   1       SYNCDELAY;
  66   1       FIFORESET = 0x00;
  67   1       SYNCDELAY;
  68   1       PINFLAGSAB = 0x8F;  // flaga - ep8ff, flagb - ep2ef
  69   1      SYNCDELAY;
  70   1      FIFOPINPOLAR=0x00;//低电平有效
  71   1      SYNCDELAY;
  72   1      EP2FIFOCFG = 0X00;//ENDPOINT2 AUTOOUT 8BIT WORDWIDE 
  73   1      EP2FIFOCFG = 0X10;//ENDPOINT2 AUTOOUT=1 8BIT WORDWIDE 
  74   1      SYNCDELAY; 
  75   1      EP8FIFOCFG = 0X0C;
  76   1      SYNCDELAY; 
  77   1      EP8AUTOINLENH = 0x00; // set core AUTO commit len = 512 bytes 
  78   1      SYNCDELAY; 
  79   1      EP8AUTOINLENL = 0x40; 
  80   1      
  81   1      /* OUTPKTEND = 0X82; 
  82   1       SYNCDELAY;  
  83   1       OUTPKTEND = 0X82;  // since the defaults are double buffered we must write dummy byte counts twice  
  84   1      SYNCDELAY;                    
  85   1      /*EP2BCL = 0x80;                // arm EP2OUT by writing byte count w/skip.  
  86   1      SYNCDELAY;                    
  87   1       EP2BCL = 0x80;  
  88   1      SYNCDELAY;    */         
  89   1         /* AUTOPTRSETUP |= 0x01; 
  90   1       Rwuen = FALSE;  */
  91   1      }  // Enable remote-wakeup
  92          
  93          void TD_Poll(void)              // Called repeatedly while the device is idle
  94          {  /* if(!(EP2468STAT & bmEP2EMPTY)) 
  95   1       {    
  96   1      EP2FIFOBUF[0]=EP2BCL;
  97   1       SYNCDELAY;    
  98   1      OUTPKTEND = 0X02; 
  99   1       }*/ 
 100   1      }
 101          
 102          BOOL TD_Suspend(void)          // Called before the device goes into suspend mode
 103          {
 104   1         return(TRUE);
 105   1      }
 106          
 107          BOOL TD_Resume(void)          // Called after the device resumes
 108          {
 109   1         return(TRUE);
 110   1      }
 111          
 112          //-----------------------------------------------------------------------------
 113          // Device Request hooks
 114          //   The following hooks are called by the end point 0 device request parser.
 115          //-----------------------------------------------------------------------------
 116          
 117          BOOL DR_GetDescriptor(void)
C51 COMPILER V7.50   BULKEXT                                                               02/25/2008 20:23:33 PAGE 3   

 118          {
 119   1         return(TRUE);
 120   1      }
 121          
 122          BOOL DR_SetConfiguration(void)   // Called when a Set Configuration command is received
 123          {
 124   1         Configuration = SETUPDAT[2];
 125   1         return(TRUE);            // Handled by user code
 126   1      }
 127          
 128          BOOL DR_GetConfiguration(void)   // Called when a Get Configuration command is received
 129          {
 130   1         EP0BUF[0] = Configuration;
 131   1         EP0BCH = 0;
 132   1         EP0BCL = 1;
 133   1         return(TRUE);            // Handled by user code
 134   1      }
 135          
 136          BOOL DR_SetInterface(void)       // Called when a Set Interface command is received
 137          {
 138   1         AlternateSetting = SETUPDAT[2];
 139   1         return(TRUE);            // Handled by user code
 140   1      }
 141          
 142          BOOL DR_GetInterface(void)       // Called when a Set Interface command is received
 143          {
 144   1         EP0BUF[0] = AlternateSetting;
 145   1         EP0BCH = 0;
 146   1         EP0BCL = 1;
 147   1         return(TRUE);            // Handled by user code
 148   1      }
 149          
 150          BOOL DR_GetStatus(void)
 151          {
 152   1         return(TRUE);
 153   1      }
 154          
 155          BOOL DR_ClearFeature(void)
 156          {
 157   1         return(TRUE);
 158   1      }
 159          
 160          BOOL DR_SetFeature(void)
 161          {
 162   1         return(TRUE);
 163   1      }
 164          
 165          BOOL DR_VendorCmnd(void)
 166          {
 167   1         return(TRUE);
 168   1      }
 169          
 170          //-----------------------------------------------------------------------------
 171          // USB Interrupt Handlers
 172          //   The following functions are called by the USB interrupt jump table.
 173          //-----------------------------------------------------------------------------
 174          
 175          // Setup Data Available Interrupt Handler
 176          void ISR_Sudav(void) interrupt 0
 177          {
 178   1         GotSUD = TRUE;            // Set flag
 179   1         EZUSB_IRQ_CLEAR();
C51 COMPILER V7.50   BULKEXT                                                               02/25/2008 20:23:33 PAGE 4   

 180   1         USBIRQ = bmSUDAV;         // Clear SUDAV IRQ
 181   1      }
 182          
 183          // Setup Token Interrupt Handler
 184          void ISR_Sutok(void) interrupt 0
 185          {
 186   1         EZUSB_IRQ_CLEAR();
 187   1         USBIRQ = bmSUTOK;         // Clear SUTOK IRQ
 188   1      }
 189          
 190          void ISR_Sof(void) interrupt 0
 191          {
 192   1         EZUSB_IRQ_CLEAR();
 193   1         USBIRQ = bmSOF;            // Clear SOF IRQ
 194   1      }
 195          
 196          void ISR_Ures(void) interrupt 0
 197          {
 198   1         if (EZUSB_HIGHSPEED())
 199   1         {
 200   2            pConfigDscr = pHighSpeedConfigDscr;
 201   2            pOtherConfigDscr = pFullSpeedConfigDscr;
 202   2         }
 203   1         else
 204   1         {
 205   2            pConfigDscr = pFullSpeedConfigDscr;
 206   2            pOtherConfigDscr = pHighSpeedConfigDscr;
 207   2         }
 208   1         
 209   1         EZUSB_IRQ_CLEAR();
 210   1         USBIRQ = bmURES;         // Clear URES IRQ
 211   1      }
 212          
 213          void ISR_Susp(void) interrupt 0
 214          {
 215   1         Sleep = TRUE;
 216   1         EZUSB_IRQ_CLEAR();
 217   1         USBIRQ = bmSUSP;
 218   1      }
 219          
 220          void ISR_Highspeed(void) interrupt 0
 221          {
 222   1         if (EZUSB_HIGHSPEED())
 223   1         {
 224   2            pConfigDscr = pHighSpeedConfigDscr;
 225   2            pOtherConfigDscr = pFullSpeedConfigDscr;
 226   2         }
 227   1         else
 228   1         {
 229   2            pConfigDscr = pFullSpeedConfigDscr;
 230   2            pOtherConfigDscr = pHighSpeedConfigDscr;
 231   2         }
 232   1      
 233   1         EZUSB_IRQ_CLEAR();
 234   1         USBIRQ = bmHSGRANT;
 235   1      }
 236          void ISR_Ep0ack(void) interrupt 0
 237          {
 238   1      }
 239          void ISR_Stub(void) interrupt 0
 240          {
 241   1      }
C51 COMPILER V7.50   BULKEXT                                                               02/25/2008 20:23:33 PAGE 5   

 242          void ISR_Ep0in(void) interrupt 0
 243          {
 244   1      }
 245          void ISR_Ep0out(void) interrupt 0
 246          {
 247   1      }
 248          void ISR_Ep1in(void) interrupt 0
 249          {
 250   1      }
 251          void ISR_Ep1out(void) interrupt 0
 252          {
 253   1      }
 254          void ISR_Ep2inout(void) interrupt 0
 255          {
 256   1      }
 257          void ISR_Ep4inout(void) interrupt 0
 258          {
 259   1      }
 260          void ISR_Ep6inout(void) interrupt 0
 261          {
 262   1      }
 263          void ISR_Ep8inout(void) interrupt 0
 264          {
 265   1      }
 266          void ISR_Ibn(void) interrupt 0
 267          {
 268   1      }
 269          void ISR_Ep0pingnak(void) interrupt 0
 270          {
 271   1      }
 272          void ISR_Ep1pingnak(void) interrupt 0
 273          {
 274   1      }
 275          void ISR_Ep2pingnak(void) interrupt 0
 276          {
 277   1      }
 278          void ISR_Ep4pingnak(void) interrupt 0
 279          {
 280   1      }
 281          void ISR_Ep6pingnak(void) interrupt 0
 282          {
 283   1      }
 284          void ISR_Ep8pingnak(void) interrupt 0
 285          {
 286   1      }
 287          void ISR_Errorlimit(void) interrupt 0
 288          {
 289   1      }
 290          void ISR_Ep2piderror(void) interrupt 0
 291          {
 292   1      }
 293          void ISR_Ep4piderror(void) interrupt 0
 294          {
 295   1      }
 296          void ISR_Ep6piderror(void) interrupt 0
 297          {
 298   1      }
 299          void ISR_Ep8piderror(void) interrupt 0
 300          {
 301   1      }
 302          void ISR_Ep2pflag(void) interrupt 0
 303          {
C51 COMPILER V7.50   BULKEXT                                                               02/25/2008 20:23:33 PAGE 6   

 304   1      }
 305          void ISR_Ep4pflag(void) interrupt 0
 306          {
 307   1      }
 308          void ISR_Ep6pflag(void) interrupt 0
 309          {
 310   1      }
 311          void ISR_Ep8pflag(void) interrupt 0
 312          {
 313   1      }
 314          void ISR_Ep2eflag(void) interrupt 0
 315          {
 316   1      }
 317          void ISR_Ep4eflag(void) interrupt 0
 318          {
 319   1      }
 320          void ISR_Ep6eflag(void) interrupt 0
 321          {
 322   1      }
 323          void ISR_Ep8eflag(void) interrupt 0
 324          {
 325   1      }
 326          void ISR_Ep2fflag(void) interrupt 0
 327          {
 328   1      }
 329          void ISR_Ep4fflag(void) interrupt 0
 330          {
 331   1      }
 332          void ISR_Ep6fflag(void) interrupt 0
 333          {
 334   1      }
 335          void ISR_Ep8fflag(void) interrupt 0
 336          {
 337   1      }
 338          void ISR_GpifComplete(void) interrupt 0
 339          {
 340   1      }
 341          void ISR_GpifWaveform(void) interrupt 0
 342          {
 343   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    433    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2    ----
   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 + -