📄 usbproto.src
字号:
; .\USBProto.SRC generated from: USBProto.c
; COMPILER INVOKED BY:
; C:\Keil\C51\BIN\C51.EXE USBProto.c DEBUG OBJECTEXTEND SRC(.\USBProto.SRC)
$NOMOD51
NAME USBPROTO
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
T0 BIT 0B0H.4
AC BIT 0D0H.6
MCU_D12CS BIT 090H.6
T1 BIT 0B0H.5
EA BIT 0A8H.7
IE DATA 0A8H
RD BIT 0B0H.7
ES BIT 0A8H.4
IP DATA 0B8H
RI BIT 098H.0
INT0 BIT 0B0H.2
CY BIT 0D0H.7
TI BIT 098H.1
INT1 BIT 0B0H.3
PS BIT 0B8H.4
SP DATA 081H
OV BIT 0D0H.2
WR BIT 0B0H.6
SBUF DATA 099H
PCON DATA 087H
SCON DATA 098H
TMOD DATA 089H
TCON DATA 088H
MCU_A0 BIT 090H.4
D12SUSPD BIT 0B0H.3
IE0 BIT 088H.1
IE1 BIT 088H.3
B DATA 0F0H
ACC DATA 0E0H
ET0 BIT 0A8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
TF1 BIT 088H.7
MCU_LED0 BIT 090H.2
RB8 BIT 098H.2
TH0 DATA 08CH
MCU_LED1 BIT 090H.3
EX0 BIT 0A8H.0
IT0 BIT 088H.0
TH1 DATA 08DH
TB8 BIT 098H.3
EX1 BIT 0A8H.2
IT1 BIT 088H.2
P BIT 0D0H.0
SM0 BIT 098H.7
TL0 DATA 08AH
SM1 BIT 098H.6
TL1 DATA 08BH
SM2 BIT 098H.5
PT0 BIT 0B8H.1
PT1 BIT 0B8H.3
RS0 BIT 0D0H.3
TR0 BIT 088H.4
RS1 BIT 0D0H.4
TR1 BIT 088H.6
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
DPH DATA 083H
DPL DATA 082H
REN BIT 098H.4
MCU_D12RST BIT 090H.7
MCU_SWM0 BIT 090H.0
RXD BIT 0B0H.0
MCU_SWM1 BIT 090H.1
TXD BIT 0B0H.1
F0 BIT 0D0H.5
PSW DATA 0D0H
?PR?reserved?USBPROTO SEGMENT CODE
?PR?get_status?USBPROTO SEGMENT CODE
?DT?get_status?USBPROTO SEGMENT DATA OVERLAYABLE
?PR?clear_feature?USBPROTO SEGMENT CODE
?DT?clear_feature?USBPROTO SEGMENT DATA OVERLAYABLE
?PR?set_feature?USBPROTO SEGMENT CODE
?DT?set_feature?USBPROTO SEGMENT DATA OVERLAYABLE
?PR?set_address?USBPROTO SEGMENT CODE
?PR?get_descriptor?USBPROTO SEGMENT CODE
?DT?get_descriptor?USBPROTO SEGMENT DATA OVERLAYABLE
?PR?get_configuration?USBPROTO SEGMENT CODE
?DT?get_configuration?USBPROTO SEGMENT DATA OVERLAYABLE
?PR?set_configuration?USBPROTO SEGMENT CODE
?PR?get_interface?USBPROTO SEGMENT CODE
?DT?get_interface?USBPROTO SEGMENT DATA OVERLAYABLE
?PR?set_interface?USBPROTO SEGMENT CODE
?PR?get_report?USBPROTO SEGMENT CODE
?DT?get_report?USBPROTO SEGMENT DATA OVERLAYABLE
?PR?get_idle?USBPROTO SEGMENT CODE
?DT?get_idle?USBPROTO SEGMENT DATA OVERLAYABLE
?PR?get_protocol?USBPROTO SEGMENT CODE
?PR?set_report?USBPROTO SEGMENT CODE
?PR?set_idle?USBPROTO SEGMENT CODE
?PR?set_protocol?USBPROTO SEGMENT CODE
?CO?USBPROTO SEGMENT CODE
?DT?USBPROTO SEGMENT DATA
EXTRN CODE (stall_ep0)
EXTRN CODE (init_config)
EXTRN CODE (_D12_SelectEndpoint)
EXTRN CODE (_D12_ReadLastTransactionStatus)
EXTRN CODE (_D12_SetAddressEnable)
EXTRN CODE (_D12_ReadEndpoint)
EXTRN DATA (?_D12_ReadEndpoint?BYTE)
EXTRN CODE (_single_transmit)
EXTRN CODE (_blinkLED)
EXTRN CODE (_code_transmit)
EXTRN DATA (bEPPflags)
EXTRN DATA (ControlData)
EXTRN CODE (_D12_SetEndpointStatus)
EXTRN IDATA (GenEpBuf)
EXTRN CODE (init_unconfig)
PUBLIC IDLE_TIME
PUBLIC sSTRING4
PUBLIC sSTRING3
PUBLIC sSTRING2
PUBLIC sSTRING1
PUBLIC csSTRING4
PUBLIC csSTRING3
PUBLIC csSTRING2
PUBLIC csSTRING1
PUBLIC LANG_ID
PUBLIC EP2_RXDescr
PUBLIC EP2_TXDescr
PUBLIC EP1_RXDescr
PUBLIC sConfiguration
PUBLIC DeviceDescr
PUBLIC REPORT_DESCRIPTOR
PUBLIC set_protocol
PUBLIC set_idle
PUBLIC set_report
PUBLIC get_protocol
PUBLIC get_idle
PUBLIC get_report
PUBLIC set_interface
PUBLIC get_interface
PUBLIC set_configuration
PUBLIC get_configuration
PUBLIC get_descriptor
PUBLIC set_address
PUBLIC set_feature
PUBLIC clear_feature
PUBLIC get_status
PUBLIC reserved
RSEG ?DT?set_feature?USBPROTO
?set_feature?BYTE:
endp?346: DS 1
bRecipient?347: DS 1
RSEG ?DT?get_configuration?USBPROTO
?get_configuration?BYTE:
c?650: DS 1
RSEG ?DT?get_idle?USBPROTO
?get_idle?BYTE:
c?1153: DS 1
RSEG ?DT?get_report?USBPROTO
?get_report?BYTE:
c?1052: DS 1
RSEG ?DT?get_status?USBPROTO
?get_status?BYTE:
endp?140: DS 1
txdat?141: DS 2
bRecipient?142: DS 1
c?143: DS 1
RSEG ?DT?get_interface?USBPROTO
?get_interface?BYTE:
txdat?851: DS 1
RSEG ?DT?clear_feature?USBPROTO
?clear_feature?BYTE:
endp?244: DS 1
bRecipient?245: DS 1
RSEG ?DT?get_descriptor?USBPROTO
?get_descriptor?BYTE:
bDescriptor?549: DS 1
RSEG ?DT?USBPROTO
IDLE_TIME: DS 1
RSEG ?CO?USBPROTO
REPORT_DESCRIPTOR:
DB 006H
DB 000H
DB 0FFH
DB 009H
DB 001H
DB 0A1H
DB 001H
DB 019H
DB 001H
DB 029H
DB 008H
DB 015H
DB 000H
DB 025H
DB 001H
DB 075H
DB 001H
DB 095H
DB 008H
DB 081H
DB 002H
DB 019H
DB 001H
DB 029H
DB 008H
DB 091H
DB 002H
DB 0C0H
DeviceDescr:
DB 012H
DB 001H
DW 00001H
DB 000H
DB 000H
DB 000H
DB 010H
DW 04242H
DW 00001H
DW 00001H
DB 001H
DB 002H
DB 000H
DB 001H
sConfiguration:
DB 009H
DB 002H
DW 02200H
DB 001H
DB 001H
DB 003H
DB 080H
DB 032H
DB 009H
DB 004H
DB 000H
DB 000H
DB 001H
DB 003H
DB 000H
DB 000H
DB 004H
DB 009H
DB 021H
DW 00001H
DB 000H
DB 001H
DB 022H
DW 01C00H
DB 007H
DB 005H
DB 081H
DB 003H
DW 01000H
DB 064H
EP1_RXDescr:
DB 007H
DB 005H
DB 001H
DB 003H
DW 01000H
DB 00AH
EP2_TXDescr:
DB 007H
DB 005H
DB 082H
DB 002H
DW 04000H
DB 00AH
EP2_RXDescr:
DB 007H
DB 005H
DB 002H
DB 002H
DW 04000H
DB 00AH
LANG_ID:
DB 004H
DB 003H
DB 009H
DB 004H
csSTRING1:
DW 0004DH
DW 00000H
DW 00079H
DW 00000H
DW 00055H
DW 00000H
DW 00053H
DW 00000H
DW 00042H
DW 00000H
csSTRING2:
DW 00044H
DW 00000H
DW 00065H
DW 00000H
DW 00063H
DW 00000H
DW 0006FH
DW 00000H
DW 00064H
DW 00000H
DW 00065H
DW 00000H
DW 00072H
DW 00000H
csSTRING3:
DW 00053H
DW 00000H
DW 00069H
DW 00000H
DW 0006DH
DW 00000H
DW 00070H
DW 00000H
DW 0006CH
DW 00000H
DW 00065H
DW 00000H
DW 00044H
DW 00000H
DW 00065H
DW 00000H
DW 00076H
DW 00000H
DW 00063H
DW 00000H
DW 00065H
DW 00000H
csSTRING4:
DW 00048H
DW 00000H
DW 00049H
DW 00000H
DW 00044H
DW 00000H
DW 00065H
DW 00000H
DW 00078H
DW 00000H
DW 00061H
DW 00000H
DW 0006DH
DW 00000H
DW 00070H
DW 00000H
DW 0006CH
DW 00000H
DW 00065H
DW 00000H
sSTRING1:
DB 016H
DB 003H
DB LOW (csSTRING1 + 0)
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H
sSTRING2:
DB 01EH
DB 003H
DB LOW (csSTRING2 + 0)
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H
sSTRING3:
DB 02EH
DB 003H
DB LOW (csSTRING3 + 0)
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H
sSTRING4:
DB 02AH
DB 003H
DB LOW (csSTRING4 + 0)
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H
; /*
; //*************************************************************************
; //
; // BASBA P R O P R I E T A R Y
; // -- ALL RIGHTS RESERVED --
; //
; // File Name: USBProto.c
; // Purpose: Handles the standard USB device requests
; // Author: Shuming Yu
; // Created: 10 May 2003
; // Modified:
; // Revision: 1.0
; //
; //*************************************************************************
; */
;
; #include <stdio.h>
; #include <string.h>
;
; #include <reg51.h> /* special function register declarations */
;
; #include "d12hal.h"
; #include "cmds.h"
; #include "mainloop.h"
; #include "usbStruc.h"
; #include "USBProto.h"
;
; //#define NUM_ENDPOINTS 4
; #define NUM_ENDPOINTS 1
;
; unsigned char IDLE_TIME;
; /*
; //#define CONFIG_DESCRIPTOR_LENGTH sizeof(USB_CONFIGURATION_DESCRIPTOR) \
; // + sizeof(USB_INTERFACE_DESCRIPTOR) \
; // + (NUM_ENDPOINTS * sizeof(USB_ENDPOINT_DESCRIPTOR))
; */
; extern CONTROL_XFER ControlData;
; //extern IO_REQUEST idata ioRequest;
; extern EPPFLAGS bEPPflags;
; //
; // COPYRIGHT (c) 2003 BY BASBA USA.PPflags;
; extern unsigned char idata GenEpBuf[]; //Buffer which store data got from host
;
; UCHAR code REPORT_DESCRIPTOR[] = {
; 0x06,0x00,0xFF, //Usage Page(vendor defined)
; 0x09,0x01, //Usage (I/O Device)
; 0xA1,0x01, //Collection (Application)
; 0x19,0x01, //Usage minimum (button1)
; 0x29,0x08, //Usage maximun (button8)
; 0x15,0x00, //Logic mininum (0)
; 0x25,0x01, //logic maximum (1)
; 0x75,0x01, //Report size (1)
; 0x95,0x08, //Report count (8)
; 0x81,0x02, //Input(Data,Var,Abs)
; 0x19,0x01, //Usage Minimum (LED1)
; 0x29,0x08, //Usage Maximum (LED8)
; 0x91,0x02, //Output(Data,Var,Abs)
; 0xC0 //End of collection
; };
;
; struct CONFIG { USB_CONFIGURATION_DESCRIPTOR sConfig;
; USB_INTERFACE_DESCRIPTOR sInterface;
; USB_HID_DESCRIPTOR sHID;
; USB_ENDPOINT_DESCRIPTOR sEndpoint;
; };
;
; #define CONFIG_DESCRIPTOR_LENGTH sizeof(struct CONFIG)
; #define REPORT_DESC_LENGTH sizeof(REPORT_DESCRIPTOR)
;
;
; code USB_DEVICE_DESCRIPTOR DeviceDescr =
; {
; sizeof(USB_DEVICE_DESCRIPTOR), //BYTE bLength,
; USB_DEVICE_DESCRIPTOR_TYPE, //BYTE bDescriptorType
; SWAP(0x0100), //WORD bcdUSB, USB Rev1.0
; 0x00, //Byte bDeviceClass
; 0x00, //BYTE bDeviceSubClass
; 0x00, //BYTE bDeviceProtocol
; EP0_PACKET_SIZE,//BYTE bMaxPacketSize of 16
; SWAP(0x4242), //WORD idVendor
; SWAP(0x0100), //WORD idProduct
; SWAP(0x0100), //WORD bcdDevice
; 0x01, //BYTE iManufacturer name
; 0x02, //BYTE iProduct name
; 0x00, //BYTE iSerialNumber name
; 0x01 //BYTE bNumConfigurations, number of configurations
; };
;
; /*
; code USB_CONFIGURATION_DESCRIPTOR ConfigDescr =
; {
; sizeof(USB_CONFIGURATION_DESCRIPTOR), //BYTE bLength
; USB_CONFIGURATION_DESCRIPTOR_TYPE, //BYTE bDescriptorType //Assigned by USB
; SWAP(CONFIG_DESCRIPTOR_LENGTH), //WORD wTotalLength
; 0x01, //BYTE bNumInterfaces
; 0x01, //BYTE bConfigurationValue
; 0x03, //BYTE iConfiguration
; 0x80, //BYTE bmAttributes, Bus powered
; 50, //BYTE MaxPower, 50x2=100mA
; };
;
; code USB_INTERFACE_DESCRIPTOR InterfaceDescr =
; {
; sizeof(USB_INTERFACE_DESCRIPTOR),//BYTE bLength
; USB_INTERFACE_DESCRIPTOR_TYPE,//BYTE bDescriptionType, assigned by USB
; 0x00, //BYTE bInterfaceNumber
; 0x00, //BYTE bAlternateSetting, no alternate setting
; 0x01, //BYTE bNumEndpoints, HID uses endpoint 1
; 0x03, //BYTE bInterfaceClass, HID Class - 0x03
; 0x00, //BYTE bInterfaceSubClass
; 0x00, //BYTE bInterfaceProtocol
; 0x04 //BYTE iInterface, interface name
; };
;
; code USB_HID_DESCRIPTOR HIDDescr =
; {
; sizeof(USB_HID_DESCRIPTOR), //BYTE bLength;
; 0x21, //BYTE bDescriptorType;
; 0x0001, //WORD bcdHID;
; 0x00, //BYTE bCountryCode, country localization = None;
; 0x01, //BYTE bNumDescriptors, number of descriptor follow
; 0x22, //BYTE bReportDescriptorType And it's a Report descriptor
; SWAP(REPORT_DESC_LENGTH) //WORD wItemLength, total length of report descriptor
; };
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -