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

📄 mass_stg.lst

📁 基于c8051F320的优盘制作代码及原理图
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.06   MASS_STG                                                              10/19/2007 15:26:26 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MASS_STG
OBJECT MODULE PLACED IN Mass_STG.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Mass_STG.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*******************************************************************************************
   2          USB     MASS STORAGE Source Code
   3          Create  By:             Sen     Xu
   4          Date:                   09/10/2007
   5          Version:                V1.0
   6          Note:                   Only for Study and not for cometial use
   7          *******************************************************************************************/
   8          #include                "c8051f320.h"
   9          #include                "intrins.h"
  10          #include                "USB.h"
  11          #include                "UFI.h"
  12          #include                "flash.c"
  13          
  14          
  15          #define                 MaxSize         0x40
  16          #define                 BIT0            0x01
  17          #define                 BIT1            0x02
  18          #define                 BIT2            0x04
  19          #define                 BIT3            0x08
  20          #define                 BIT4            0x10
  21          #define                 BIT5            0x20
  22          #define                 BIT6            0x40
  23          #define                 BIT7            0x80
  24          ///////////////////////////////////////////////////////////////////////////////////////////
  25          //Descriptors
  26          #define                 DEVICE          0x01
  27          #define                 CONFIG          0x02
  28          #define                 STRING          0x03
  29          #define                 INTERFACE       0x04
  30          #define                 ENDPOINT        0x05
  31          
  32          ///////////////////////////////////////////////////////////////////////////////////////////
  33          //Host Requst Report
  34          #define                 Set_Addr                0x05
  35          #define                 Get_Descriptor  0x06
  36          #define                 Set_Config              0x09
  37          #define                 Set_Interface   0x11
  38          ///////////////////////////////////////////////////////////////////////////////////////////
  39          //Mass Storage class Specitial Requst
  40          #define                 Get_Max_Lun                     0xFE
  41          #define                 Mass_Storage_Reset      0xFF
  42          ///////////////////////////////////////////////////////////////////////////////////////////
  43          
  44          
  45          
  46          extern  void    Oscillator_Init(void);
  47          extern  void    System_Config(void);
  48          extern  void    USB_Config(void);
  49          extern  void    SFR_WR(uchar,uchar);
  50          extern  uchar   SFR_RD(uchar);
  51          extern  void    Delay_uS(uint);
  52          extern  void    Delay_mS(uchar);
  53          extern  void    Analysis_Requst(Requst *);
  54          extern  uint    Swap(uint);
  55          extern  void    FIFO_WR(uchar *, uchar, uint)   reentrant;
C51 COMPILER V7.06   MASS_STG                                                              10/19/2007 15:26:26 PAGE 2   

  56          extern  void    FIFO_RD(uchar,uchar);
  57          extern  void    CLR_Flags(void);
  58          extern  void    Analysis_UFI(void);
  59          extern  void    BulkOut_Process(void);
  60          extern  ulong   exchange(ulong);
  61          extern  void    Read_ID(void);
  62          extern  void    write_cmd(uchar);
  63          extern  void    write_addr(uchar);
  64          extern  void    write_addr_2byte(uchar, uchar);
  65          extern  void    write_addr_3byte(uchar, uchar, uchar);
  66          extern  uchar   read_dat(void);
  67          extern  void    write_dat(uchar);
  68          extern  uchar   read_status(void);
  69          extern  uchar   block_erase(uchar,uchar);
  70          extern  uchar   page_program(uchar *,uchar, uchar, uchar, uint);
  71          extern  uchar   copy_back(uchar ,uchar , uchar , uchar , uchar , uchar);
  72          extern  void    page_read(uchar ,uchar , uchar) ;       
  73          extern  void    check_invalid(void);
  74          extern  void    test_flash(void);
  75          extern  void    fill_DBR(void);
  76          extern  void    block_buffer(uint);
  77          
  78          
  79          /*****************************************************************************************
  80          Interrupt Flag Data Structure for Program jump
  81          ******************************************************************************************/
  82          typedef struct  Flag
  83          {
  84                  uchar   epin1;
  85                  uchar   epout1;
  86          
  87          }Flags;
  88          
  89          
  90          /****************************************************************************************
  91          UFI CBW DATA STRUCTURE
  92          *****************************************************************************************/
  93          code    uchar   Return_Inquiry[36] =
  94          {
  95                  0x00,                   //Device Type
  96                  0x80,                   //Removable media
  97                  0x00,
  98                  0x01,
  99                  0x1F,
 100                  'x','u','s','e','n','C','H','F',        //VID
 101                  0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
 102                  0x38,0x39,0x30,0x31,0x32,0x33,0x34,0x35,
 103                  'V','1','.','0'
 104                  
 105          
 106          };
 107          
 108          code    uchar   Return_Read_Format[20] =
 109          {
 110                  0x00,0x00,0x00,0x10,                    //Capacity List Header
 111                  0x00,0x00,0xFA,0x00,                    //Block number
 112                  0x01,0x00,0x02,0x00,                    //sector length 512byte
 113                  0x00,0x00,0xFA,0x00,
 114                  0x00,0x00,0x02,0x00
 115          };
 116          
 117          code    uchar   Return_Read_Cap [8] =
C51 COMPILER V7.06   MASS_STG                                                              10/19/2007 15:26:26 PAGE 3   

 118          {
 119                  0x00,0x00,0xFA,0x00,                    //Mediu Capacity
 120                  0x00,0x00,0x02,0x00                             
 121          };
 122          
 123          code    uchar   Sense[8] =
 124          {
 125                  0x45,   0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00
 126          };
 127          
 128          code    uchar   DBR[512] = 
 129          {
 130                  0xeb,   0x58,   0x90,
 131                  0x4d,   0x53,   0x44, 0x4f, 0x53, 0x35, 0x2e, 0x30, 
 132                  0x00,   0x02,
 133                  0x01,
 134                  0x01,   0x00,
 135                  0x02,
 136                  0xB0,   0x00,
 137                  0x00,   0xfa,
 138                  0xf8,
 139                  0xFA,   0x00,
 140                  0x3F,   0x00,
 141                  0xFF,   0x00,
 142                  0x00,   0x00,   0x00,   0x00,
 143                  0x00,   0x00,   0x00,   0x00,
 144                  0x80,
 145                  0x00,
 146                  0x029,
 147                  0xA8, 0x8B, 0x36, 0x52,
 148                  0x4E, 0x4F, 0x20, 0x4E, 0x41, 0x4D, 0x45, 0x20, 0x20, 0x20, 0x20,
 149                  0x46, 0x41, 0x54, 0x31, 0x36, 0x20,  0x20, 0x20,
 150                  0xf1, 0x7d,
 151           0xfa, 0x33, 0xc9, 0x8e,  0xd1, 0xbc, 0xfc, 0x7b,  0x16, 0x07, 0xbd, 0x78,  0x00, 0xc5, 0x76, 0x00,
 152           0x1e, 0x56, 0x16, 0x55,  0xbf, 0x22, 0x05, 0x89,  0x7e, 0x00, 0x89, 0x4e,  0x02, 0xb1, 0x0b, 0xfc,
 153           0xf3, 0xa4, 0x06, 0x1f,  0xbd, 0x00, 0x7c, 0xc6,  0x45, 0xfe, 0x0f, 0x8b,  0x46, 0x18, 0x88, 0x45,
 154           0xf9, 0xfb, 0x38, 0x66,  0x24, 0x7c, 0x04, 0xcd,  0x13, 0x72, 0x3c, 0x8a,  0x46, 0x10, 0x98, 0xf7,
 155           0x66, 0x16, 0x03, 0x46,  0x1c, 0x13, 0x56, 0x1e,  0x03, 0x46, 0x0e, 0x13,  0xd1, 0x50, 0x52, 0x89,
 156           0x46, 0xfc, 0x89, 0x56,  0xfe, 0xb8, 0x20, 0x00,  0x8b, 0x76, 0x11, 0xf7,  0xe6, 0x8b, 0x5e, 0x0b,
 157           0x03, 0xc3, 0x48, 0xf7,  0xf3, 0x01, 0x46, 0xfc,  0x11, 0x4e, 0xfe, 0x5a,  0x58, 0xbb, 0x00, 0x07,
 158           0x8b, 0xfb, 0xb1, 0x01,  0xe8, 0x94, 0x00, 0x72,  0x47, 0x38, 0x2d, 0x74,  0x19, 0xb1, 0x0b, 0x56,
 159           0x8b, 0x76, 0x3e, 0xf3,  0xa6, 0x5e, 0x74, 0x4a,  0x4e, 0x74, 0x0b, 0x03,  0xf9, 0x83, 0xc7, 0x15,
 160           0x3b, 0xfb, 0x72, 0xe5,  0xeb, 0xd7, 0x2b, 0xc9,  0xb8, 0xd8, 0x7d, 0x87,  0x46, 0x3e, 0x3c, 0xd8,
 161           0x75, 0x99, 0xbe, 0x80,  0x7d, 0xac, 0x98, 0x03,  0xf0, 0xac, 0x84, 0xc0,  0x74, 0x17, 0x3c, 0xff,
 162           0x74, 0x09, 0xb4, 0x0e,  0xbb, 0x07, 0x00, 0xcd,  0x10, 0xeb, 0xee, 0xbe,  0x83, 0x7d, 0xeb, 0xe5,
 163           0xbe, 0x81, 0x7d, 0xeb,  0xe0, 0x33, 0xc0, 0xcd,  0x16, 0x5e, 0x1f, 0x8f,  0x04, 0x8f, 0x44, 0x02,
 164           0xcd, 0x19, 0xbe, 0x82,  0x7d, 0x8b, 0x7d, 0x0f,  0x83, 0xff, 0x02, 0x72,  0xc8, 0x8b, 0xc7, 0x48,
 165           0x48, 0x8a, 0x4e, 0x0d,  0xf7, 0xe1, 0x03, 0x46,  0xfc, 0x13, 0x56, 0xfe,  0xbb, 0x00, 0x07, 0x53,
 166           0xb1, 0x04, 0xe8, 0x16,  0x00, 0x5b, 0x72, 0xc8,  0x81, 0x3f, 0x4d, 0x5a,  0x75, 0xa7, 0x81, 0xbf,
 167           0x00, 0x02, 0x42, 0x4a,  0x75, 0x9f, 0xea, 0x00,  0x02, 0x70, 0x00, 0x50,  0x52, 0x51, 0x91, 0x92,
 168           0x33, 0xd2, 0xf7, 0x76,  0x18, 0x91, 0xf7, 0x76,  0x18, 0x42, 0x87, 0xca,  0xf7, 0x76, 0x1a, 0x8a,
 169           0xf2, 0x8a, 0x56, 0x24,  0x8a, 0xe8, 0xd0, 0xcc,  0xd0, 0xcc, 0x0a, 0xcc,  0xb8, 0x01, 0x02, 0xcd,
 170           0x13, 0x59, 0x5a, 0x58,  0x72, 0x09, 0x40, 0x75,  0x01, 0x42, 0x03, 0x5e,  0x0b, 0xe2, 0xcc, 0xc3,
 171           0x03, 0x18, 0x01, 0x27,  0x0d, 0x0a, 0x49, 0x6e,  0x76, 0x61, 0x6c, 0x69,  0x64, 0x20, 0x73, 0x79,
 172           0x73, 0x74, 0x65, 0x6d,  0x20, 0x64, 0x69, 0x73,  0x6b, 0xff, 0x0d, 0x0a,  0x44, 0x69, 0x73, 0x6b,
 173           0x20, 0x49, 0x2f, 0x4f,  0x20, 0x65, 0x72, 0x72,  0x6f, 0x72, 0xff, 0x0d,  0x0a, 0x52, 0x65, 0x70,
 174           0x6c, 0x61, 0x63, 0x65,  0x20, 0x74, 0x68, 0x65,  0x20, 0x64, 0x69, 0x73,  0x6b, 0x2c, 0x20, 0x61,
 175           0x6e, 0x64, 0x20, 0x74,  0x68, 0x65, 0x6e, 0x20,  0x70, 0x72, 0x65, 0x73,  0x73, 0x20, 0x61, 0x6e,
 176           0x79, 0x20, 0x6b, 0x65,  0x79, 0x0d, 0x0a, 0x00,  0x49, 0x4f, 0x20, 0x20,  0x20, 0x20, 0x20, 0x20,
 177           0x53, 0x59, 0x53, 0x4d,  0x53, 0x44, 0x4f, 0x53,  0x20, 0x20, 0x20, 0x53,  0x59, 0x53, 0x80, 0x01,
 178           0x00, 0x57, 0x49, 0x4e,  0x42, 0x4f, 0x4f, 0x54,  0x20, 0x53, 0x59, 0x53,  0x00, 0x00, 0x55, 0xaa
 179          };
C51 COMPILER V7.06   MASS_STG                                                              10/19/2007 15:26:26 PAGE 4   

 180          /****************************************************************************************
 181          Descriptor      Fullfill Blocks
 182          *****************************************************************************************/
 183          code    Device_Descriptor       device_descriptor = 
 184          {
 185                  0x12,                   //Descriptor Length
 186                  0x01,                   //Descriptor Type
 187                  0x0002,                 //bcdUSB USB2.0 Protocal
 188                  //0x1001,
 189                  0x00,                   //Device Class: Mass Storage
 190                  0x00,                   //Sub Device Class
 191                  0x00,                   //Device Protocal
 192                  0x40,                   //Max Packet size
 193                  0x1234,                 //ID Vendor
 194                  0x5678,                 //Product ID
 195                  0x0000,                 //BCD Device
 196                  0x00,
 197                  0x00,
 198                  0x00,
 199                  0x01                    //Number of Configurations
 200                          
 201          } ;     

⌨️ 快捷键说明

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