📄 main.lst
字号:
274 4 Rwuen = FALSE; // Disable Remote Wakeup
275 4 else
276 4 EZUSB_STALL_EP0(); // Stall End Point 0
277 4 break;
278 4 case FT_ENDPOINT: // End Point
279 4 if(SETUPDAT[2] == 0)
280 4 {
281 5 *(BYTE xdata *) epcs(SETUPDAT[4]) &= ~bmEPSTALL;
282 5 EZUSB_RESET_DATA_TOGGLE( SETUPDAT[4] );
283 5 }
284 4 else
285 4 EZUSB_STALL_EP0(); // Stall End Point 0
286 4 break;
287 4 }
288 3 }
289 2 break;
290 2 case SC_SET_FEATURE: // *** Set Feature
291 2 if(WDF_SetFeature())
292 2 {
293 3 switch(SETUPDAT[0])
294 3 {
295 4 case FT_DEVICE: // Device
296 4 if(SETUPDAT[2] == 1)
297 4 Rwuen = TRUE; // Enable Remote Wakeup
298 4 else if(SETUPDAT[2] == 2)
299 4 // Set Feature Test Mode. The core handles this request. However, it is
300 4 // necessary for the firmware to complete the handshake phase of the
301 4 // control transfer before the chip will enter test mode. It is also
302 4 // necessary for FX2 to be physically disconnected (D+ and D-)
303 4 // from the host before it will enter test mode.
C51 COMPILER V7.06 MAIN 02/13/2008 21:37:10 PAGE 6
304 4 break;
305 4 else
306 4 EZUSB_STALL_EP0(); // Stall End Point 0
307 4 break;
308 4 case FT_ENDPOINT: // End Point
309 4 *(BYTE xdata *) epcs(SETUPDAT[4]) |= bmEPSTALL;
310 4 break;
311 4 default:
312 4 EZUSB_STALL_EP0(); // Stall End Point 0
313 4 }
314 3 }
315 2 break;
316 2 default: // *** Invalid Command
317 2 if(!WDF_VendorCmnd())
318 2 EZUSB_STALL_EP0(); // Stall End Point 0
319 2 }
320 1
321 1 // Acknowledge handshake phase of device request
322 1 EP0CS |= bmHSNAK;
323 1 }
324
325 // Wake-up interrupt handler
326 void resume_isr(void) interrupt WKUP_VECT
327 {
328 1 EZUSB_CLEAR_RSMIRQ();
329 1 }
330
C51 COMPILER V7.06 MAIN 02/13/2008 21:37:10 PAGE 7
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION main (BEGIN)
; SOURCE LINE # 70
; SOURCE LINE # 71
; SOURCE LINE # 75
0000 E4 CLR A
0001 F500 R MOV j+03H,A
0003 F500 R MOV j+02H,A
0005 F500 R MOV j+01H,A
0007 F500 R MOV j,A
; SOURCE LINE # 78
0009 F500 R MOV nSetupRequests+03H,A
000B F500 R MOV nSetupRequests+02H,A
000D F500 R MOV nSetupRequests+01H,A
000F F500 R MOV nSetupRequests,A
; SOURCE LINE # 81
0011 C200 R CLR Sleep
; SOURCE LINE # 82
0013 C200 R CLR GotSUD
; SOURCE LINE # 85
0015 120000 E LCALL WDF_I2CInit
; SOURCE LINE # 88
0018 120000 E LCALL WDF_Init
; SOURCE LINE # 97
001B 750000 E MOV pDeviceDscr,#HIGH DeviceDscr
001E 750000 E MOV pDeviceDscr+01H,#LOW DeviceDscr
; SOURCE LINE # 98
0021 750000 E MOV pDeviceQualDscr,#HIGH DeviceQualDscr
0024 750000 E MOV pDeviceQualDscr+01H,#LOW DeviceQualDscr
; SOURCE LINE # 99
0027 750000 E MOV pHighSpeedConfigDscr,#HIGH HighSpeedConfigDscr
002A 750000 E MOV pHighSpeedConfigDscr+01H,#LOW HighSpeedConfigDscr
; SOURCE LINE # 100
002D 750000 E MOV pFullSpeedConfigDscr,#HIGH FullSpeedConfigDscr
0030 750000 E MOV pFullSpeedConfigDscr+01H,#LOW FullSpeedConfigDscr
; SOURCE LINE # 101
0033 750000 E MOV pStringDscr,#HIGH StringDscr
0036 750000 E MOV pStringDscr+01H,#LOW StringDscr
; SOURCE LINE # 108
0039 C3 CLR C
003A 7400 E MOV A,#LOW UserDscr
003C 9400 E SUBB A,#LOW DeviceDscr
003E FF MOV R7,A
003F 7400 E MOV A,#HIGH UserDscr
0041 9400 E SUBB A,#HIGH DeviceDscr
0043 CF XCH A,R7
0044 2402 ADD A,#02H
0046 CF XCH A,R7
0047 3400 ADDC A,#00H
0049 FE MOV R6,A
004A E4 CLR A
004B 8F00 R MOV DevDescrLen+03H,R7
004D 8E00 R MOV DevDescrLen+02H,R6
004F F500 R MOV DevDescrLen+01H,A
0051 F500 R MOV DevDescrLen,A
; SOURCE LINE # 109
0053 7F12 MOV R7,#012H
0055 FE MOV R6,A
0056 FD MOV R5,A
0057 FC MOV R4,A
C51 COMPILER V7.06 MAIN 02/13/2008 21:37:10 PAGE 8
0058 AB00 R MOV R3,DevDescrLen+03H
005A AA00 R MOV R2,DevDescrLen+02H
005C A900 R MOV R1,DevDescrLen+01H
005E A800 R MOV R0,DevDescrLen
0060 120000 E LCALL ?C?LMUL
0063 7400 E MOV A,#LOW DeviceDscr
0065 2F ADD A,R7
0066 F9 MOV R1,A
0067 7400 E MOV A,#HIGH DeviceDscr
0069 3E ADDC A,R6
006A 54C0 ANL A,#0C0H
006C 7003 JNZ $ + 5H
006E 020000 R LJMP ?C0001
; SOURCE LINE # 110
; SOURCE LINE # 112
0071 750000 R MOV IntDescrAddr,#00H
0074 750080 R MOV IntDescrAddr+01H,#080H
; SOURCE LINE # 113
0077 750000 E MOV ExtDescrAddr,#HIGH DeviceDscr
007A 750000 E MOV ExtDescrAddr+01H,#LOW DeviceDscr
; SOURCE LINE # 114
007D E4 CLR A
007E F500 R MOV i+03H,A
0080 F500 R MOV i+02H,A
0082 F500 R MOV i+01H,A
0084 F500 R MOV i,A
0086 ?C0002:
0086 AF00 R MOV R7,DevDescrLen+03H
0088 AE00 R MOV R6,DevDescrLen+02H
008A AD00 R MOV R5,DevDescrLen+01H
008C AC00 R MOV R4,DevDescrLen
008E AB00 R MOV R3,i+03H
0090 AA00 R MOV R2,i+02H
0092 A900 R MOV R1,i+01H
0094 A800 R MOV R0,i
0096 C3 CLR C
0097 120000 E LCALL ?C?ULCMP
009A 5033 JNC ?C0003
; SOURCE LINE # 115
009C E500 R MOV A,ExtDescrAddr+01H
009E 2500 R ADD A,i+03H
00A0 F582 MOV DPL,A
00A2 E500 R MOV A,ExtDescrAddr
00A4 3500 R ADDC A,i+02H
00A6 F583 MOV DPH,A
00A8 E0 MOVX A,@DPTR
00A9 FF MOV R7,A
00AA E500 R MOV A,IntDescrAddr+01H
00AC 2500 R ADD A,i+03H
00AE F582 MOV DPL,A
00B0 E500 R MOV A,IntDescrAddr
00B2 3500 R ADDC A,i+02H
00B4 F583 MOV DPH,A
00B6 EF MOV A,R7
00B7 F0 MOVX @DPTR,A
00B8 E500 R MOV A,i+03H
00BA 2401 ADD A,#01H
00BC F500 R MOV i+03H,A
00BE E4 CLR A
00BF 3500 R ADDC A,i+02H
00C1 F500 R MOV i+02H,A
00C3 E4 CLR A
C51 COMPILER V7.06 MAIN 02/13/2008 21:37:10 PAGE 9
00C4 3500 R ADDC A,i+01H
00C6 F500 R MOV i+01H,A
00C8 E4 CLR A
00C9 3500 R ADDC A,i
00CB F500 R MOV i,A
00CD 80B7 SJMP ?C0002
00CF ?C0003:
; SOURCE LINE # 118
00CF 850000 R MOV pDeviceDscr,IntDescrAddr
00D2 850000 R MOV pDeviceDscr+01H,IntDescrAddr+01H
; SOURCE LINE # 119
00D5 7400 E MOV A,#LOW DeviceDscr
00D7 2480 ADD A,#080H
00D9 FF MOV R7,A
00DA 7400 E MOV A,#HIGH DeviceDscr
00DC 34FF ADDC A,#0FFH
00DE FE MOV R6,A
;---- Variable 'offset' assigned to Register 'R6/R7' ----
; SOURCE LINE # 120
00DF C3 CLR C
00E0 E500 R MOV A,pDeviceQualDscr+01H
00E2 9F SUBB A,R7
00E3 F500 R MOV pDeviceQualDscr+01H,A
00E5 E500 R MOV A,pDeviceQualDscr
00E7 9E SUBB A,R6
00E8 F500 R MOV pDeviceQualDscr,A
; SOURCE LINE # 121
00EA C3 CLR C
00EB E500 R MOV A,pConfigDscr+01H
00ED 9F SUBB A,R7
00EE F500 R MOV pConfigDscr+01H,A
00F0 E500 R MOV A,pConfigDscr
00F2 9E SUBB A,R6
00F3 F500 R MOV pConfigDscr,A
; SOURCE LINE # 122
00F5 C3 CLR C
00F6 E500 R MOV A,pOtherConfigDscr+01H
00F8 9F SUBB A,R7
00F9 F500 R MOV pOtherConfigDscr+01H,A
00FB E500 R MOV A,pOtherConfigDscr
00FD 9E SUBB A,R6
00FE F500 R MOV pOtherConfigDscr,A
; SOURCE LINE # 123
0100 C3 CLR C
0101 E500 R MOV A,pHighSpeedConfigDscr+01H
0103 9F SUBB A,R7
0104 F500 R MOV pHighSpeedConfigDscr+01H,A
0106 E500 R MOV A,pHighSpeedConfigDscr
0108 9E SUBB A,R6
0109 F500 R MOV pHighSpeedConfigDscr,A
; SOURCE LINE # 124
010B C3 CLR C
010C E500 R MOV A,pFullSpeedConfigDscr+01H
010E 9F SUBB A,R7
010F F500 R MOV pFullSpeedConfigDscr+01H,A
0111 E500 R MOV A,pFullSpeedConfigDscr
0113 9E SUBB A,R6
0114 F500 R MOV pFullSpeedConfigDscr,A
; SOURCE LINE # 125
0116 C3 CLR C
0117 E500 R MOV A,pStringDscr+01H
0119 9F SUBB A,R7
C51 COMPILER V7.06 MAIN 02/13/2008 21:37:10 PAGE 10
011A F500 R MOV pStringDscr+01H,A
011C E500 R MOV A,pStringDscr
011E 9E SUBB A,R6
011F F500 R MOV pStringDscr,A
; SOURCE LINE # 126
0121 ?C0001:
; SOURCE LINE # 128
0121 D2E8 SETB EUSB
; SOURCE LINE # 129
0123 43D820 ORL EICON,#020H
; SOURCE LINE # 131
0126 900000 E MOV DPTR,#INTSETUP
0129 E0 MOVX A,@DPTR
012A 4409 ORL A,#09H
012C F0 MOVX @DPTR,A
; SOURCE LINE # 133
012D 900000 E MOV DPTR,#USBIE
0130 E0 MOVX A,@DPTR
0131 443D ORL A,#03DH
0133 F0 MOVX @DPTR,A
; SOURCE LINE # 134
0134 D2AF SETB EA
; SOURCE LINE # 137
0136 D200 E SETB ?EZUSB_Discon?BIT
0138 120000 E LCALL EZUSB_Discon
; SOURCE LINE # 143
013B 900000 E MOV DPTR,#USBCS
013E E0 MOVX A,@DPTR
013F 54F7 ANL A,#0F7H
0141 F0 MOVX @DPTR,A
; SOURCE LINE # 145
0142 538EF8 ANL CKCON,#0F8H
0145 ?C0005:
; SOURCE LINE # 148
; SOURCE LINE # 149
; SOURCE LINE # 151
0145 120000 E LCALL WDF_Poll
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -