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

📄 vendor.lst

📁 嵌入式系统中一些外围设备驱动示例程序集
💻 LST
字号:
C51 COMPILER V7.06   VENDOR                                                                07/02/2003 10:27:48 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE VENDOR
OBJECT MODULE PLACED IN vendor.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE vendor.c OPTIMIZE(2,SPEED) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /****************************************Copyright (c)**************************************************
   2          **                               广州周立功单片机发展有限公司
   3          **                                     研    究    所
   4          **                                 http://www.zlgmcu.com
   5          **--------------当前版本修订------------------------------------------------------------------------------
   6          ** 修改人: 刘英斌
   7          ** 日 期:2003-03-13
   8          ** 描 述:ISP1581 V1.0
   9          **------------------------------------------------------------------------------------------------------
  10          ********************************************************************************************************/
  11          
  12          #include "standard.h"
  13          #include "Kernel.h"
  14          #include "D14.h"
  15          
  16          
  17          
  18          
  19          //***********************************************************************
  20          //*                                                                                                                                                            *
  21          //*                      External Variable Definition                                         *
  22          //*                                                                                                                                                            *
  23          //***********************************************************************
  24          
  25          extern USB_DEVICE USB_Device;
  26          extern DMA_INT_FLAG DMA_Int_Flag;
  27          extern USB_INT_FLAG USB_Int_Flag;
  28          extern volatile D14_CNTRL_REG xdata D14_Cntrl_Reg;
  29          extern void Start_mSEC_Timer(Data);
  30          extern UC Data;
  31          extern UI Temp,PIO_Count;
  32          extern KERNEL Kernel_Flag;
  33          extern ULI      bytecount;
  34          extern FILESIZE FileSize;
  35          extern UI       count;
  36          extern UC idata Endpt_FIFO[MAX_BUF];
  37          extern UC Type;
  38          
  39          //***********************************************************************
  40          //*                                                                                                                                                            *
  41          //*                          Variable Definition                                                              *
  42          //*                                                                                                                                                            *
  43          //***********************************************************************
  44          
  45          UI Count_PIO;
  46          
  47          //***********************************************************************
  48          //*                                                                                                                                                            *
  49          //*                          Prototype Definition                                                          *
  50          //*                                                                                                                                                            *
  51          //***********************************************************************
  52          
  53          void DMA_Debug_Mode(void);
  54          void DMA_Init(void);
  55          void DMA_Mode(Data);
C51 COMPILER V7.06   VENDOR                                                                07/02/2003 10:27:48 PAGE 2   

  56          
  57          //***********************************************************************
  58          //*                                                                                                                                                            *
  59          //*                          Routine Definition                                                            *
  60          //*                                                                                                                                                            *
  61          //***********************************************************************
  62          
  63          //***********************************************************************
  64          //*                                                                                                                                                    *
  65          //*     Routine         : DMA Debug Mode                                                   *
  66          //*     Input           : None                                                                                              *
  67          //*     Output  : None                                                                        *
  68          //*     Function        : Generic DMA mode routine                                            *
  69          //*                                                                                                                                                            *
  70          //***********************************************************************
  71          
  72          void DMA_Debug_Mode(void)
  73          {
  74   1              if(Kernel_Flag.BITS.Transfer_Start)
  75   1              {
  76   2                      if(FileSize.Size.Address[0] == 0 &&
  77   2                              FileSize.Size.Address[1] == 0 &&
  78   2                              FileSize.Size.Address[2] == 0)
  79   2                      {
  80   3                              Kernel_Flag.BITS.Out_Reset_Done = 0;
  81   3                              Kernel_Flag.BITS.In_Reset_Done = 0;
  82   3                      }
  83   2                      
  84   2                      if(FileSize.Size.DIR == 0x00 || FileSize.Size.DIR == 0x80)
  85   2                              DMA_Mode(Write);
  86   2                      else
  87   2                              DMA_Mode(Read);
  88   2              }
  89   1      }
  90          
  91          
  92          //***********************************************************************
  93          //*                                                                                                                                                    *
  94          //*     Routine         : DMA Mode                                                         *
  95          //*     Input           : DMA Controller setting                                                    *
  96          //*     Output  : None                                                                        *
  97          //*     Function        : to do GDMA data transfer                                            *
  98          //*                                                                                                                                                            *
  99          //***********************************************************************
 100          
 101          void DMA_Mode(Data)
 102          {
 103   1              UI Datcount;
 104   1      
 105   1              if(Data)
 106   1              {
 107   2                      //read
 108   2                      do
 109   2                      {
 110   3                              //Check for Out Token ACK interrupt
 111   3                              while(!USB_Int_Flag.BITS.EP2RX)
 112   3                              {
 113   4                                      if(USB_Int_Flag.BITS.SUSP || Kernel_Flag.BITS.Bus_Reset || USB_Int_Flag.BITS.EP0SETUP)
 114   4                                              break;
 115   4                              }
 116   3                              EA_DISABLE;
 117   3                              USB_Int_Flag.BITS.EP2RX = 0;
C51 COMPILER V7.06   VENDOR                                                                07/02/2003 10:27:48 PAGE 3   

 118   3                              EA_ENABLE;
 119   3                              D14_Cntrl_Reg.D14_ENDPT_INDEX = 4;
 120   3                              //Read in FIFO data
 121   3                              if (bytecount > PIO_Count)
 122   3                              {
 123   4                                      Datcount = PIO_Count;
 124   4                              }
 125   3                              else
 126   3                              {
 127   4                                      Datcount = bytecount;
 128   4                              }
 129   3                              if(Kernel_Flag.BITS.HS_FS_State == FULL_SPEED)
 130   3                              {
 131   4                                      for(Count_PIO = 0 ; Count_PIO < Datcount ; Count_PIO++)
 132   4                                              Endpt_FIFO[Count_PIO] = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 133   4                              }
 134   3                              else
 135   3                              {
 136   4                                      for(Count_PIO = 0 ; Count_PIO < Datcount; Count_PIO++)
 137   4                                              Temp = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 138   4                              }
 139   3                              bytecount -= Datcount;
 140   3                      }while(bytecount);
 141   2              }
 142   1              else
 143   1              {
 144   2                      //write
 145   2                      do
 146   2                      {
 147   3                              //initialize endpoint index
 148   3                              D14_Cntrl_Reg.D14_ENDPT_INDEX = 5;
 149   3                              //Write data to FIFO
 150   3                              if (bytecount>PIO_Count)
 151   3                              {
 152   4                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_LSB =( unsigned char ) PIO_Count;
 153   4                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_MSB = ( unsigned char ) (PIO_Count>>8);
 154   4                                      Datcount = PIO_Count;
 155   4                              }
 156   3                              else
 157   3                              {
 158   4                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_LSB =( unsigned char ) bytecount;
 159   4                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_MSB = ( unsigned char ) (bytecount>>8);
 160   4                                      Datcount = bytecount;
 161   4                              }
 162   3      
 163   3                              if(Kernel_Flag.BITS.HS_FS_State == FULL_SPEED)
 164   3                              {
 165   4                                      for(Count_PIO = 0 ; Count_PIO < Datcount ; Count_PIO++)
 166   4                                              D14_Cntrl_Reg.D14_DATA_PORT_LSB = Endpt_FIFO[Count_PIO];
 167   4                              }
 168   3                              else
 169   3                              {
 170   4                                      for(Count_PIO = 0 ; Count_PIO < Datcount ; Count_PIO++)
 171   4                                              D14_Cntrl_Reg.D14_DATA_PORT_LSB = Count_PIO % 256;
 172   4                              }
 173   3                              //Check for In Token ACK
 174   3                              while(!USB_Int_Flag.BITS.EP2TX)
 175   3                              {    
 176   4                                      if(USB_Int_Flag.BITS.SUSP || Kernel_Flag.BITS.Bus_Reset || USB_Int_Flag.BITS.EP0SETUP)
 177   4                                              break;
 178   4                              }    
 179   3                              EA_DISABLE;
C51 COMPILER V7.06   VENDOR                                                                07/02/2003 10:27:48 PAGE 4   

 180   3                              USB_Int_Flag.BITS.EP2TX = 0;
 181   3                              EA_ENABLE;
 182   3                              bytecount -= Datcount; 
 183   3                      }while(bytecount);
 184   2                      Count_PIO = 0;
 185   2              }
 186   1              Kernel_Flag.BITS.Transfer_Start = 0;  
 187   1      }
 188          


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