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

📄 tpbulk.lst

📁 采用811芯片实现单片机读写U盘的源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.00  TPBULK                                                                 09/22/2005 17:15:30 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE TPBULK
OBJECT MODULE PLACED IN .\out\TPBULK.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TPBULK.C LARGE BROWSE DEBUG OBJECTEXTEND OBJECT(.\out\TPBULK.obj)

stmt level    source

   1          #define TPBULK_FILE
   2          #include "include.h"
   3          
   4          //extern unsigned char xdata DBUF[BUFFER_LENGTH];
   5          //extern XXGPKG usbstack;
   6          //extern SYS_INFO_BLOCK xdata DeviceInfo;
   7          //extern FILE_INFO xdata ThisFile;
   8          //extern FREE_FAT_INFO xdata FreeFat;
   9          //extern unsigned char xdata CurFatSector[512];
  10          
  11          //TPBLK_STRUC idata TPBulk_Block;
  12          //#define     TPBulk_CBW                        TPBulk_Block.TPBulk_CommandBlock
  13          //#define           CBW_wXferLen                TPBulk_CBW.dCBW_DataXferLen
  14          //#define           RBC_CDB                     TPBulk_CBW.cdbRBC
  15          //#define     RBC_LUN                   TPBulk_CBW.bCBW_LUN
  16          //#define     TPBulk_CSW                        TPBulk_Block.TPBulk_CommandStatus
  17          
  18          unsigned char EnumMassDev(void)
  19          {
  20   1              
  21   1      //      PMBR_BLOCK pMBR;
  22   1      //      PBPB_BLOCK_16 pBPB16;
  23   1      //      PBPB_BLOCK_32 pBPB32;
  24   1              
  25   1              if(!SPC_Inquiry())
  26   1                      return FALSE;
  27   1              //if(!SPC_READLONG())
  28   1              //      return FALSE;
  29   1              if(!SPC_TestUnit())
  30   1                      return FALSE;
  31   1              if(!SPC_LockMedia())
  32   1                      return FALSE;
  33   1              if(!SPC_RequestSense())
  34   1                      return FALSE;
  35   1              if(!SPC_TestUnit())
  36   1                      return FALSE;
  37   1              if(!RBC_ReadCapacity())
  38   1                      return FALSE;
  39   1              
  40   1              #ifdef ZLH_DEBUG
  41   1              disp_data(2, "A1");
  42   1              while(!getkey());
  43   1              DelayMs(100);
  44   1              #endif
  45   1              
  46   1              if(!init_part()) return FALSE;
  47   1              if(!init_file_system(1)) return FALSE;
  48   1              return TRUE;
  49   1      }
  50          
  51          unsigned char TPBulk_GetMaxLUN(void)
  52          {
  53   1              
  54   1              usbstack.setup.bmRequest=0xa1;
  55   1              usbstack.setup.bRequest=0xfe;
C51 COMPILER V7.00  TPBULK                                                                 09/22/2005 17:15:30 PAGE 2   

  56   1              usbstack.setup.wValue=0;
  57   1              usbstack.setup.wIndex=0;
  58   1              usbstack.setup.wLength=1;
  59   1              usbstack.buffer=DBUF;
  60   1              return ep0Xfer();
  61   1      
  62   1      }
  63          
  64          unsigned char SPC_Inquiry(void)
  65          {
  66   1      #define cdbInquirySPC RBC_CDB.SpcCdb_Inquiry
  67   1              //unsigned char len;
  68   1              //unsigned char retStatus=FALSE;
  69   1              TPBulk_CBW.dCBW_Signature=CBW_SIGNATURE;
  70   1              TPBulk_CBW.dCBW_Tag=0x60a624de;
  71   1              TPBulk_CBW.dCBW_DataXferLen=0x24000000;
  72   1              TPBulk_CBW.bCBW_Flag=0x80;
  73   1              TPBulk_CBW.bCBW_LUN=0;
  74   1              TPBulk_CBW.bCBW_CDBLen=sizeof(INQUIRY_SPC);
  75   1              
  76   1              /////////////////////////////////
  77   1              cdbInquirySPC.OperationCode=SPC_CMD_INQUIRY;
  78   1              cdbInquirySPC.EnableVPD=0;
  79   1              cdbInquirySPC.CmdSupportData=0;
  80   1              cdbInquirySPC.PageCode=0;
  81   1              cdbInquirySPC.AllocationLen=0x24;
  82   1              cdbInquirySPC.Control=0;
  83   1              ////////////////////////////////
  84   1              //if(!epBulkRcv(DBUF,5))
  85   1              //      return FALSE;
  86   1              if(!epBulkSend((unsigned char *)&TPBulk_CBW,sizeof(TPBulk_CBW)))
  87   1                      return FALSE;
  88   1              
  89   1              if(!epBulkRcv(DBUF,38))
  90   1                      return FALSE;
  91   1              if(!epBulkRcv((unsigned char *)&TPBulk_CSW,13))
  92   1                      return FALSE;
  93   1              ////////////////////////////////
  94   1              return TRUE;    
  95   1      #undef cdbInquirySPC
  96   1      }
  97          
  98          unsigned char SPC_READLONG(void)
  99          {
 100   1      #define cdbReadLong RBC_CDB.SpcCdb_ReadLong     
 101   1              //nsigned char retStatus=FALSE;
 102   1              TPBulk_CBW.dCBW_Signature=CBW_SIGNATURE;
 103   1              TPBulk_CBW.dCBW_Tag=0x60a624de;
 104   1              TPBulk_CBW.dCBW_DataXferLen=0xfc000000;
 105   1              TPBulk_CBW.bCBW_Flag=0x80;
 106   1              TPBulk_CBW.bCBW_LUN=0;
 107   1              TPBulk_CBW.bCBW_CDBLen=sizeof(READ_LONG_CMD);
 108   1              
 109   1              /////////////////////////////////////
 110   1              cdbReadLong.OperationCode=SPC_CMD_READLONG;
 111   1              cdbReadLong.LogicalUnitNum=0;
 112   1              cdbReadLong.AllocationLen=0xfc;
 113   1              //////////////////////////////////////
 114   1              if(!epBulkSend((unsigned char *)&TPBulk_CBW,sizeof(TPBulk_CBW)))
 115   1                      return FALSE;
 116   1              
 117   1              if(!epBulkRcv(DBUF,0xfc))
C51 COMPILER V7.00  TPBULK                                                                 09/22/2005 17:15:30 PAGE 3   

 118   1                      return FALSE;
 119   1              
 120   1              if(!epBulkRcv((unsigned char *)&TPBulk_CSW,13))
 121   1                      return FALSE;
 122   1        ////////////////////////////
 123   1        return TRUE;
 124   1      #undef cdbReadLong
 125   1      }
 126          unsigned char SPC_RequestSense(void)
 127          {
 128   1      #define cdbRequestSenseSPC RBC_CDB.SpcCdb_RequestSense  
 129   1              //unsigned char retStatus=FALSE;
 130   1              TPBulk_CBW.dCBW_Signature=CBW_SIGNATURE;
 131   1              TPBulk_CBW.dCBW_Tag=0x60a624de;
 132   1              TPBulk_CBW.dCBW_DataXferLen=0x0e000000;
 133   1              TPBulk_CBW.bCBW_Flag=0x80;
 134   1              TPBulk_CBW.bCBW_LUN=0;
 135   1              TPBulk_CBW.bCBW_CDBLen=sizeof(REQUEST_SENSE_SPC);
 136   1                      
 137   1              /////////////////////////////////////
 138   1              cdbRequestSenseSPC.OperationCode=SPC_CMD_REQUESTSENSE;
 139   1              cdbRequestSenseSPC.AllocationLen=0x0e;
 140   1              //////////////////////////////////////
 141   1              if(!epBulkSend((unsigned char *)&TPBulk_CBW,sizeof(TPBulk_CBW)))
 142   1                      return FALSE;
 143   1              
 144   1              if(!epBulkRcv(DBUF,18))
 145   1                      return FALSE;
 146   1              
 147   1              if(!epBulkRcv((unsigned char *)&TPBulk_CSW,13))
 148   1                      return FALSE;
 149   1      /////////////////////////////
 150   1              return TRUE;

⌨️ 快捷键说明

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