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

📄 usb_main.lst

📁 PDIUSBD12与51接口的固件KEIL6.23调试通过
💻 LST
📖 第 1 页 / 共 5 页
字号:
1062          
1063          //P81厂商请求函数-PROTODMA.C
1064          //===============================================================
1065          //===============================================================
1066          void get_firmware_version()
1067          {
1068   1              unsigned char i;
1069   1      
1070   1              i = 0x30; // firmware version number
1071   1              single_transmit((unsigned char *)&i, 1);
1072   1      
1073   1      }
1074          
1075          void get_buffer_size()
1076          {
1077   1              unsigned char i[4];
1078   1      
1079   1              if(bNoRAM == TRUE) {
1080   2                      i[0] = EP2_PACKET_SIZE;
1081   2                      i[1] = 0;
1082   2                      i[2] = 0;
1083   2                      i[3] = 0;
1084   2              } else {
1085   2                      i[0] = 0;
1086   2                      i[1] = 1;
1087   2                      i[2] = 0;
1088   2                      i[3] = 0;
1089   2              }
1090   1              single_transmit(i, 4);
1091   1      
1092   1      }
1093          
1094          void setup_dma_request()
1095          {
1096   1              memcpy((unsigned char *)&ioRequest + ControlData.DeviceRequest.wValue,
1097   1                      ControlData.dataBuffer,
1098   1                      ControlData.DeviceRequest.wLength);
1099   1      
1100   1              ioRequest.uSize = SWAP(ioRequest.uSize);
1101   1              ioRequest.uAddressL = SWAP(ioRequest.uAddressL);
1102   1      
1103   1              if(ioRequest.uSize > DMA_BUFFER_SIZE) { // Unaccepted request
1104   2                      stall_ep0();
1105   2              }
1106   1              else if(bNoRAM == TRUE && ioRequest.uSize > EP2_PACKET_SIZE) {
1107   2                      stall_ep0();
1108   2              }
1109   1              else {
C51 COMPILER V6.23a  USB_MAIN                                                              12/24/2005 14:35:50 PAGE 19  

1110   2                      if(bEPPflags.bits.dma_state == DMA_IDLE) {
1111   3                              DISABLE;
1112   3                              bEPPflags.bits.setup_dma ++;
1113   3                              ENABLE;
1114   3                      }
1115   2                      else {
1116   3                              DISABLE;
1117   3                              bEPPflags.bits.dma_state = DMA_PENDING;
1118   3                              ENABLE;
1119   3                      }
1120   2      
1121   2              } // else if accepted request
1122   1      }
1123          
1124          void read_write_register(void)
1125          {
1126   1              unsigned char i;
1127   1      
1128   1              if(ControlData.DeviceRequest.bmRequestType & (unsigned char)USB_ENDPOINT_DIRECTION_MASK) {
1129   2      
1130   2                      if(bEPPflags.bits.verbose)
1131   2                              printf("Read Registers: Offset = 0x%x, Length = 0x%x, Index = 0x%x.\n",
1132   2                                      ControlData.DeviceRequest.wValue,
1133   2                                      ControlData.DeviceRequest.wLength,
1134   2                                      ControlData.DeviceRequest.wIndex);
1135   2      
1136   2                      if(ControlData.DeviceRequest.wIndex == GET_FIRMWARE_VERSION &&
1137   2                              ControlData.DeviceRequest.wValue == 0 &&
1138   2                              ControlData.DeviceRequest.wLength == 1)
1139   2                              get_firmware_version();
1140   2                      else
1141   2                      if(ControlData.DeviceRequest.wIndex == GET_BUFFER_SIZE &&
1142   2                              ControlData.DeviceRequest.wValue == 0 &&
1143   2                              ControlData.DeviceRequest.wLength == 4)
1144   2                              get_buffer_size();
1145   2                      else
1146   2                              stall_ep0();
1147   2      
1148   2              }       // if read register
1149   1              else{
1150   2                      if(bEPPflags.bits.verbose) {
1151   3      
1152   3                              //printf("Write Registers: Offset = 0x%x, Length = 0x%x, Index = 0x%x.\n",
1153   3                              //      ControlData.DeviceRequest.wValue,
1154   3                              //      ControlData.DeviceRequest.wLength,
1155   3                              //      ControlData.DeviceRequest.wIndex);
1156   3      
1157   3                              //printf("Data: ");
1158   3                              for(i = 0; i < ControlData.DeviceRequest.wLength; i ++)
1159   3                                      printf("0x%bx, ", *((ControlData.dataBuffer)+i));
1160   3                              printf("\n");
1161   3                      }
1162   2      
1163   2                      if(ControlData.DeviceRequest.wIndex == SETUP_DMA_REQUEST &&
1164   2                              ControlData.DeviceRequest.wValue == 0 &&
1165   2                              ControlData.DeviceRequest.wLength == 6)
1166   2                              setup_dma_request();
1167   2                              //stall_ep0();
1168   2                      else
1169   2                              stall_ep0();
1170   2              }       // if write register
1171   1      }
C51 COMPILER V6.23a  USB_MAIN                                                              12/24/2005 14:35:50 PAGE 20  

1172          //P81厂商请求函数-PROTODMA.C  ----结束
1173          //===============================================================
1174          //===============================================================
C51 COMPILER V6.23a  USB_MAIN                                                              12/24/2005 14:35:50 PAGE 21  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P0 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0080H  1
P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
bNoRAM . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0002H  1
P2 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A0H  1
inportb. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0003H  -----
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
AC . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D6H  1
T0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
_IO_REQUEST. . . . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  6
  uAddressL. . . . . . . . . . . . . .  MEMBER   -----  U_INT    0000H  2
  bAddressH. . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0002H  1
  uSize. . . . . . . . . . . . . . . .  MEMBER   -----  U_INT    0003H  2
  bCommand . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0005H  1
T1 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
T2 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
ULONG. . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_LONG   -----  4
stall_ep0. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
USB_STRING_DESCRIPTOR. . . . . . . . .  TYPEDEF  -----  STRUCT   -----  3
  bLength. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  bDescriptorType. . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  bString. . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0002H  1
InterfaceDescr . . . . . . . . . . . .  PUBLIC   CODE   STRUCT   0062H  9
USB_CONFIGURATION_DESCRIPTOR . . . . .  TYPEDEF  -----  STRUCT   -----  9
  bLength. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  bDescriptorType. . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  wTotalLength . . . . . . . . . . . .  MEMBER   -----  U_INT    0002H  2
  bNumInterfaces . . . . . . . . . . .  MEMBER   -----  U_CHAR   0004H  1
  bConfigurationValue. . . . . . . . .  MEMBER   -----  U_CHAR   0005H  1
  iConfiguration . . . . . . . . . . .  MEMBER   -----  U_CHAR   0006H  1
  bmAttributes . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0007H  1
  MaxPower . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0008H  1
USB_HUB_DESCRIPTOR . . . . . . . . . .  TYPEDEF  -----  STRUCT   -----  71
  bDescriptorLength. . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  bDescriptorType. . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  bNumberOfPorts . . . . . . . . . . .  MEMBER   -----  U_CHAR   0002H  1
  wHubCharacteristics. . . . . . . . .  MEMBER   -----  U_INT    0003H  2
  bPowerOnToPowerGood. . . . . . . . .  MEMBER   -----  U_CHAR   0005H  1
  bHubControlCurrent . . . . . . . . .  MEMBER   -----  U_CHAR   0006H  1
  bRemoveAndPowerMask. . . . . . . . .  MEMBER   -----  ARRAY    0007H  64
PUSB_POWER_DESCRIPTOR. . . . . . . . .  TYPEDEF  -----  PTR      -----  3
P0_0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0080H  1
init_config. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
P1_0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
P0_1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0081H  1
FL . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D1H  1
P2_0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A0H  1
P1_1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
P0_2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0082H  1
size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
reconnect_USB. . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  clk_cnt. . . . . . . . . . . . . . .  AUTO     DATA   U_LONG   0000H  4
_D12_SelectEndpoint. . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  bEndp. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  c. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
P3_0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
P2_1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A1H  1
C51 COMPILER V6.23a  USB_MAIN                                                              12/24/2005 14:35:50 PAGE 22  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P1_2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0092H  1
P0_3 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0083H  1
P3_1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
P2_2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A2H  1
P1_3 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0093H  1
P0_4 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0084H  1
_D12_ReadLastTransactionStatus . . . .  PUBLIC   CODE   PROC     0000H  -----
  bEndp. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
USB_ENDPOINT_DESCRIPTOR. . . . . . . .  TYPEDEF  -----  STRUCT   -----  7
  bLength. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  bDescriptorType. . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  bEndpointAddress . . . . . . . . . .  MEMBER   -----  U_CHAR   0002H  1
  bmAttributes . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0003H  1
  wMaxPacketSize . . . . . . . . . . .  MEMBER   -----  U_INT    0004H  2
  bInterval. . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0006H  1
P3_2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
P2_3 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A3H  1
P1_4 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0094H  1
P0_5 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0085H  1
PUSB_INTERFACE_DESCRIPTOR. . . . . . .  TYPEDEF  -----  PTR      -----  3
EXF2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CEH  1
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
P3_3 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
P2_4 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A4H  1
P1_5 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0095H  1
P0_6 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0086H  1
_epp_flags . . . . . . . . . . . . . .  * TAG *  -----  UNION    -----  2
  bits . . . . . . . . . . . . . . . .  MEMBER   -----  STRUCT   0000H  2
  value. . . . . . . . . . . . . . . .  MEMBER   -----  U_INT    0000H  2
P3_4 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
P2_5 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A5H  1
P1_6 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0096H  1
P0_7 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0087H  1
P3_5 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
P2_6 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A6H  1
P1_7 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0097H  1
set_address. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
P3_6 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
P2_7 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A7H  1
P3_7 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
_D12_AcknowledgeEndpoint . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  endp . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
main_rxdone. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  len. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0004H  1
CY . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D7H  1
INT0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
_D12_SetMode . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  bConfig. . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  bClkDiv. . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
INT1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
main_txdone. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  len. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
set_feature. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  endp . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
C51 COMPILER V6.23a  USB_MAIN                                                              12/24/2005 14:35:50 PAGE 23  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


  bRecipient . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
_outportdata . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  value. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
_USB_POWER_DESCRIPTOR. . . . . . . . .  * TAG *  -----  STRUCT   -----  18
  bLength. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  bDescriptorType. . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  bCapabilitiesFlags . . . . . . . . .  MEMBER   -----  U_CHAR   0002H  1
  EventNotification. . . . . . . . . .  MEMBER   -----  U_INT    0003H  2
  D1LatencyTime. . . . . . . . . . . .  MEMBER   -----  U_INT    0005H  2
  D2LatencyTime. . . . . . . . . . . .  MEMBER   -----  U_INT    0007H  2
  D3LatencyTime. . . . . . . . . . . .  MEMBER   -----  U_INT    0009H  2
  PowerUnit. . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   000BH  1
  D0PowerConsumption . . . . . . . . .  MEMBER   -----  U_INT    000CH  2
  D1PowerConsumption . . . . . . . . .  MEMBER   -----  U_INT    000EH  2
  D2PowerConsumption . . . . . . . . .  MEMBER   -----  U_INT    0010H  2
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
get_configuration. . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  c. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
T2EX . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
_USB_INTERFACE_DESCRIPTOR. . . . . . .  * TAG *  -----  STRUCT   -----  9
  bLength. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  bDescriptorType. . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  bInterfaceNumber . . . . . . . . . .  MEMBER   -----  U_CHAR   0002H  1
  bAlternateSetting. . . . . . . . . .  MEMBER   -----  U_CHAR   0003H  1

⌨️ 快捷键说明

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