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

📄 srcout_s.lst

📁 FPGA与USB通信的测试代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
 503   3            *EP0BUF = VX_BB;
 504   3        EP0BCH = 0;
 505   3        EP0BCL = 1;               // Arm endpoint with # bytes to transfer
 506   3        EP0CS |= bmHSNAK;         // Acknowledge handshake phase of device request
 507   3        
 508   3      
 509   3            break;
 510   3          }
 511   2          case VX_C2:
 512   2          { // cpu source out data
 513   3            if( EP24FIFOFLGS & 0x02 )
 514   3            {
 515   4              REVCTL = 0x01;            // ENH_PKT=1 (use enhanced packet handling)
 516   4              SYNCDELAY;                // 
 517   4              FIFORESET = 0x80;         // nak all OUT pkts. from host
 518   4              SYNCDELAY;                // 
 519   4              FIFORESET = 0x02;         // advance all EP2 buffers to cpu domain
 520   4              SYNCDELAY;                // 
 521   4              EP2FIFOBUF[0] = 0xAA;     // create newly sourced pkt. data
 522   4              SYNCDELAY;                // 
 523   4              EP2BCH = 0x00;
 524   4              SYNCDELAY;                // 
 525   4              EP2BCL = 0x01;            // commit newly sourced pkt. to interface fifo
 526   4            
 527   4              // beware of "left over" uncommitted buffers
 528   4                                      
 529   4              SYNCDELAY;                // 
 530   4              OUTPKTEND = 0x82;         // skip uncommitted pkt. (second pkt.)
 531   4              SYNCDELAY;                // 
 532   4              OUTPKTEND = 0x82;         // skip uncommitted pkt. (third pkt.)
 533   4              SYNCDELAY;                // 
 534   4              OUTPKTEND = 0x82;         // skip uncommitted pkt. (fourth pkt.)
 535   4              // note: core will not allow pkts. to get out of sequence
 536   4              SYNCDELAY;                // 
 537   4              FIFORESET = 0x00;         // release "nak all"
 538   4              SYNCDELAY;                // 
 539   4            
 540   4              *EP0BUF = VX_C2;
 541   4        EP0BCH = 0;
 542   4        EP0BCL = 1;               // Arm endpoint with # bytes to transfer
 543   4        EP0CS |= bmHSNAK;         // Acknowledge handshake phase of device request
 544   4        
 545   4      
 546   4            }
 547   3            else
 548   3            {
 549   4              *EP0BUF = 0xFF;
 550   4        EP0BCH = 0;
C51 COMPILER V7.50   SRCOUT_S                                                              05/26/2006 20:44:33 PAGE 10  

 551   4        EP0BCL = 1;               // Arm endpoint with # bytes to transfer
 552   4        EP0CS |= bmHSNAK;         // Acknowledge handshake phase of device request
 553   4        
 554   4            }
 555   3          
 556   3            break;
 557   3          }
 558   2          default:
 559   2          {
 560   3            ledX_rdvar = LED3_ON;     // debug visual, stuck "ON" to warn developer...
 561   3                  return( FALSE );          // no error; command handled OK
 562   3          }
 563   2              }
 564   1        
 565   1      
 566   1              return( FALSE );              // no error; command handled OK
 567   1      }
 568          
 569          //-----------------------------------------------------------------------------
 570          // USB Interrupt Handlers
 571          //   The following functions are called by the USB interrupt jump table.
 572          //-----------------------------------------------------------------------------
 573          
 574          // Setup Data Available Interrupt Handler
 575          void ISR_Sudav( void ) interrupt 0
 576          {
 577   1         GotSUD = TRUE;         // Set flag
 578   1         EZUSB_IRQ_CLEAR( );
 579   1         USBIRQ = bmSUDAV;      // Clear SUDAV IRQ
 580   1      }
 581          
 582          // Setup Token Interrupt Handler
 583          void ISR_Sutok( void ) interrupt 0
 584          {
 585   1         EZUSB_IRQ_CLEAR( );
 586   1         USBIRQ = bmSUTOK;      // Clear SUTOK IRQ
 587   1      }
 588          
 589          void ISR_Sof( void ) interrupt 0
 590          {
 591   1         EZUSB_IRQ_CLEAR( );
 592   1         USBIRQ = bmSOF;        // Clear SOF IRQ
 593   1      }
 594          
 595          void ISR_Ures( void ) interrupt 0
 596          {
 597   1         if ( EZUSB_HIGHSPEED( ) )
 598   1         {
 599   2            pConfigDscr = pHighSpeedConfigDscr;
 600   2            pOtherConfigDscr = pFullSpeedConfigDscr;
 601   2         }
 602   1         else
 603   1         {
 604   2            pConfigDscr = pFullSpeedConfigDscr;
 605   2            pOtherConfigDscr = pHighSpeedConfigDscr;
 606   2         }
 607   1         
 608   1         EZUSB_IRQ_CLEAR( );
 609   1         USBIRQ = bmURES;       // Clear URES IRQ
 610   1      }
 611          
 612          void ISR_Susp( void ) interrupt 0
C51 COMPILER V7.50   SRCOUT_S                                                              05/26/2006 20:44:33 PAGE 11  

 613          {
 614   1         Sleep = TRUE;
 615   1         EZUSB_IRQ_CLEAR( );
 616   1         USBIRQ = bmSUSP;
 617   1      }
 618          
 619          void ISR_Highspeed( void ) interrupt 0
 620          {
 621   1         if ( EZUSB_HIGHSPEED( ) )
 622   1         {
 623   2            pConfigDscr = pHighSpeedConfigDscr;
 624   2            pOtherConfigDscr = pFullSpeedConfigDscr;
 625   2         }
 626   1         else
 627   1         {
 628   2            pConfigDscr = pFullSpeedConfigDscr;
 629   2            pOtherConfigDscr = pHighSpeedConfigDscr;
 630   2         }
 631   1      
 632   1         EZUSB_IRQ_CLEAR( );
 633   1         USBIRQ = bmHSGRANT;
 634   1      }
 635          void ISR_Ep0ack( void ) interrupt 0
 636          {
 637   1      }
 638          void ISR_Stub( void ) interrupt 0
 639          {
 640   1      }
 641          void ISR_Ep0in( void ) interrupt 0
 642          {
 643   1      }
 644          void ISR_Ep0out( void ) interrupt 0
 645          {
 646   1      }
 647          void ISR_Ep1in( void ) interrupt 0
 648          {
 649   1      }
 650          void ISR_Ep1out( void ) interrupt 0
 651          {
 652   1      }
 653          void ISR_Ep2inout( void ) interrupt 0
 654          {
 655   1      }
 656          void ISR_Ep4inout( void ) interrupt 0
 657          {
 658   1      }
 659          void ISR_Ep6inout( void ) interrupt 0
 660          {
 661   1      }
 662          void ISR_Ep8inout( void ) interrupt 0
 663          {
 664   1      }
 665          void ISR_Ibn( void ) interrupt 0
 666          {
 667   1      }
 668          void ISR_Ep0pingnak( void ) interrupt 0
 669          {
 670   1      }
 671          void ISR_Ep1pingnak( void ) interrupt 0
 672          {
 673   1      }
 674          void ISR_Ep2pingnak( void ) interrupt 0
C51 COMPILER V7.50   SRCOUT_S                                                              05/26/2006 20:44:33 PAGE 12  

 675          {
 676   1      }
 677          void ISR_Ep4pingnak( void ) interrupt 0
 678          {
 679   1      }
 680          void ISR_Ep6pingnak( void ) interrupt 0
 681          {
 682   1      }
 683          void ISR_Ep8pingnak( void ) interrupt 0
 684          {
 685   1      }
 686          void ISR_Errorlimit( void ) interrupt 0
 687          {
 688   1      }
 689          void ISR_Ep2piderror( void ) interrupt 0
 690          {
 691   1      }
 692          void ISR_Ep4piderror( void ) interrupt 0
 693          {
 694   1      }
 695          void ISR_Ep6piderror( void ) interrupt 0
 696          {
 697   1      }
 698          void ISR_Ep8piderror( void ) interrupt 0
 699          {
 700   1      }
 701          void ISR_Ep2pflag( void ) interrupt 0
 702          {
 703   1      }
 704          void ISR_Ep4pflag( void ) interrupt 0
 705          {
 706   1      }
 707          void ISR_Ep6pflag( void ) interrupt 0
 708          {
 709   1      }
 710          void ISR_Ep8pflag( void ) interrupt 0
 711          {
 712   1      }
 713          void ISR_Ep2eflag( void ) interrupt 0
 714          {
 715   1      }
 716          void ISR_Ep4eflag( void ) interrupt 0
 717          {
 718   1      }
 719          void ISR_Ep6eflag( void ) interrupt 0
 720          {
 721   1      }
 722          void ISR_Ep8eflag( void ) interrupt 0
 723          {
 724   1      }
 725          void ISR_Ep2fflag( void ) interrupt 0
 726          {
 727   1      }
 728          void ISR_Ep4fflag( void ) interrupt 0
 729          {
 730   1      }
 731          void ISR_Ep6fflag( void ) interrupt 0
 732          {
 733   1      }
 734          void ISR_Ep8fflag( void ) interrupt 0
 735          {
 736   1      }
C51 COMPILER V7.50   SRCOUT_S                                                              05/26/2006 20:44:33 PAGE 13  

 737          void ISR_GpifComplete( void ) interrupt 0
 738          {
 739   1      }
 740          void ISR_GpifWaveform( void ) interrupt 0
 741          {
 742   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1057    ----
   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 + -