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

📄 devio.lst

📁 FPGA与USB通信的测试代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
 288          
 289          // Core uses bRequest value 0xA0 for Anchor downloads/uploads...
 290          // Cypress Semiconductor reserves bRequest values 0xA1 through 0xAF...
 291          // Your implementation should not use the above bRequest values...
 292          // Also, previous fw.c versions trap all bRequest values 0x00 through 0x0F...
 293          //
 294          //   bRequest value: SETUPDAT[1]
 295          //   standard, 0x00 through 0x0F
 296          //
 297          //   bmRequest value: SETUPDAT[0]
 298          //   standard,  0x80 IN   Token
 299          //   vendor,    0xC0 IN   Token
 300          //   class,     0xA0 IN   Token
 301          //   standard,  0x00 OUT  Token
C51 COMPILER V7.50   DEVIO                                                                 11/03/2006 09:42:14 PAGE 6   

 302          //   vendor,    0x40 OUT  Token
 303          //   class,     0x60 OUT  Token
 304          
 305          BOOL DR_VendorCmnd( void )
 306          {
 307   1      
 308   1        // Registers which require a synchronization delay, see section 15.14
 309   1        // FIFORESET        FIFOPINPOLAR
 310   1        // INPKTEND         OUTPKTEND
 311   1        // EPxBCH:L         REVCTL
 312   1        // GPIFTCB3         GPIFTCB2
 313   1        // GPIFTCB1         GPIFTCB0
 314   1        // EPxFIFOPFH:L     EPxAUTOINLENH:L
 315   1        // EPxFIFOCFG       EPxGPIFFLGSEL
 316   1        // PINFLAGSxx       EPxFIFOIRQ
 317   1        // EPxFIFOIE        GPIFIRQ
 318   1        // GPIFIE           GPIFADRH:L
 319   1        // UDMACRCH:L       EPxGPIFTRIG
 320   1        // GPIFTRIG
 321   1        
 322   1        // Note: The pre-REVE EPxGPIFTCH/L register are affected, as well...
 323   1        //      ...these have been replaced by GPIFTC[B3:B0] registers
 324   1      
 325   1      
 326   1          
 327   1      
 328   1              switch( SETUPDAT[ 1 ] )
 329   1              { 
 330   2          case VX_B2:
 331   2          { // turn OFF debug LEDs...
 332   3          
 333   3            ledX_rdvar = LED0_ON;    // visual
 334   3            ledX_rdvar = LED1_ON;    // visual
 335   3            ledX_rdvar = LED2_ON;    // visual
 336   3            ledX_rdvar = LED3_ON;    // visual
 337   3            
 338   3            *EP0BUF = VX_B2;
 339   3      
 340   3        EP0BCH = 0;
 341   3        EP0BCL = 1;               // Arm endpoint with # bytes to transfer
 342   3        EP0CS |= bmHSNAK;         // Acknowledge handshake phase of device request
 343   3        
 344   3      
 345   3            break;
 346   3          }
 347   2          case VX_B3:
 348   2          { // turn OFF debug LEDs...
 349   3          
 350   3            ledX_rdvar = LED0_OFF;    // visual
 351   3            ledX_rdvar = LED1_OFF;    // visual
 352   3            ledX_rdvar = LED2_OFF;    // visual
 353   3            ledX_rdvar = LED3_OFF;    // visual
 354   3            
 355   3            *EP0BUF = VX_B3;
 356   3              EP0BCH = 0;
 357   3              EP0BCL = 1;               // Arm endpoint with # bytes to transfer
 358   3              EP0CS |= bmHSNAK;         // Acknowledge handshake phase of device request
 359   3        
 360   3      
 361   3      
 362   3      
 363   3            break;
C51 COMPILER V7.50   DEVIO                                                                 11/03/2006 09:42:14 PAGE 7   

 364   3          }
 365   2      
 366   2          case VX_BC:
 367   2          { // turn OFF debug LEDs...
 368   3          
 369   3               
 370   3                                      
 371   3              
 372   3              
 373   3            
 374   3              *EP0BUF = num;
 375   3                      EP0BCH = 0;
 376   3                      EP0BCL = 1;               // Arm endpoint with # bytes to transfer
 377   3                      EP0CS |= bmHSNAK;         // Acknowledge handshake phase of device request
 378   3       
 379   3            break;
 380   3          }
 381   2      
 382   2       
 383   2          
 384   2          default:
 385   2          {
 386   3            ledX_rdvar = LED3_ON;     // debug visual, stuck "ON" to warn developer...
 387   3                  return( FALSE );          // no error; command handled OK
 388   3          }
 389   2              }
 390   1        
 391   1      
 392   1              return( FALSE );              // no error; command handled OK
 393   1      }
 394          
 395          //-----------------------------------------------------------------------------
 396          // USB Interrupt Handlers
 397          //   The following functions are called by the USB interrupt jump table.
 398          //-----------------------------------------------------------------------------
 399          
 400          // Setup Data Available Interrupt Handler
 401          void ISR_Sudav( void ) interrupt 0
 402          {
 403   1         GotSUD = TRUE;         // Set flag
 404   1         EZUSB_IRQ_CLEAR( );
 405   1         USBIRQ = bmSUDAV;      // Clear SUDAV IRQ
 406   1      }
 407          
 408          // Setup Token Interrupt Handler
 409          void ISR_Sutok( void ) interrupt 0
 410          {
 411   1         EZUSB_IRQ_CLEAR( );
 412   1         USBIRQ = bmSUTOK;      // Clear SUTOK IRQ
 413   1      }
 414          
 415          void ISR_Sof( void ) interrupt 0
 416          {
 417   1         EZUSB_IRQ_CLEAR( );
 418   1         USBIRQ = bmSOF;        // Clear SOF IRQ
 419   1      }
 420          
 421          void ISR_Ures( void ) interrupt 0
 422          {
 423   1         if ( EZUSB_HIGHSPEED( ) )
 424   1         {
 425   2            pConfigDscr = pHighSpeedConfigDscr;
C51 COMPILER V7.50   DEVIO                                                                 11/03/2006 09:42:14 PAGE 8   

 426   2            pOtherConfigDscr = pFullSpeedConfigDscr;
 427   2         }
 428   1         else
 429   1         {
 430   2            pConfigDscr = pFullSpeedConfigDscr;
 431   2            pOtherConfigDscr = pHighSpeedConfigDscr;
 432   2         }
 433   1         
 434   1         EZUSB_IRQ_CLEAR( );
 435   1         USBIRQ = bmURES;       // Clear URES IRQ
 436   1      }
 437          
 438          void ISR_Susp( void ) interrupt 0
 439          {
 440   1         Sleep = TRUE;
 441   1         EZUSB_IRQ_CLEAR( );
 442   1         USBIRQ = bmSUSP;
 443   1      }
 444          
 445          void ISR_Highspeed( void ) interrupt 0
 446          {
 447   1         if ( EZUSB_HIGHSPEED( ) )
 448   1         {
 449   2            pConfigDscr = pHighSpeedConfigDscr;
 450   2            pOtherConfigDscr = pFullSpeedConfigDscr;
 451   2         }
 452   1         else
 453   1         {
 454   2            pConfigDscr = pFullSpeedConfigDscr;
 455   2            pOtherConfigDscr = pHighSpeedConfigDscr;
 456   2         }
 457   1      
 458   1         EZUSB_IRQ_CLEAR( );
 459   1         USBIRQ = bmHSGRANT;
 460   1      }
 461          void ISR_Ep0ack( void ) interrupt 0
 462          {
 463   1      }
 464          void ISR_Stub( void ) interrupt 0
 465          {
 466   1      }
 467          void ISR_Ep0in( void ) interrupt 0
 468          {
 469   1      }
 470          void ISR_Ep0out( void ) interrupt 0
 471          {
 472   1      }
 473          void ISR_Ep1in( void ) interrupt 0
 474          {
 475   1      }
 476          void ISR_Ep1out( void ) interrupt 0
 477          {
 478   1      }
 479          void ISR_Ep2inout( void ) interrupt 0
 480          {
 481   1      }
 482          void ISR_Ep4inout( void ) interrupt 0
 483          {
 484   1      }
 485          void ISR_Ep6inout( void ) interrupt 0
 486          {
 487   1      }
C51 COMPILER V7.50   DEVIO                                                                 11/03/2006 09:42:14 PAGE 9   

 488          void ISR_Ep8inout( void ) interrupt 0
 489          {
 490   1      }
 491          void ISR_Ibn( void ) interrupt 0
 492          {
 493   1      }
 494          void ISR_Ep0pingnak( void ) interrupt 0
 495          {
 496   1      }
 497          void ISR_Ep1pingnak( void ) interrupt 0
 498          {
 499   1      }
 500          void ISR_Ep2pingnak( void ) interrupt 0
 501          {
 502   1      }
 503          void ISR_Ep4pingnak( void ) interrupt 0
 504          {
 505   1      }
 506          void ISR_Ep6pingnak( void ) interrupt 0
 507          {
 508   1      }
 509          void ISR_Ep8pingnak( void ) interrupt 0
 510          {
 511   1      }
 512          void ISR_Errorlimit( void ) interrupt 0
 513          {
 514   1      }
 515          void ISR_Ep2piderror( void ) interrupt 0
 516          {
 517   1      }
 518          void ISR_Ep4piderror( void ) interrupt 0
 519          {
 520   1      }
 521          void ISR_Ep6piderror( void ) interrupt 0
 522          {
 523   1      }
 524          void ISR_Ep8piderror( void ) interrupt 0
 525          {
 526   1      }
 527          void ISR_Ep2pflag( void ) interrupt 0
 528          {
 529   1      }
 530          void ISR_Ep4pflag( void ) interrupt 0
 531          {
 532   1      }
 533          void ISR_Ep6pflag( void ) interrupt 0
 534          {
 535   1      }
 536          void ISR_Ep8pflag( void ) interrupt 0
 537          {
 538   1      }
 539          void ISR_Ep2eflag( void ) interrupt 0
 540          {
 541   1      }
 542          void ISR_Ep4eflag( void ) interrupt 0
 543          {
 544   1      }
 545          void ISR_Ep6eflag( void ) interrupt 0
 546          {
 547   1      }
 548          void ISR_Ep8eflag( void ) interrupt 0
 549          {
C51 COMPILER V7.50   DEVIO                                                                 11/03/2006 09:42:14 PAGE 10  

 550   1      }
 551          void ISR_Ep2fflag( void ) interrupt 0
 552          {
 553   1      }
 554          void ISR_Ep4fflag( void ) interrupt 0
 555          {
 556   1      }
 557          void ISR_Ep6fflag( void ) interrupt 0
 558          {
 559   1      }
 560          void ISR_Ep8fflag( void ) interrupt 0
 561          {
 562   1      }
 563          void ISR_GpifComplete( void ) interrupt 0
 564          {
 565   1      }
 566          void ISR_GpifWaveform( void ) interrupt 0
 567          {
 568   1      }


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