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

📄 chap_9.lst

📁 D12 USB源代码 硬盘
💻 LST
字号:
C51 COMPILER V7.06   CHAP_9                                                                02/17/2004 14:42:21 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE CHAP_9
OBJECT MODULE PLACED IN Chap_9.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE Chap_9.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:            CHAP_9.C
  10             // Author:           Hilbert Zhang ZhenYu
  11             // Created:          Oct. 1 99
  12             // Modified:
  13             // Revision:                 0.0.
  14             //
  15             //*************************************************************************
  16          */
  17          
  18          #include <reg51.h>                /* special function register declarations   */
  19          
  20          #undef   GLOBAL_EXT
  21          
  22          #include "SysCnfg.h"
  23          #include "BasicTyp.H"
  24          
  25          #include "usb100.h"
  26          
  27          #include "Common.h"
  28          #include "Hal4Sys.h"
  29          #include "Hal4d12.h"
  30          #include "mainloop.h"
  31          #include "chap_9.h"
  32          
  33          /*
  34             //*************************************************************************
  35             // Public Data
  36             //*************************************************************************
  37          */
  38          
  39          // bit Flags
  40          STRUC_EXT BITFLAGS BDATA_SEG  bFlags;
  41          
  42          // MCU Timer bit flags
  43          BIT_EXT     MCUBF_Timer;
  44          INT8_EXT   Hal4Sys_ClockTicks;
  45          
  46          // D12 bit flags
  47          BIT_EXT     D12BF_SetupOverwritten;
  48          BIT_EXT     D12BF_Configuration;
  49          
  50          //USB
  51          // DefaultControlPipe Finite State Machine [One-Hot]
  52          INT8_EXT BDATA_SEG DCPFSMstate;
  53          BIT_EXT     DCPFSM_SetupProc;
  54          BIT_EXT     DCPFSM_DataIn;
  55          BIT_EXT     DCPFSM_DataOut;
C51 COMPILER V7.06   CHAP_9                                                                02/17/2004 14:42:21 PAGE 2   

  56          BIT_EXT     DCPFSM_COhandshake;
  57          BIT_EXT     DCPFSM_CIhandshake;
  58          BIT_EXT     DCPFSM_Stall;
  59          //      DCP FSM
  60          //      SETUP Stage -> SETUP Proc -> DATA OUT Stage -> CONTROL OUT Handshake -> STATUS Stage -> IDLE
  61          //      SETUP Stage -> SETUP Proc -> CONTROL OUT Handshake -> STATUS Stage -> IDLE
  62          //      SETUP Stage -> SETUP Proc -> DATA IN Stage-> CONTROL IN Handshake ->STATUS Stage -> IDLE
  63          //
  64          
  65          
  66          // USB Device Request
  67          STRUC_EXT   DEVICE_REQUEST DCPDeviceRequest;
  68          INT8_EXT    UsbReq_Recipient;
  69          INT8_EXT    UsbReq_Type;
  70          INT8_EXT    UsbReq_Request;
  71          BIT_EXT     REQBF_DCPRequest_dir;
  72          BIT_EXT     REQBF_StallDCPRequest;
  73          BIT_EXT     REQBF_DCPRequest_EPdir;
  74          
  75          
  76          // Default Control Pipe Tansfer DCPXfer
  77          INT8_EXT BDATA_SEG Xfer_Space;
  78          BIT_EXT     DCPXfer_atMCUCODE;
  79          BIT_EXT     DCPXfer_atMCURAM;
  80          BIT_EXT     DCPXfer_atEEROM;
  81          BIT_EXT     DCPXfer_atATA;
  82          
  83          INT16_EXT  DCPXfer_wResidue;
  84          INT8_EXT   * DCPXfer_pData;
  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          BIT_EXT     BOTBF_StallAtBulkOut;
 101          BIT_EXT     BOTBF_StallAtBulkIn;
 102          
 103          BIT_EXT     BOTXfer_atRAM;
 104          BIT_EXT     BOTXfer_atATA;
 105          BIT_EXT     BOTXfer_atROM;
 106          
 107          
 108          /*
 109          //*************************************************************************
 110          //  Public temp var
 111          //*************************************************************************
 112          */
 113          
 114          //  Public temp var
 115          STRUC_EXT   FLEXI_INT32 tempvars4UsbReq;
 116          INT8_EXT BDATA_SEG FlexByte;
 117          BIT_EXT     FlexByte_b0 ;
C51 COMPILER V7.06   CHAP_9                                                                02/17/2004 14:42:21 PAGE 3   

 118          BIT_EXT     FlexByte_b1;
 119          BIT_EXT     FlexByte_b2;
 120          BIT_EXT     FlexByte_b3;
 121          BIT_EXT     FlexByte_b4;
 122          BIT_EXT     FlexByte_b5;
 123          BIT_EXT     FlexByte_b6;
 124          BIT_EXT     FlexByte_b7;
 125          
 126          
 127          /*
 128             //*************************************************************************
 129             // Private temp var
 130             //*************************************************************************
 131          */
 132          
 133          /*
 134             //*************************************************************************
 135             // USB Device Descriptor
 136             //*************************************************************************
 137          */
 138          //设备描述符
 139          code USB_DEVICE_DESCRIPTOR DeviceDescr =
 140          {
 141                  sizeof(USB_DEVICE_DESCRIPTOR),         // 设备描述符长度
 142                  USB_DEVICE_DESCRIPTOR_TYPE,            // 设备描述符类型=01
 143                  SWAP(0x0100),                          // 协议版本
 144              0,                                     // 测试设备类型
 145                  0,                                     // 设备子类
 146              0,                                     // 设备协议
 147                  EP0_PACKET_SIZE,                       // 端点0最大数据包大小,=10H
 148             
 149              SWAP(0x0693),
 150              SWAP(0x0003),
 151          
 152              SWAP(0x0100),               // 设备系列号
 153              STR_INDEX_MANUFACTURER,     // 厂商描述符字符串索引,=01H
 154                  STR_INDEX_PRODUCT,          // 产品描述符字符串索引,=02H
 155                  STR_INDEX_SERIALNUMBER,     // 设序列号字符串索引,=03H
 156              1                           // 可能备置数
 157          };
 158          
 159          #define NUM_ENDPOINTS   2         //定义除主控端点外的端点数
 160          
 161          #define CONFIG_DESCRIPTOR_LENGTH    (sizeof(USB_CONFIGURATION_DESCRIPTOR) + sizeof(USB_INTERFACE_DESCRIPTO
             -R) + (NUM_ENDPOINTS * sizeof(USB_ENDPOINT_DESCRIPTOR)))
 162          
 163          //设备配置描述符
 164          code USB_CONFIGURATION_DESCRIPTOR ConfigDescr =
 165          {
 166              sizeof(USB_CONFIGURATION_DESCRIPTOR),
 167              USB_CONFIGURATION_DESCRIPTOR_TYPE,      // 类型,=02H
 168              SWAP(CONFIG_DESCRIPTOR_LENGTH),         // 返回整个数据长度。包括该配置所返回的所有描述符(配置、接口

⌨️ 快捷键说明

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