vendor.LST
Upload User: ids068
Upload Date: 2013-04-04
Package Size: 639k
Code Size: 15k
Category:

USB develop

Development Platform:

C/C++

  1. C51 COMPILER V7.06   VENDOR                                                                07/02/2003 10:05:12 PAGE 1   
  2. C51 COMPILER V7.06, COMPILATION OF MODULE VENDOR
  3. OBJECT MODULE PLACED IN vendor.OBJ
  4. COMPILER INVOKED BY: C:KEILC51BINC51.EXE vendor.c OPTIMIZE(2,SPEED) BROWSE DEBUG OBJECTEXTEND
  5. stmt level    source
  6.    1          //***********************************************************************
  7.    2          //                                                                                                                                                        *
  8.    3          //                P H I L I P S   P R O P R I E T A R Y                            *    
  9.    4          //                                                                      *
  10.    5          //          COPYRIGHT (c)   1999 BY PHILIPS SINGAPORE (APIC).                      *
  11.    6          //                    --  ALL RIGHTS RESERVED  --                               *       
  12.    7          //                                                                      *
  13.    8          //      File Name       :       DMADebug.c                                    *
  14.    9          //      Author          :       Albert Goh                                                                                    *
  15.   10          //      Created         :       3 March 2000                                    *
  16.   11          //                                                                         *
  17.   12          //***********************************************************************
  18.   13          //***********************************************************************
  19.   14          //                                                                      *
  20.   15          // GDMADebug.c is the file that contain the routine for the GDMA debug  *
  21.   16          // It will be able to configured as master for slave for the debugging  *
  22.   17          //                                                                      *
  23.   18          //***********************************************************************
  24.   19          //***********************************************************************
  25.   20          //                                                                      *
  26.   21          //  Module History                                                                                                                          *
  27.   22          //  **************                                                                                                                          *
  28.   23          //                                                                                                                                                                *
  29.   24          //  Date        Version                 Author                          Changes                                       *
  30.   25          //  ====           =======                      ======                          =======                                       *
  31.   26          //  030300        0.1                   Albert                          Created                                       *
  32.   27          //                                                                      *
  33.   28          //                                                                      *
  34.   29          //***********************************************************************
  35.   30          
  36.   31          //***********************************************************************
  37.   32          //*                                                                                                                                                            *
  38.   33          //*                          Include Files Definition                                              *
  39.   34          //*                                                                                                                                                            *
  40.   35          //***********************************************************************
  41.   36          
  42.   37          #include "standard.h"
  43.   38          #include "Kernel.h"
  44.   39          #include "D14.h"
  45.   40          
  46.   41          
  47.   42          
  48.   43          
  49.   44          //***********************************************************************
  50.   45          //*                                                                                                                                                            *
  51.   46          //*                      External Variable Definition                                         *
  52.   47          //*                                                                                                                                                            *
  53.   48          //***********************************************************************
  54.   49          
  55.   50          extern USB_DEVICE USB_Device;
  56.   51          extern DMA_INT_FLAG DMA_Int_Flag;
  57.   52          extern USB_INT_FLAG USB_Int_Flag;
  58.   53          extern volatile D14_CNTRL_REG xdata D14_Cntrl_Reg;
  59.   54          extern void Start_mSEC_Timer(Data);
  60.   55          extern void rt2_process();
  61. C51 COMPILER V7.06   VENDOR                                                                07/02/2003 10:05:12 PAGE 2   
  62.   56          extern void tt2_process();
  63.   57          extern UC Data;
  64.   58          extern UI Temp,PIO_Count;
  65.   59          extern KERNEL Kernel_Flag;
  66.   60          extern ULI      bytecount;
  67.   61          extern FILESIZE FileSize;
  68.   62          extern UI       count;
  69.   63          extern UC idata Endpt_FIFO[MAX_BUF];
  70.   64          extern UC Type;
  71.   65          
  72.   66          //***********************************************************************
  73.   67          //*                                                                                                                                                            *
  74.   68          //*                          Variable Definition                                                              *
  75.   69          //*                                                                                                                                                            *
  76.   70          //***********************************************************************
  77.   71          
  78.   72          UI Count_PIO;
  79.   73          
  80.   74          //***********************************************************************
  81.   75          //*                                                                                                                                                            *
  82.   76          //*                          Prototype Definition                                                          *
  83.   77          //*                                                                                                                                                            *
  84.   78          //***********************************************************************
  85.   79          
  86.   80          void DMA_Debug_Mode(void);
  87.   81          void DMA_Init(void);
  88.   82          void DMA_Mode(Data);
  89.   83          
  90.   84          //***********************************************************************
  91.   85          //*                                                                                                                                                            *
  92.   86          //*                          Routine Definition                                                            *
  93.   87          //*                                                                                                                                                            *
  94.   88          //***********************************************************************
  95.   89          
  96.   90          //***********************************************************************
  97.   91          //*                                                                                                                                                    *
  98.   92          //*     Routine         : DMA Debug Mode                                                   *
  99.   93          //*     Input           : None                                                                                              *
  100.   94          //*     Output  : None                                                                        *
  101.   95          //*     Function        : Generic DMA mode routine                                            *
  102.   96          //*                                                                                                                                                            *
  103.   97          //***********************************************************************
  104.   98          
  105.   99          void DMA_Debug_Mode(void)
  106.  100          {
  107.  101   1              if(Kernel_Flag.BITS.Transfer_Start)
  108.  102   1              {
  109.  103   2                      if(FileSize.Size.Address[0] == 0 &&
  110.  104   2                              FileSize.Size.Address[1] == 0 &&
  111.  105   2                              FileSize.Size.Address[2] == 0)
  112.  106   2                      {
  113.  107   3                              Kernel_Flag.BITS.Out_Reset_Done = 0;
  114.  108   3                              Kernel_Flag.BITS.In_Reset_Done = 0;
  115.  109   3                      }
  116.  110   2                      
  117.  111   2                      if(FileSize.Size.DIR == 0x00 || FileSize.Size.DIR == 0x80)
  118.  112   2                              DMA_Mode(Write);
  119.  113   2                      else
  120.  114   2                              DMA_Mode(Read);
  121.  115   2              }
  122.  116   1      }
  123.  117          
  124. C51 COMPILER V7.06   VENDOR                                                                07/02/2003 10:05:12 PAGE 3   
  125.  118          
  126.  119          //***********************************************************************
  127.  120          //*                                                                                                                                                    *
  128.  121          //*     Routine         : DMA Mode                                                         *
  129.  122          //*     Input           : DMA Controller setting                                                    *
  130.  123          //*     Output  : None                                                                        *
  131.  124          //*     Function        : to do GDMA data transfer                                            *
  132.  125          //*                                                                                                                                                            *
  133.  126          //***********************************************************************
  134.  127          
  135.  128          void DMA_Mode(Data)
  136.  129          {
  137.  130   1              UI Datcount;
  138.  131   1              UC i;
  139.  132   1      
  140.  133   1              if(Data)
  141.  134   1              {
  142.  135   2                      //read
  143.  136   2                      do
  144.  137   2                      {
  145.  138   3                              //Check for Out Token ACK interrupt
  146.  139   3                              while(!USB_Int_Flag.BITS.EP2RX);
  147.  140   3                              EA_DISABLE;
  148.  141   3                              USB_Int_Flag.BITS.EP2RX = 0;
  149.  142   3                              D14_Cntrl_Reg.D14_ENDPT_INDEX = 4;
  150.  143   3                              //Read in FIFO data
  151.  144   3                              if (bytecount > PIO_Count)
  152.  145   3                              {
  153.  146   4                                      Datcount = PIO_Count;
  154.  147   4                              }
  155.  148   3                              else
  156.  149   3                              {
  157.  150   4                                      Datcount = bytecount;
  158.  151   4                              }
  159.  152   3              
  160.  153   3                              for(i = 0 ; i < (UC)Datcount ; i++)
  161.  154   3                                      Endpt_FIFO[i] = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
  162.  155   3                      
  163.  156   3                              EA_ENABLE;
  164.  157   3                              bytecount -= Datcount;
  165.  158   3                      }while(bytecount);              
  166.  159   2                      rt2_process();
  167.  160   2              }
  168.  161   1              else
  169.  162   1              {
  170.  163   2                      //write
  171.  164   2                      do
  172.  165   2                      {
  173.  166   3                              //initialize endpoint index
  174.  167   3                              D14_Cntrl_Reg.D14_ENDPT_INDEX = 5;
  175.  168   3                              //Write data to FIFO
  176.  169   3                              if (bytecount>PIO_Count)
  177.  170   3                              {
  178.  171   4                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_LSB =( unsigned char ) PIO_Count;
  179.  172   4                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_MSB = ( unsigned char ) (PIO_Count>>8);
  180.  173   4                                      Datcount = PIO_Count;
  181.  174   4                              }
  182.  175   3                              else
  183.  176   3                              {
  184.  177   4                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_LSB =( unsigned char ) bytecount;
  185.  178   4                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_MSB = ( unsigned char ) (bytecount>>8);
  186.  179   4                                      Datcount = bytecount;
  187. C51 COMPILER V7.06   VENDOR                                                                07/02/2003 10:05:12 PAGE 4   
  188.  180   4                              }
  189.  181   3      
  190.  182   3                              
  191.  183   3                                      tt2_process();
  192.  184   3                                      for(Count_PIO = 0 ; Count_PIO < Datcount ; Count_PIO++)
  193.  185   3                                              D14_Cntrl_Reg.D14_DATA_PORT_LSB = Endpt_FIFO[Count_PIO];
  194.  186   3                              
  195.  187   3                              //Check for In Token ACK
  196.  188   3                              while(!USB_Int_Flag.BITS.EP2TX)
  197.  189   3                              {    
  198.  190   4                                      if(USB_Int_Flag.BITS.SUSP || Kernel_Flag.BITS.Bus_Reset || USB_Int_Flag.BITS.EP0SETUP)
  199.  191   4                                              break;
  200.  192   4                              }    
  201.  193   3                              EA_DISABLE;
  202.  194   3                              USB_Int_Flag.BITS.EP2TX = 0;
  203.  195   3                              EA_ENABLE;
  204.  196   3                              bytecount -= Datcount; 
  205.  197   3                      }while(bytecount);
  206.  198   2                      //stop DMA controller
  207.  199   2                      DMA_Start = GDMA_Stop;
  208.  200   2                      //transfewr done,reset internal variables
  209.  201   2                      DMA_Int_Flag.BITS.DMA_DONE = 0;
  210.  202   2                      Count_PIO = 0;
  211.  203   2              }
  212.  204   1              Kernel_Flag.BITS.Transfer_Start = 0;  
  213.  205   1      }
  214.  206          
  215. MODULE INFORMATION:   STATIC OVERLAYABLE
  216.    CODE SIZE        =    483    ----
  217.    CONSTANT SIZE    =   ----    ----
  218.    XDATA SIZE       =   ----    ----
  219.    PDATA SIZE       =   ----    ----
  220.    DATA SIZE        =      2       5
  221.    IDATA SIZE       =   ----    ----
  222.    BIT SIZE         =   ----    ----
  223. END OF MODULE INFORMATION.
  224. C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)