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

📄 periph.lst

📁 本固件程序用于CYPRESS公司的FX2系列高速USB芯片
💻 LST
📖 第 1 页 / 共 3 页
字号:
 610   1            // GPIF busy...
 611   1      //    }  
 612   1      //    IOA = 0x01;
 613   1      }
C51 COMPILER V6.23a  PERIPH                                                                10/26/2005 19:02:17 PAGE 11  

 614          
 615          BOOL TD_Suspend(void)          // Called before the device goes into suspend mode
 616          {
 617   1         return(TRUE);
 618   1      }
 619          
 620          BOOL TD_Resume(void)          // Called after the device resumes
 621          {
 622   1         return(TRUE);
 623   1      }
 624          
 625          //-----------------------------------------------------------------------------
 626          // Device Request hooks
 627          //   The following hooks are called by the end point 0 device request parser.
 628          //-----------------------------------------------------------------------------
 629          
 630          BOOL DR_GetDescriptor(void)
 631          {
 632   1         return(TRUE);
 633   1      }
 634          
 635          BOOL DR_SetConfiguration(void)   // Called when a Set Configuration command is received
 636          {
 637   1       if( EZUSB_HIGHSPEED( ) )
 638   1        { // ...FX2 in high speed mode
 639   2          SYNCDELAY;                  // 
 640   2          EP6AUTOINLENH = 0x02;       // set core AUTO commit len = 512 bytes
 641   2          SYNCDELAY;                  // 
 642   2          EP6AUTOINLENL = 0x00;
 643   2          SYNCDELAY;                  // 
 644   2          enum_pkt_size = 512;        // max. pkt. size = 512 bytes
 645   2        }
 646   1        else
 647   1        { // ...FX2 in full speed mode
 648   2          SYNCDELAY;                  // 
 649   2          EP6AUTOINLENH = 0x00;       // set core AUTO commit len = 64 bytes
 650   2          SYNCDELAY;                  // 
 651   2          EP6AUTOINLENL = 0x40;
 652   2          SYNCDELAY;                  // 
 653   2          enum_pkt_size = 64;         // max. pkt. size = 64 bytes
 654   2        }
 655   1        Configuration = SETUPDAT[2];
 656   1         return(TRUE);            // Handled by user code
 657   1      }
 658          
 659          BOOL DR_GetConfiguration(void)   // Called when a Get Configuration command is received
 660          {
 661   1         EP0BUF[0] = Configuration;
 662   1         EP0BCH = 0;
 663   1         EP0BCL = 1;
 664   1         return(TRUE);            // Handled by user code
 665   1      }
 666          
 667          BOOL DR_SetInterface(void)       // Called when a Set Interface command is received
 668          {
 669   1         AlternateSetting = SETUPDAT[2];
 670   1         return(TRUE);            // Handled by user code
 671   1      }
 672          
 673          BOOL DR_GetInterface(void)       // Called when a Set Interface command is received
 674          {
 675   1         EP0BUF[0] = AlternateSetting;
C51 COMPILER V6.23a  PERIPH                                                                10/26/2005 19:02:17 PAGE 12  

 676   1         EP0BCH = 0;
 677   1         EP0BCL = 1;
 678   1         return(TRUE);            // Handled by user code
 679   1      }
 680          
 681          BOOL DR_GetStatus(void)
 682          {
 683   1         return(TRUE);
 684   1      }
 685          
 686          BOOL DR_ClearFeature(void)
 687          {
 688   1         return(TRUE);
 689   1      }
 690          
 691          BOOL DR_SetFeature(void)
 692          {
 693   1         return(TRUE);
 694   1      }
 695          
 696          BOOL DR_VendorCmnd(void)
 697          {
 698   1              return( FALSE );              // no error; command handled OK
 699   1      }
 700          
 701          //-----------------------------------------------------------------------------
 702          // USB Interrupt Handlers
 703          //   The following functions are called by the USB interrupt jump table.
 704          //-----------------------------------------------------------------------------
 705          
 706          // Setup Data Available Interrupt Handler
 707          void ISR_Sudav(void) interrupt 0
 708          {
 709   1         GotSUD = TRUE;            // Set flag
 710   1         EZUSB_IRQ_CLEAR();
 711   1         USBIRQ = bmSUDAV;         // Clear SUDAV IRQ
 712   1      }
 713          
 714          // Setup Token Interrupt Handler
 715          void ISR_Sutok(void) interrupt 0
 716          {
 717   1         EZUSB_IRQ_CLEAR();
 718   1         USBIRQ = bmSUTOK;         // Clear SUTOK IRQ
 719   1      }
 720          
 721          void ISR_Sof(void) interrupt 0
 722          {
 723   1         EZUSB_IRQ_CLEAR();
 724   1         USBIRQ = bmSOF;            // Clear SOF IRQ
 725   1      }
 726          
 727          void ISR_Ures(void) interrupt 0
 728          {
 729   1         if ( EZUSB_HIGHSPEED( ) )
 730   1         {
 731   2            pConfigDscr = pHighSpeedConfigDscr;
 732   2            pOtherConfigDscr = pFullSpeedConfigDscr;
 733   2         }
 734   1         else
 735   1         {
 736   2            pConfigDscr = pFullSpeedConfigDscr;
 737   2            pOtherConfigDscr = pHighSpeedConfigDscr;
C51 COMPILER V6.23a  PERIPH                                                                10/26/2005 19:02:17 PAGE 13  

 738   2         }
 739   1         
 740   1         EZUSB_IRQ_CLEAR();
 741   1         USBIRQ = bmURES;         // Clear URES IRQ
 742   1      }
 743          
 744          void ISR_Susp(void) interrupt 0
 745          {
 746   1         Sleep = TRUE;
 747   1         EZUSB_IRQ_CLEAR();
 748   1         USBIRQ = bmSUSP;
 749   1      }
 750          
 751          void ISR_Highspeed(void) interrupt 0
 752          {
 753   1         if ( EZUSB_HIGHSPEED( ) )
 754   1         {
 755   2            pConfigDscr = pHighSpeedConfigDscr;
 756   2            pOtherConfigDscr = pFullSpeedConfigDscr;
 757   2         }
 758   1         else
 759   1         {
 760   2            pConfigDscr = pFullSpeedConfigDscr;
 761   2            pOtherConfigDscr = pHighSpeedConfigDscr;
 762   2         }
 763   1      
 764   1         EZUSB_IRQ_CLEAR();
 765   1      //   USBIRQ = bmHSGRANT;
 766   1         while (USBIRQ & bmHSGRANT)
 767   1           USBIRQ = bmHSGRANT; //bmHSGRANT is bit 5 of USBIRQ
 768   1      }
 769          void ISR_Ep0ack(void) interrupt 0
 770          {
 771   1      }
 772          void ISR_Stub(void) interrupt 0
 773          {
 774   1      }
 775          void ISR_Ep0in(void) interrupt 0
 776          {
 777   1      }
 778          void ISR_Ep0out(void) interrupt 0
 779          {
 780   1      }
 781          void ISR_Ep1in(void) interrupt 0
 782          {
 783   1      }
 784          void ISR_Ep1out(void) interrupt 0
 785          {
 786   1      }
 787          void ISR_Ep2inout(void) interrupt 0
 788          {/*
 789   1        Flag_Of_Command = TRUE;
 790   1        SYNCDELAY;   
 791   1        CmdLength = ( WORD ) EP2BCH << 8;
 792   1        SYNCDELAY;
 793   1        CmdLength |= ( WORD ) EP2BCL;
 794   1      //  IOA = 0x00; //PD.7=0
 795   1        EZUSB_IRQ_CLEAR();
 796   1        EPIRQ |= 0x10;
 797   1      */
 798   1      }
 799          void ISR_Ep4inout(void) interrupt 0
C51 COMPILER V6.23a  PERIPH                                                                10/26/2005 19:02:17 PAGE 14  

 800          {
 801   1      }
 802          void ISR_Ep6inout(void) interrupt 0
 803          {
 804   1      }
 805          void ISR_Ep8inout(void) interrupt 0
 806          {
 807   1      }
 808          void ISR_Ibn(void) interrupt 0
 809          {
 810   1      }
 811          void ISR_Ep0pingnak(void) interrupt 0
 812          {
 813   1      }
 814          void ISR_Ep1pingnak(void) interrupt 0
 815          {
 816   1      }
 817          void ISR_Ep2pingnak(void) interrupt 0
 818          {/*
 819   1        // if we get a PING-NAK interrupt then arm the endpoint
 820   1         SYNCDELAY;                    
 821   1         EP2BCL = 0;
 822   1      
 823   1      //   IOA = 0x00; //PD.7=0
 824   1      
 825   1         EZUSB_IRQ_CLEAR();
 826   1         NAKIRQ = bmEP2PING;
 827   1      */
 828   1      }
 829          void ISR_Ep4pingnak(void) interrupt 0
 830          {
 831   1      }
 832          void ISR_Ep6pingnak(void) interrupt 0
 833          {
 834   1      }
 835          void ISR_Ep8pingnak(void) interrupt 0
 836          {
 837   1      }
 838          void ISR_Errorlimit(void) interrupt 0
 839          {
 840   1      }
 841          void ISR_Ep2piderror(void) interrupt 0
 842          {
 843   1      }
 844          void ISR_Ep4piderror(void) interrupt 0
 845          {
 846   1      }
 847          void ISR_Ep6piderror(void) interrupt 0
 848          {
 849   1      }
 850          void ISR_Ep8piderror(void) interrupt 0
 851          {
 852   1      }
 853          void ISR_Ep2pflag(void) interrupt 0
 854          {
 855   1      }
 856          void ISR_Ep4pflag(void) interrupt 0
 857          {
 858   1      }
 859          void ISR_Ep6pflag(void) interrupt 0
 860          {
 861   1      }
C51 COMPILER V6.23a  PERIPH                                                                10/26/2005 19:02:17 PAGE 15  

 862          void ISR_Ep8pflag(void) interrupt 0
 863          {
 864   1      }
 865          void ISR_Ep2eflag(void) interrupt 0
 866          {
 867   1      }
 868          void ISR_Ep4eflag(void) interrupt 0
 869          {
 870   1      }
 871          void ISR_Ep6eflag(void) interrupt 0
 872          {
 873   1      }
 874          void ISR_Ep8eflag(void) interrupt 0
 875          {
 876   1      }
 877          void ISR_Ep2fflag(void) interrupt 0
 878          {
 879   1      }
 880          void ISR_Ep4fflag(void) interrupt 0
 881          {
 882   1      }
 883          void ISR_Ep6fflag(void) interrupt 0
 884          {
 885   1      }
 886          void ISR_Ep8fflag(void) interrupt 0
 887          {
 888   1      }
 889          void ISR_GpifComplete(void) interrupt 0
 890          {
 891   1      }
 892          void ISR_GpifWaveform(void) interrupt 0
 893          {
 894   1        GPIFABORT = 0xFF;             // abort to handle shortpkt
 895   1        
 896   1        SYNCDELAY;                    // used here as "delay"
 897   1        EXIF &=  ~0x40;
 898   1        INT4CLR = 0xFF;               // automatically enabled at POR
 899   1        SYNCDELAY;
 900   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    931    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      9    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      3    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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