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

📄 hpi.lst

📁 51单片机usb读写u盘程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V8.02   HPI                                                                   10/28/2007 05:00:34 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE HPI
OBJECT MODULE PLACED IN HPI.OBJ
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE HPI.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "common.h"
   2          #include "TPBULK.H"
   3          #include "HPI.H"
   4          #include "HAL.H"
   5          #include "Fat.h"
   6          
   7          extern XXGFLAGS bdata bXXGFlags;
   8          extern unsigned char xdata DBUF[BUFFER_LENGTH];
   9          //////////////////////////////////////////
  10          //UART_CMD_BLOCK xdata inblock;
  11          unsigned char xdata UARTBUF[UARTBUF_LENGTH];
  12          SYS_INFO_BLOCK xdata DeviceInfo;
  13          UART_CMD_BLOCK xdata UartCmdBlock;
  14          UART_RSP_BLOCK xdata UartRspBlock;
  15          FILE_INFO xdata ThisFile;
  16          //////////////////////////////////////////
  17          void UartSendRsp(void)
  18          {
  19   1              unsigned int i;
  20   1              unsigned char *pBuf=(unsigned char *)&UartRspBlock;
  21   1              for(i=0;i<64;i++)
  22   1                      ComSendByte(*(pBuf+i));
  23   1              if(UartRspBlock.len!=0){
  24   2                      for(i=0;i<UartRspBlock.len;i++)
  25   2                              ComSendByte(*(UartRspBlock.pbuffer+i));
  26   2                 }
  27   1      }
  28          
  29          unsigned char UartHandler(void)
  30          {
  31   1        unsigned char retStatus;
  32   1        unsigned int len;
  33   1        unsigned long pointer;
  34   1        //unsigned char *pBuf=(unsigned char *)&UartRspBlock;
  35   1      
  36   1        //for(i=0;i<64;i++)
  37   1              //*(pBuf+i)=0;
  38   1         //UartRspBlock.result=1;
  39   1         UartRspBlock.errcode=ERC_OK;
  40   1         UartRspBlock.len=0;
  41   1         ///////////////////////////
  42   1        switch(UartCmdBlock.cmd)
  43   1        {
  44   2          case CMD_RESET:
  45   2          
  46   2              break;
  47   2          case CMD_DETECT_DEVICE:
  48   2              ThisFile.bFileOpen=0;   
  49   2              retStatus=DetectDevice();
  50   2              UartRspBlock.cmd=CMD_DETECT_DEVICE_RSP;
  51   2              break;
  52   2          case CMD_OPEN_FILE:
  53   2              retStatus=OpenFile(UartCmdBlock.CmdBlock.Cmd_OpenFile.filename);
  54   2              UartRspBlock.cmd=CMD_OPEN_FILE_RSP;
  55   2              break;
C51 COMPILER V8.02   HPI                                                                   10/28/2007 05:00:34 PAGE 2   

  56   2          case CMD_CREATE_FILE:
  57   2              
  58   2              retStatus=OpenFile(UartCmdBlock.CmdBlock.Cmd_OpenFile.filename);
  59   2              if(UartRspBlock.errcode==ERC_FILENOTFOUND)
  60   2                      {       
  61   3                      retStatus=CreateFile(UartCmdBlock.CmdBlock.Cmd_CreateFile.item);
  62   3                      }
  63   2              UartRspBlock.cmd=CMD_CREATE_FILE_RSP;
  64   2              break;
  65   2          case CMD_READ_FILE:
  66   2              len=SwapINT16(UartCmdBlock.CmdBlock.Cmd_ReadFile.readLength);
  67   2              retStatus=ReadFile(len,UARTBUF);
  68   2              UartRspBlock.cmd=CMD_READ_FILE_RSP;
  69   2              break;
  70   2          case CMD_WRITE_FILE:
  71   2              len=SwapINT16(UartCmdBlock.CmdBlock.Cmd_WriteFile.writeLength);
  72   2              retStatus=WriteFile(len,UARTBUF);
  73   2              UartRspBlock.cmd=CMD_WRITE_FILE_RSP;
  74   2              break;
  75   2          case CMD_LIST:
  76   2              ThisFile.bFileOpen=0;   
  77   2              retStatus=List();
  78   2              UartRspBlock.cmd=CMD_LIST_RSP;
  79   2              break;
  80   2          case CMD_REMOVE_FILE:
  81   2              ThisFile.bFileOpen=0;   
  82   2              retStatus=RemoveFile(UartCmdBlock.CmdBlock.Cmd_RemoveFile.filename);
  83   2              UartRspBlock.cmd=CMD_REMOVE_FILE_RSP;
  84   2              break;
  85   2          case CMD_GET_CAPACITY:
  86   2              ThisFile.bFileOpen=0;   
  87   2              retStatus=GetCapacity();
  88   2              UartRspBlock.cmd=CMD_GET_CAPACITY_RSP;
  89   2              break;
  90   2          case CMD_GET_FREE_CAPACITY:
  91   2              ThisFile.bFileOpen=0;   
  92   2              retStatus=GetFreeCapacity();
  93   2              UartRspBlock.cmd=CMD_GET_FREE_CAPACITY_RSP;
  94   2              break;
  95   2          case CMD_SET_FILE_POINTER:
  96   2              pointer=SwapINT32(UartCmdBlock.CmdBlock.Cmd_SetFilePointer.pointer);
  97   2              retStatus=SetFilePointer(pointer);  
  98   2              UartRspBlock.cmd=CMD_SET_FILE_POINTER_RSP;      
  99   2              break;
 100   2          case CMD_GET_VERSION:
 101   2              ThisFile.bFileOpen=0;
 102   2              retStatus=GetFirmwareVersion();   
 103   2              UartRspBlock.cmd=CMD_GET_VERSION_RSP; 
 104   2              break;
 105   2          default:
 106   2              bXXGFlags.bits.bCOM_ERR=1;
 107   2              return FALSE;
 108   2        }
 109   1        
 110   1        ///////////////////////////////
 111   1        UartRspBlock.result=retStatus;
 112   1        UartRspBlock.pbuffer=UARTBUF;
 113   1        UartSendRsp();
 114   1        return TRUE;
 115   1        //return retStatus;
 116   1      }
 117          unsigned char DetectDevice(void)
C51 COMPILER V8.02   HPI                                                                   10/28/2007 05:00:34 PAGE 3   

 118          {
 119   1      #define RspBlockDetectDevice UartRspBlock.RspBlock.Rsp_DetectDevice
 120   1              return bXXGFlags.bits.SLAVE_IS_ATTACHED;
 121   1              
 122   1      #undef RspBlockDetectDevice
 123   1      }
 124          
 125          unsigned char List(void)
 126          {
 127   1      #define RspBlockList UartRspBlock.RspBlock.Rsp_List
 128   1              unsigned int item,i;
 129   1              unsigned char j,k,bstop,sector;
 130   1              //RspBlockList.errcode=ERC_NODEVICE;
 131   1              if(!bXXGFlags.bits.SLAVE_IS_ATTACHED)
 132   1              {
 133   2              UartRspBlock.errcode=ERC_NODEVICE;
 134   2              return FALSE;           
 135   2              }
 136   1              ///////////////////////////////////////////////////////////
 137   1              item=0;
 138   1              bstop=0;
 139   1              //RspBlockList.result=0x1;
 140   1              for(sector=0;sector<DeviceInfo.BPB_RootEntCnt;sector++)
 141   1                  {   
 142   2                      //////////////////////////////////////////////////
 143   2                      if(!RBC_Read(DeviceInfo.RootStartSector+sector,1,DBUF))
 144   2                              {
 145   3                              //item=0;
 146   3                              UartRspBlock.errcode=ERC_DEVICEERR;
 147   3                              return FALSE;                   
 148   3                              }
 149   2                      ///////////////////////////////////////////////////
 150   2                      for(i=0;i<DeviceInfo.BPB_BytesPerSec;i=i+32)
 151   2                              {
 152   3                              if(DBUF[i]==0x00)
 153   3                                      {bstop=1;
 154   4                                      break;}
 155   3                              else if(DBUF[i]==0xE5)
 156   3                                      continue;
 157   3                              else if((DBUF[i]&0x40==0x40)&&(DBUF[i+11]==0xff))
 158   3                                      {
 159   4                                      j=DBUF[i]&0x0F;
 160   4                                      j=j+1;
 161   4                                      for(k=0;k<j*32;k++)
 162   4                                              UARTBUF[item*32+k]=DBUF[i+k];
 163   4                                      i=i+(j-1)*32;
 164   4                                      item=item+j;
 165   4                                      }
 166   3                              else
 167   3                                      {
 168   4                                      for(k=0;k<32;k++)
 169   4                                              UARTBUF[item*32+k]=DBUF[i+k];
 170   4                                      item=item+1;
 171   4                                      }
 172   3                              }
 173   2                      ///////////////////////////////////////////////////////
 174   2                      if(bstop==1)break;
 175   2                      
 176   2                  }
 177   1                      
 178   1              //pBuf=(PREAD_CAPACITY_RSP)DBUF;
 179   1              ///////////////////////////////////////////
C51 COMPILER V8.02   HPI                                                                   10/28/2007 05:00:34 PAGE 4   

 180   1              RspBlockList.len=SwapINT16(item*32);
 181   1              UartRspBlock.len=item*32;
 182   1              return TRUE;
 183   1              
 184   1      #undef RspBlockList
 185   1      
 186   1      }
 187          unsigned char OpenFile(unsigned char *pBuffer)
 188          {
 189   1      #define RspBlockOpenFile UartRspBlock.RspBlock.Rsp_OpenFile
 190   1              unsigned int i;
 191   1              unsigned char j,bstop,sector;
 192   1              PDIR_INFO pDirInfo;
 193   1              
 194   1              if(!bXXGFlags.bits.SLAVE_IS_ATTACHED)
 195   1              {
 196   2              UartRspBlock.errcode=ERC_NODEVICE;
 197   2              return FALSE;           
 198   2              }
 199   1              ///////////////////////////////////////////////////////////
 200   1              
 201   1              ThisFile.bFileOpen=0;
 202   1              //RspBlockOpenFile.result=0x0;

⌨️ 快捷键说明

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