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

📄 rbc.lst

📁 D12 USB源代码 硬盘
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V7.06   RBC                                                                   02/17/2004 14:42:23 PAGE 1   


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

stmt level    source

   1          /*这时SCSI基本命令的子集。这部分代码用于对主机发出的SCSI命令进行解码
   2          /*
   3          ////////////////////////////////////////////////////////////////////////////////////
   4          //
   5          // Copyright (c) 1999-2003 PHILIPS Semiconductors - APIC
   6          //
   7          // Module Name:
   8          //
   9          //      rbc.c
  10          //
  11          // Abstract:
  12          //
  13          //    These are the structures and defines used in the Reduced Block Command set
  14          //
  15          // Author:
  16          //
  17          //     Hilbert Zhang ZhenYu
  18          //
  19          // Revision History:
  20          //
  21          //              Created  01 Jun. 1999
  22          //
  23          // Copyright @ 1999-2003, PHILIPS Semiconductors - APIC. All rights reserved.
  24          //
  25          */
  26          
  27          #include <reg51.h>                /* special function register declarations   */
  28          
  29          #undef   GLOBAL_EXT
  30          
  31          #include "SysCnfg.h"
  32          #include "BasicTyp.h"
  33          #include "common.h"
  34          
  35          #include "Hal4D12.h"
  36          
  37          #include "ATA.h"
  38          #include "RBC.h"
  39          #include "RBCCmd.h"
  40          #include "Hal4ata.h"
  41          #include "Hal4Sys.h"
  42          
  43          
  44          #include "TPBulk.h"
  45          
  46          
  47          /*
  48          //*************************************************************************
  49          //  Public Data
  50          //*************************************************************************
  51          */
  52          
  53          //sbit ATA_RD_N           = 0xB6;
  54          
  55          // bit Flags
C51 COMPILER V7.06   RBC                                                                   02/17/2004 14:42:23 PAGE 2   

  56          STRUC_EXT BITFLAGS BDATA_SEG bFlags;
  57          
  58          // MCU Timer bit flags
  59          BIT_EXT     MCUBF_Timer;
  60          INT8_EXT   Hal4Sys_ClockTicks;
  61          
  62          // D12 bit flags
  63          BIT_EXT     D12BF_SetupOverwritten;
  64          BIT_EXT     D12BF_Configuration;
  65          
  66          //USB
  67          // DefaultControlPipe Finite State Machine [One-Hot]
  68          INT8_EXT BDATA_SEG DCPFSMstate;
  69          BIT_EXT     DCPFSM_SetupProc;
  70          BIT_EXT     DCPFSM_DataIn;
  71          BIT_EXT     DCPFSM_DataOut;
  72          BIT_EXT     DCPFSM_COhandshake;
  73          BIT_EXT     DCPFSM_CIhandshake;
  74          BIT_EXT     DCPFSM_Stall;
  75          //      DCP FSM
  76          //      SETUP Stage -> SETUP Proc -> DATA OUT Stage -> CONTROL OUT Handshake -> STATUS Stage -> IDLE
  77          //      SETUP Stage -> SETUP Proc -> CONTROL OUT Handshake -> STATUS Stage -> IDLE
  78          //      SETUP Stage -> SETUP Proc -> DATA IN Stage-> CONTROL IN Handshake ->STATUS Stage -> IDLE
  79          //
  80          INT16_EXT  DCPXfer_wResidue;
  81          INT8_EXT   * DCPXfer_pData;
  82          
  83          
  84          // USB Device Request
  85          STRUC_EXT   DEVICE_REQUEST DCPDeviceRequest;
  86          INT8_EXT    UsbReq_Recipient;
  87          INT8_EXT    UsbReq_Type;
  88          INT8_EXT    UsbReq_Request;
  89          BIT_EXT     REQBF_DCPRequest_dir;
  90          BIT_EXT     REQBF_StallDCPRequest;
  91          BIT_EXT     REQBF_DCPRequest_EPdir;
  92          
  93          // Bulk-Only TP Finite State Machine [One-Hot]
  94          INT8_EXT BDATA_SEG BOTFSMstate;
  95          BIT_EXT     BOTFSM_CBWProc;
  96          BIT_EXT     BOTFSM_DataIn;
  97          BIT_EXT     BOTFSM_DataOut;
  98          BIT_EXT     BOTFSM_CSWProc;
  99          BIT_EXT     BOTFSM_CSW;
 100          BIT_EXT     BOTFSM_IDLE;
 101          BIT_EXT     BOTFSM_Stall;
 102          //      BOT FSM
 103          //      IDLE Stage ->  CBW -> CBW Proc -> DATA OUT Stage -> CSW Proc -> CSW Stage -> IDLE
 104          //      IDLE Stage ->  CBW -> CBW Proc -> DATA IN Stage -> CSW Proc -> CSW Stage -> IDLE
 105          //      STALL Stage ->  IDLE
 106          //
 107          BIT_EXT     BOTXfer_Abort;
 108          INT16_EXT   BOTXfer_wResidue;
 109          INT8_EXT    * BOTXfer_pData;
 110          STRUC_EXT TPBLK_STRUC   DATA_SEG        TPBulk_Block;
 111          #define     TPBulk_CBW                          TPBulk_Block.TPBulk_CommandBlock
 112          #define         CBW_wXferLen                    TPBulk_CBW.dCBW_DataXferLen
 113          #define     RBC_CDB                                     TPBulk_CBW.cdbRBC
 114          #define     RBC_LUN                                     TPBulk_CBW.bCBW_LUN
 115          #define     TPBulk_CSW                          TPBulk_Block.TPBulk_CommandStatus
 116          #define     CSW_wResidue                        ((INT16)TPBulk_CSW.dCSW_DataResidue)
 117          
C51 COMPILER V7.06   RBC                                                                   02/17/2004 14:42:23 PAGE 3   

 118          BIT_EXT     BOTBF_StallAtBulkOut;
 119          BIT_EXT     BOTBF_StallAtBulkIn;
 120          
 121          // Xfer_Space
 122          INT8_EXT BDATA_SEG Xfer_Space;
 123          // Default Control Pipe Tansfer DCPXfer
 124          BIT_EXT     DCPXfer_atMCUCODE;
 125          BIT_EXT     DCPXfer_atMCURAM;
 126          BIT_EXT     DCPXfer_atEEROM;
 127          BIT_EXT     DCPXfer_atATA;
 128          // Bulk Only Xfer space
 129          BIT_EXT     BOTXfer_atRAM;
 130          BIT_EXT     BOTXfer_atATA;
 131          BIT_EXT     BOTXfer_atROM;
 132          
 133          STRUC_EXT HW_ATA_DEVICES_EXTENSION      Hal4ATA_DevExt;
 134          #define ATADevExt_IDData    Hal4ATA_DevExt.IdentifyData
 135          
 136          BIT_EXT     ATABF_IsAttached;
 137          BIT_EXT     ATABF_IsSupportMultiSector;
 138          BIT_EXT     ATABF_IDEXfer_dir;
 139          BIT_EXT     ATABF_IsSkipSetParameters;
 140          
 141          INT8_EXT    Hal4ATA_SectCntInBlk;
 142          /*
 143          //*************************************************************************
 144          //  Public temp var
 145          //*************************************************************************
 146          */
 147          STRUC_EXT   FLEXI_INT32 tempvars4UsbReq;
 148          INT8_EXT BDATA_SEG FlexByte;
 149          BIT_EXT     FlexByte_b0;
 150          BIT_EXT     FlexByte_b1;
 151          BIT_EXT     FlexByte_b2;
 152          BIT_EXT     FlexByte_b3;
 153          BIT_EXT     FlexByte_b4;
 154          BIT_EXT     FlexByte_b5;
 155          BIT_EXT     FlexByte_b6;
 156          BIT_EXT     FlexByte_b7;
 157          
 158          /*
 159          //*************************************************************************
 160          //  Private Data
 161          //*************************************************************************
 162          */
 163          code REQUEST_SENSE_DATA   Req_SenseData=
 164          {
 165                  //0x70, 0x00, 0x06, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x29,
 166              //0x00, 0x00, 0x00, 0x00, 0x00
 167          
 168          
 169               0x70, // INT8 ResponseCode : 7;
 170                   0,     //   INT8 Valid : 1;
 171          
 172                   0,//   INT8 SegmentNum;
 173          
 174                   0x5,//   INT8 SenseKey : 4; 5= illegal request
 175                   0,  // INT8 Reserved0 : 1;
 176                   0,//   INT8 WrongLenIndicator : 1;
 177                   0,//   INT8 EndofMedium : 1;
 178                   0,//   INT8 FileMark : 1;
 179          
C51 COMPILER V7.06   RBC                                                                   02/17/2004 14:42:23 PAGE 4   

 180                   0,//   INT8 Info_0;
 181                   0,//   INT8 Info_1;
 182                   0,//   INT8 Info_2;
 183                   0,//   INT8 Info_3;
 184          
 185                  0xA,//    INT8 AdditionalSenseLen;
 186          
 187                  0,//    INT8 CommandSpecInfo_0;
 188                  0,//    INT8 CommandSpecInfo_1;
 189                  0,//    INT8 CommandSpecInfo_2;
 190                  0,//    INT8 CommandSpecInfo_3;
 191          
 192                  0x29,//    INT8 ASC;
 193                  0,//    INT8 ASCQ;
 194                  0,//    INT8 FieldReplacableUnitCode;
 195                  0,//    INT8 SenseKeySpec_0 : 7;
 196                  0,//    INT8 SenseKeySpecValid : 1;
 197                  0,//    INT8 SenseKeySpec_1;
 198                  0 //    INT8 SenseKeySpec_2;
 199          
 200                  };
 201          
 202          RBC_PROPERTY                    RBC_PropertyData;
 203          
 204          
 205          
 206          #define PARAMETER_LIST_LENGTH   (sizeof(MODE_PARAMETER_HEAD)+sizeof(MODE_PARAMETER_HEAD))
 207          
 208          
 209          code MODE_PARAMETER_HEAD ParaHeadMask =
 210          {
 211                  PARAMETER_LIST_LENGTH-1,    /* mode data length*/
 212                  0,                          /* medium type*/
 213                  0,                          /* device spec Param*/
 214                  0                           /* block Descriptor length*/
 215          };
 216          
 217          code MODE_RBC_DEVICE_PARAMETERS_PAGE ParaPageMask =
 218          {
 219                  MODE_PAGE_RBC_DEVICE_PARAMETERS,
 220                  0,      /*Reserved*/
 221                  0,      /*PageSavable*/
 222          
 223                  0x00,   /*PageLength*/
 224          
 225                  0,      /*WriteCacheDisable*/
 226                  00,     /*Reserved*/
 227          
 228                  {
 229                          /*Logical block Size = 512 Bytes*/
 230                          0x00,
 231                          0x00
 232                  },
 233          
 234                  {
 235                          /*Number of logical blocks*/
 236                          0x00,
 237                          0x00,
 238                          0x00,
 239                          0x00,
 240                          0x00
 241                  },
C51 COMPILER V7.06   RBC                                                                   02/17/2004 14:42:23 PAGE 5   

 242          
 243                  0x00,   /*Power/Peformance*/
 244          
 245                  0,      /*LockDisable*/
 246                  0,      /*FormatDisable*/
 247                  0,      /*WriteDisable*/
 248                  0,      /*ReadDisable*/
 249                  0x0,    /*Reserved*/
 250          
 251                  0x00    /*Reserved*/
 252          };
 253          
 254          code MODE_PARAMETER_HEAD DefaultParaHead =
 255          {
 256                  PARAMETER_LIST_LENGTH-1,    /* mode data length*/
 257                  0,                          /* medium type*/
 258                  0,                          /* device spec Param*/
 259                  0                           /* block Descriptor length*/
 260          };
 261          
 262          code MODE_RBC_DEVICE_PARAMETERS_PAGE DefaultParaPage =
 263          {
 264                  MODE_PAGE_RBC_DEVICE_PARAMETERS,
 265                  0,      /*Reserved*/
 266                  1,      /*PageSavable*/
 267          
 268                  0x0B,   /*PageLength*/
 269          
 270                  0,      /*WriteCacheDisable*/
 271                  00,     /*Reserved*/
 272          
 273                  {
 274                          /*Logical block Size = 512 Bytes*/
 275                          0x02,
 276                          0x00
 277                  },
 278          
 279                  {
 280                          /*Number of logical blocks*/
 281                          0x00,
 282                          0x00,

⌨️ 快捷键说明

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