📄 vcomuser.lst
字号:
0000003A 3101 ADD R1,#0x1
0000003C 7001 STRB R1,[R0,#0x0] ; RxLength0
125: }
0000003E E033 B L_19 ; T=0x000000A8
00000040 L_16:
126: else if ( (RxLength0 == USB_VCOM_BUFSIZE) ) {
00000040 4800 LDR R0,=RxLength0 ; RxLength0
00000042 7800 LDRB R0,[R0,#0x0] ; RxLength0
00000044 2804 CMP R0,#0x4
00000046 D12F BNE L_19 ; T=0x000000A8
127: USB_WriteEP(0x80 | 0x02, &UART2USBBuf0[0], USB_VCOM_BUFSIZE );
00000048 4800 LDR R1,=UART2USBBuf0 ; UART2USBBuf0
0000004A 2082 MOV R0,#0x82
0000004C 2204 MOV R2,#0x4
0000004E F7FF BL USB_WriteEP?T ; T=0x0001 (1)
00000050 FFD7 BL USB_WriteEP?T ; T=0x0001 (2)
128: RxLength0 = 0;
00000052 2100 MOV R1,#0x0
00000054 4800 LDR R0,=RxLength0 ; RxLength0
00000056 7001 STRB R1,[R0,#0x0] ; RxLength0
131: }
00000058 E026 B L_19 ; T=0x000000A8
0000005A L_15:
132: else if ( portNum == 1 )
0000005A 2D01 CMP R5,#0x1
0000005C D124 BNE L_19 ; T=0x000000A8
146: if ( ((U1LSR & 0x01) == 1) && (RxLength1 < USB_VCOM_BUFSIZE) ) {
0000005E 4800 LDR R0,=0xE0010014
ARM COMPILER V2.31, VCOMuser 23/11/05 10:53:11 PAGE 16
00000060 7800 LDRB R0,[R0,#0x0]
00000062 2101 MOV R1,#0x1
00000064 4008 AND R0,R1
00000066 2801 CMP R0,#0x1
00000068 D112 BNE L_21 ; T=0x00000090
0000006A 4800 LDR R0,=RxLength1 ; RxLength1
0000006C 7800 LDRB R0,[R0,#0x0] ; RxLength1
0000006E 2804 CMP R0,#0x4
00000070 DA0E BGE L_21 ; T=0x00000090
147: UART2USBBuf1[RxLength1] = getchar( portNum );
00000072 1C20 MOV R0,R4 ; portNum
00000074 0600 LSL R0,R0,#0x18 ; portNum
00000076 0E00 LSR R0,R0,#0x18
00000078 F7FF BL getchar?T ; T=0x0001 (1)
0000007A FFC2 BL getchar?T ; T=0x0001 (2)
0000007C 4800 LDR R1,=RxLength1 ; RxLength1
0000007E 7809 LDRB R1,[R1,#0x0] ; RxLength1
00000080 1C0A MOV R2,R1
00000082 4800 LDR R1,=UART2USBBuf1 ; UART2USBBuf1
00000084 5488 STRB R0,[R1,R2]
148: RxLength1++;
00000086 4800 LDR R0,=RxLength1 ; RxLength1
00000088 7801 LDRB R1,[R0,#0x0] ; RxLength1
0000008A 3101 ADD R1,#0x1
0000008C 7001 STRB R1,[R0,#0x0] ; RxLength1
149: }
0000008E E00B B L_19 ; T=0x000000A8
00000090 L_21:
150: else if ( (RxLength1 == USB_VCOM_BUFSIZE) ) {
00000090 4800 LDR R0,=RxLength1 ; RxLength1
00000092 7800 LDRB R0,[R0,#0x0] ; RxLength1
00000094 2804 CMP R0,#0x4
00000096 D107 BNE L_19 ; T=0x000000A8
151: USB_WriteEP(0x80 | 0x05, &UART2USBBuf1[0], USB_VCOM_BUFSIZE );
00000098 4800 LDR R1,=UART2USBBuf1 ; UART2USBBuf1
0000009A 2085 MOV R0,#0x85
0000009C 2204 MOV R2,#0x4
0000009E F7FF BL USB_WriteEP?T ; T=0x0001 (1)
000000A0 FFAF BL USB_WriteEP?T ; T=0x0001 (2)
152: RxLength1 = 0;
000000A2 2100 MOV R1,#0x0
000000A4 4800 LDR R0,=RxLength1 ; RxLength1
000000A6 7001 STRB R1,[R0,#0x0] ; RxLength1
155: }
000000A8 L_19:
157: }
000000A8 BC30 POP {R4-R5}
000000AA BC08 POP {R3}
000000AC 4718 BX R3
000000AE ENDP ; 'DeviceData2Host?T'
*** CODE SEGMENT '?PR?USB_Reset_Event?T?VCOMuser':
177: void USB_Reset_Event (void) {
00000000 B500 PUSH {LR}
178: USB_ResetCore();
00000002 F7FF BL USB_ResetCore?T ; T=0x0001 (1)
00000004 FFFD BL USB_ResetCore?T ; T=0x0001 (2)
179: }
00000006 BC08 POP {R3}
00000008 4718 BX R3
0000000A ENDP ; 'USB_Reset_Event?T'
*** CODE SEGMENT '?PR?USB_Configure_Event?T?VCOMuser':
241: if (USB_Configuration) { /* Check if USB is configured */
00000000 4800 LDR R0,=USB_Configuration ; USB_Configuration
00000002 7800 LDRB R0,[R0,#0x0] ; USB_Configuration
00000004 2800 CMP R0,#0x0
00000006 D00B BEQ L_25 ; T=0x00000020
ARM COMPILER V2.31, VCOMuser 23/11/05 10:53:11 PAGE 17
242: ReportStatus0 = ReportStatus1 = 1;
00000008 2101 MOV R1,#0x1
0000000A 4800 LDR R0,=ReportStatus1 ; ReportStatus1
0000000C 7001 STRB R1,[R0,#0x0] ; ReportStatus1
0000000E 2101 MOV R1,#0x1
00000010 4800 LDR R0,=ReportStatus0 ; ReportStatus0
00000012 7001 STRB R1,[R0,#0x0] ; ReportStatus0
243: Data2Host0 = Data2Host1 = 1;
00000014 2101 MOV R1,#0x1
00000016 4800 LDR R0,=Data2Host1 ; Data2Host1
00000018 7001 STRB R1,[R0,#0x0] ; Data2Host1
0000001A 2101 MOV R1,#0x1
0000001C 4800 LDR R0,=Data2Host0 ; Data2Host0
0000001E 7001 STRB R1,[R0,#0x0] ; Data2Host0
244: }
00000020 L_25:
245: }
00000020 4770 BX R14
00000022 ENDP ; 'USB_Configure_Event?T'
*** CODE SEGMENT '?PR?USB_EndPoint1?T?VCOMuser':
296: }
00000000 4770 BX R14
00000002 ENDP ; 'USB_EndPoint1?T'
*** CODE SEGMENT '?PR?USB_EndPoint2?T?VCOMuser':
303: void USB_EndPoint2 (DWORD event) {
00000000 B500 PUSH {LR}
00000002 1C01 MOV R1,R0 ; event
00000004 ---- Variable 'event' assigned to Register 'R1' ----
304: switch (event) {
00000004 1C08 MOV R0,R1 ; event
00000006 2802 CMP R0,#0x2 ; event
00000008 D005 BEQ L_27 ; T=0x00000016
0000000A 2803 CMP R0,#0x3 ; event
0000000C D106 BNE L_26 ; T=0x0000001C
305: case USB_EVT_IN:
0000000E L_28:
306: Data2Host0 = 1;
0000000E 2101 MOV R1,#0x1
00000010 4800 LDR R0,=Data2Host0 ; Data2Host0
00000012 7001 STRB R1,[R0,#0x0] ; Data2Host0
307: break;
00000014 E002 B L_26 ; T=0x0000001C
308: case USB_EVT_OUT:
00000016 L_27:
309: DeviceData2UART( 0 );
00000016 2000 MOV R0,#0x0
00000018 F7FF BL DeviceData2UART?T ; T=0x0001 (1)
0000001A FFF2 BL DeviceData2UART?T ; T=0x0001 (2)
311: }
0000001C L_26:
313: }
0000001C BC08 POP {R3}
0000001E 4718 BX R3
00000020 ENDP ; 'USB_EndPoint2?T'
*** CODE SEGMENT '?PR?USB_EndPoint3?T?VCOMuser':
323: }
00000000 4770 BX R14
00000002 ENDP ; 'USB_EndPoint3?T'
*** CODE SEGMENT '?PR?USB_EndPoint4?T?VCOMuser':
332: }
00000000 4770 BX R14
00000002 ENDP ; 'USB_EndPoint4?T'
*** CODE SEGMENT '?PR?USB_EndPoint5?T?VCOMuser':
339: void USB_EndPoint5 (DWORD event) {
00000000 B500 PUSH {LR}
00000002 1C01 MOV R1,R0 ; event
ARM COMPILER V2.31, VCOMuser 23/11/05 10:53:11 PAGE 18
00000004 ---- Variable 'event' assigned to Register 'R1' ----
340: switch (event) {
00000004 1C08 MOV R0,R1 ; event
00000006 2802 CMP R0,#0x2 ; event
00000008 D005 BEQ L_30 ; T=0x00000016
0000000A 2803 CMP R0,#0x3 ; event
0000000C D106 BNE L_29 ; T=0x0000001C
341: case USB_EVT_IN:
0000000E L_31:
342: Data2Host1 = 1;
0000000E 2101 MOV R1,#0x1
00000010 4800 LDR R0,=Data2Host1 ; Data2Host1
00000012 7001 STRB R1,[R0,#0x0] ; Data2Host1
343: break;
00000014 E002 B L_29 ; T=0x0000001C
344: case USB_EVT_OUT:
00000016 L_30:
345: DeviceData2UART( 1 );
00000016 2001 MOV R0,#0x1
00000018 F7FF BL DeviceData2UART?T ; T=0x0001 (1)
0000001A FFF2 BL DeviceData2UART?T ; T=0x0001 (2)
347: }
0000001C L_29:
349: }
0000001C BC08 POP {R3}
0000001E 4718 BX R3
00000020 ENDP ; 'USB_EndPoint5?T'
*** CODE SEGMENT '?PR?USB_EndPoint6?T?VCOMuser':
358: }
00000000 4770 BX R14
00000002 ENDP ; 'USB_EndPoint6?T'
*** CODE SEGMENT '?PR?USB_EndPoint7?T?VCOMuser':
368: }
00000000 4770 BX R14
00000002 ENDP ; 'USB_EndPoint7?T'
*** CODE SEGMENT '?PR?USB_EndPoint8?T?VCOMuser':
378: }
00000000 4770 BX R14
00000002 ENDP ; 'USB_EndPoint8?T'
*** CODE SEGMENT '?PR?USB_EndPoint9?T?VCOMuser':
388: }
00000000 4770 BX R14
00000002 ENDP ; 'USB_EndPoint9?T'
*** CODE SEGMENT '?PR?USB_EndPoint10?T?VCOMuser':
398: }
00000000 4770 BX R14
00000002 ENDP ; 'USB_EndPoint10?T'
*** CODE SEGMENT '?PR?USB_EndPoint11?T?VCOMuser':
408: }
00000000 4770 BX R14
00000002 ENDP ; 'USB_EndPoint11?T'
*** CODE SEGMENT '?PR?USB_EndPoint12?T?VCOMuser':
417: }
00000000 4770 BX R14
00000002 ENDP ; 'USB_EndPoint12?T'
*** CODE SEGMENT '?PR?USB_EndPoint13?T?VCOMuser':
427: }
00000000 4770 BX R14
00000002 ENDP ; 'USB_EndPoint13?T'
*** CODE SEGMENT '?PR?USB_EndPoint14?T?VCOMuser':
437: }
00000000 4770 BX R14
00000002 ENDP ; 'USB_EndPoint14?T'
*** CODE SEGMENT '?PR?USB_EndPoint15?T?VCOMuser':
447: }
00000000 4770 BX R14
ARM COMPILER V2.31, VCOMuser 23/11/05 10:53:11 PAGE 19
00000002 ENDP ; 'USB_EndPoint15?T'
*** CODE SEGMENT '?PR?init_serial?T?VCOMuser':
458: PINSEL0 = 0x00050005; /* Enable RxD1 and TxD1, RxD0 and TxD0 */
00000000 4800 LDR R1,=0x50005
00000002 4800 LDR R0,=0xE002C000
00000004 6001 STR R1,[R0,#0x0]
461: U0LCR = 0x83; /* 8 bits, no Parity, 1 Stop bit */
00000006 2183 MOV R1,#0x83
00000008 4800 LDR R0,=0xE000C00C
0000000A 7001 STRB R1,[R0,#0x0]
462: U0DLL = 97; /* 9600 Baud Rate @ 15MHz VPB Clock */
0000000C 2161 MOV R1,#0x61
0000000E 4800 LDR R0,=0xE000C000
00000010 7001 STRB R1,[R0,#0x0]
463: U0LCR = 0x03; /* DLAB = 0 */
00000012 2103 MOV R1,#0x3
00000014 4800 LDR R0,=0xE000C00C
00000016 7001 STRB R1,[R0,#0x0]
464: U0FCR = 0x07; /* Enable and reset TX and RX FIFO. */
00000018 2107 MOV R1,#0x7
0000001A 4800 LDR R0,=0xE000C008
0000001C 7001 STRB R1,[R0,#0x0]
466: U1LCR = 0x83; /* 8 bits, no Parity, 1 Stop bit */
0000001E 2183 MOV R1,#0x83
00000020 4800 LDR R0,=0xE001000C
00000022 7001 STRB R1,[R0,#0x0]
467: U1DLL = 97; /* 9600 Baud Rate @ 15MHz VPB Clock */
00000024 2161 MOV R1,#0x61
00000026 4800 LDR R0,=0xE0010000
00000028 7001 STRB R1,[R0,#0x0]
468: U1LCR = 0x03; /* DLAB = 0 */
0000002A 2103 MOV R1,#0x3
0000002C 4800 LDR R0,=0xE001000C
0000002E 7001 STRB R1,[R0,#0x0]
469: U1FCR = 0x07; /* Enable and reset TX and RX FIFO. */
00000030 2107 MOV R1,#0x7
00000032 4800 LDR R0,=0xE0010008
00000034 7001 STRB R1,[R0,#0x0]
470: }
00000036 4770 BX R14
00000038 ENDP ; 'init_serial?T'
*** CODE SEGMENT '?PR?putchar?T?VCOMuser':
472: int putchar(BYTE portNum, int ch) { /* Write character to Serial Port */
00000000 ---- Variable 'ch' assigned to Register 'R1' ----
00000000 1C02 MOV R2,R0 ; portNum
00000002 ---- Variable 'portNum' assigned to Register 'R2' ----
474: if ( portNum == 0 ) {
00000002 1C10 MOV R0,R2 ; portNum
00000004 0600 LSL R0,R0,#0x18 ; portNum
00000006 0E00 LSR R0,R0,#0x18
00000008 2800 CMP R0,#0x0
0000000A D115 BNE L_32 ; T=0x00000038
475: if (ch == '\n') {
0000000C 1C08 MOV R0,R1 ; ch
0000000E 280A CMP R0,#0xA ; ch
00000010 D107 BNE L_41 ; T=0x00000022
476: while (!(U0LSR & 0x20));
00000012 L_34:
00000012 4800 LDR R0,=0xE000C014
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -