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

📄 tpbulk.lst

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


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

stmt level    source

   1          /*
   2          //*************************************************************************
   3          //
   4          //                  P H I L I P S   P R O P R I E T A R Y
   5          //
   6          //           COPYRIGHT (c)   1999 BY PHILIPS SINGAPORE.
   7          //                     --  ALL RIGHTS RESERVED  --
   8          //
   9          // File Name:   TPBulk.C
  10          // Author:              ZhenYu Zhang
  11          // Created:             Nov. 26, 1999
  12          // Modified:
  13          // Revision:    0.0
  14          //
  15          //*************************************************************************
  16          //
  17          // USB Mass Storage
  18          //       Class Spec  1.0 Oct. 1998
  19          //       Bulk Only Transport 1.0 Jun.21 1999
  20          //
  21          // Notes:
  22          //   3. Share Mem between CBW & CSW to minimize Operations as well as RAM
  23          //   2. CSW structure size is 13[0xd] bytes
  24          //   1. bInterfaceProtocol for Bulk-Only Transport
  25          //           0x50 = 'P'
  26          //
  27          //
  28          //
  29          */
  30          
  31          #include <reg51.h>                /* special function register declarations   */
  32          #undef  GLOBAL_EXT
  33          #include "SysCnfg.h"
  34          #include "BasicTyp.h"
  35          #include "usb100.h"
  36          #include "common.h"
  37          #include "Hal4Sys.h"
  38          #include "Hal4d12.h"
  39          #include "ATA.h"
  40          #include "RBCCmd.h"
  41          #include "RBC.h"
  42          #include "HAL4ATA.h"
  43          #include "MainLoop.h"
  44          #include "Chap_9.h"
  45          #include "TPBulk.h"
  46          
  47          /*
  48          //*************************************************************************
  49          //  Public Data
  50          //*************************************************************************
  51          */
  52          // bit Flags
  53          STRUC_EXT BITFLAGS BDATA_SEG bFlags;
  54          // MCU Timer bit flags
  55          BIT_EXT         MCUBF_Timer;
C51 COMPILER V7.06   TPBULK                                                                02/17/2004 14:42:23 PAGE 2   

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

 118          BIT_EXT     DCPXfer_atATA;
 119          // Bulk Only Tranport Xfer Space
 120          BIT_EXT     BOTXfer_atRAM;
 121          BIT_EXT     BOTXfer_atATA;
 122          BIT_EXT     BOTXfer_atROM;
 123          
 124          /*
 125          //*************************************************************************
 126          //  Public temp var
 127          //*************************************************************************
 128          */
 129          
 130          //  Public temp var
 131          STRUC_EXT   FLEXI_INT32 tempvars4UsbReq;
 132          INT8_EXT BDATA_SEG FlexByte;
 133          BIT_EXT     FlexByte_b0 ;
 134          BIT_EXT     FlexByte_b1;
 135          BIT_EXT     FlexByte_b2;
 136          BIT_EXT     FlexByte_b3;
 137          BIT_EXT     FlexByte_b4;
 138          BIT_EXT     FlexByte_b5;
 139          BIT_EXT     FlexByte_b6;
 140          BIT_EXT     FlexByte_b7;
 141          
 142          
 143          STRUC_EXT   HW_ATA_DEVICES_EXTENSION    Hal4ATA_DevExt;
 144          
 145          /*
 146          //*************************************************************************
 147          //  Private Data
 148          //*************************************************************************
 149          */
 150          
 151          
 152          /*
 153          //*************************************************************************
 154          //  Class Request Subroutines
 155          //  Public Functions
 156          //*************************************************************************
 157          */
 158          
 159          #define     USB_CLASS_REQUEST_USBSTOR_RESET         0xFF
 160          #define     USB_CLASS_REQUEST_USBSTOR_GETMAXLUN     0xFE
 161          
 162          /*
 163          //*************************************************************************
 164          //Bulk-Only TP-Bulk Hanlder
 165          //*************************************************************************
 166          */
 167          void TPBulk_CBWHandler( void )
 168          {
 169   1              //如果接收到的数据的长度与CBW长度一致,
 170   1              if(  sizeof(CBW) == Hal4D12_ReadEndpoint(4,EP2_PACKET_SIZE,(PINT8)&(TPBulk_CBW)) )
 171   1          {
 172   2                  if(TPBulksup_IsCBWValid())
 173   2                  {
 174   3                          RBC_Handler();    //有效CBW,命令处理
 175   3                              return;
 176   3                  }
 177   2              }

⌨️ 快捷键说明

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