11 #define UsbDeviceIdleState 0
12 #define UsbDeviceInitial0State 1
13 #define UsbDeviceInitial1State 2
14 #define UsbDeviceInitial2State 3
15 #define UsbDeviceDataState 4
17 #define Ep0IdleState 0
20 #define EP0_STATE_GD_DEV_0 (10) //10-10=0
21 #define EP0_STATE_GD_DEV_1 (11) //11-10=1
22 #define EP0_STATE_GD_DEV_2 (12) //12-10=2
24 #define EP0_STATE_GD_CFG_0 (20)
25 #define EP0_STATE_GD_CFG_1 (21)
26 #define EP0_STATE_GD_CFG_2 (22)
27 #define EP0_STATE_GD_CFG_3 (23)
28 #define EP0_STATE_GD_CFG_4 (24)
30 #define EP0_STATE_GD_STR_I0 (30)
31 #define EP0_STATE_GD_STR_I1 (31)
32 #define EP0_STATE_GD_STR_I2 (32)
34 #define EP0_STATE_GD_CFG_ONLY_0 (40)
35 #define EP0_STATE_GD_CFG_ONLY_1 (41)
36 #define EP0_STATE_GD_IF_ONLY_0 (42)
37 #define EP0_STATE_GD_IF_ONLY_1 (43)
38 #define EP0_STATE_GD_EP0_ONLY_0 (44)
39 #define EP0_STATE_GD_EP1_ONLY_0 (45)
41 #define USBDEVICE_DOWNLOAD_ADDRESS 0x30400000
42 #define USBDEVICE_UPLOAD_ADDRESS 0x30300000
47 #define CLR_EP0_OUT_PKT_RDY() rEP0_CSR=(Ep0Csr&(~EP0_WR_BITS)| \
48 EP0_SERVICED_OUT_PKT_RDY)
49 #define CLR_EP0_OUTPKTRDY_DATAEND() rEP0_CSR=( Ep0Csr & (~EP0_WR_BITS)| \
50 (EP0_SERVICED_OUT_PKT_RDY|EP0_DATA_END) )
51 #define SET_EP0_IN_PKT_RDY() rEP0_CSR=(Ep0Csr & (~EP0_WR_BITS)| \
53 #define SET_EP0_INPKTRDY_DATAEND() rEP0_CSR=(Ep0Csr&(~EP0_WR_BITS)| \
54 (EP0_IN_PKT_READY|EP0_DATA_END))
55 #define CLR_EP0_SETUP_END() rEP0_CSR=(Ep0Csr&(~EP0_WR_BITS)| \
56 (EP0_SERVICED_SETUP_END))
57 #define CLR_EP0_SENT_STALL() rEP0_CSR=(Ep0Csr & (~EP0_WR_BITS)& \
60 #define FLUSH_EP0_FIFO() {register i;while(rOUT_FIFO_CNT1_REG)i=rEP0_FIFO;}
65 #define SET_EP1_IN_PKT_READY() rIN_CSR1_REG=(InCsr1Reg&(~EPI_WR_BITS)\
67 #define SET_EP1_SEND_STALL() rIN_CSR1_REG=(InCsr1Reg&(~EPI_WR_BITS)\
69 #define CLR_EP1_SENT_STALL() rIN_CSR1_REG=(InCsr1Reg&(~EPI_WR_BITS)\
71 #define FLUSH_EP1_FIFO() rIN_CSR1_REG=(InCsr1Reg&(~EPI_WR_BITS)\
77 #define CLR_EP3_OUT_PKT_READY() rOUT_CSR1_REG=(OutCsr3 &(~ EPO_WR_BITS)\
78 &(~EPO_OUT_PKT_READY) )
79 #define SET_EP3_SEND_STALL() rOUT_CSR1_REG=(OutCsr3 & (~EPO_WR_BITS)\
81 #define CLR_EP3_SENT_STALL() rOUT_CSR1_REG=(OutCsr3&(~EPO_WR_BITS)\
83 #define FLUSH_EP3_FIFO() rOUT_CSR1_REG=(OutCsr3 & (~EPO_WR_BITS)\
94 static const INT8U DescripString1[]={
96 'S',0x0,
'y',0x0,
's',0x0,
't',0x0,
'e',0x0,
'm',0x0,
' ',0x0,
'M',0x0,
99 static const INT8U DescripString2[]={
101 'S',0x0,
'E',0x0,
'C',0x0,
' ',0x0,
'S',0x0,
'3',0x0,
'C',0x0,
'2',0x0,
102 '4',0x0,
'1',0x0,
'0',0x0,
'X',0x0,
' ',0x0,
'T',0x0,
'e',0x0,
's',0x0,
103 't',0x0,
' ',0x0,
'B',0x0,
'/',0x0,
'D',0x0};
141 switch(UsbDeviceCtrl.
State){
180 UsbDeviceCtrl.
UserId=UserId;
276 #if (EP1_PKT_SIZE==32)
294 #if (EP3_PKT_SIZE==32)
334 for(Index=0;Index<Length;Index++){
341 for(Index=0;Index<Length;Index++){
589 for(Index=0;Index<Length;Index++){
603 if(UsbDeviceCtrl.
TxLength>EP1_PKT_SIZE)
632 for(Index=0;Index<Length;Index++)
648 for(Index=0;Index<Length;Index++)
656 for(i=0;i<Length;i++){
693 UsbDeviceCtrl.
pRxData+=FifoByteCount-8;
705 UsbDeviceCtrl.
pRxData+=FifoByteCount;
726 for(Index=0;Index<Length;Index++)
739 INT8U EndpointIntReg;