📄 vcomuser.lst
字号:
00000030 4800 LDR R1,=RxLength0 ; RxLength0
00000032 7809 LDRB R1,[R1,#0x0] ; RxLength0
00000034 1C0A MOV R2,R1
00000036 4800 LDR R1,=UART2USBBuf0 ; UART2USBBuf0
00000038 5488 STRB R0,[R1,R2]
124: RxLength0++;
0000003A 4800 LDR R0,=RxLength0 ; RxLength0
0000003C 7801 LDRB R1,[R0,#0x0] ; RxLength0
0000003E 3101 ADD R1,#0x1
00000040 7001 STRB R1,[R0,#0x0] ; RxLength0
125: }
00000042 E038 B L_19 ; T=0x000000B6
00000044 L_16:
126: else if ( (RxLength0 == USB_VCOM_BUFSIZE) ) {
00000044 4800 LDR R0,=RxLength0 ; RxLength0
00000046 7800 LDRB R0,[R0,#0x0] ; RxLength0
00000048 2804 CMP R0,#0x4
0000004A D134 BNE L_19 ; T=0x000000B6
127: USB_WriteEP(0x80 | 0x02, &UART2USBBuf0[0], USB_VCOM_BUFSIZE );
0000004C 4800 LDR R1,=UART2USBBuf0 ; UART2USBBuf0
0000004E 2082 MOV R0,#0x82
00000050 2204 MOV R2,#0x4
00000052 F7FF BL USB_WriteEP?T ; T=0x0001 (1)
00000054 FFD5 BL USB_WriteEP?T ; T=0x0001 (2)
128: RxLength0 = 0;
00000056 2100 MOV R1,#0x0
00000058 4800 LDR R0,=RxLength0 ; RxLength0
0000005A 7001 STRB R1,[R0,#0x0] ; RxLength0
131: }
0000005C E02B B L_19 ; T=0x000000B6
0000005E L_15:
132: else if ( portNum == 1 )
0000005E 1C20 MOV R0,R4 ; portNum
00000060 0600 LSL R0,R0,#0x18 ; portNum
ARM COMPILER V2.50a, VCOMuser 14/02/06 09:59:08 PAGE 16
00000062 0E00 LSR R0,R0,#0x18
00000064 2801 CMP R0,#0x1
00000066 D126 BNE L_19 ; T=0x000000B6
146: if ( ((U1LSR & 0x01) == 1) && (RxLength1 < USB_VCOM_BUFSIZE) ) {
00000068 4800 LDR R0,=0xE0010014
0000006A 7800 LDRB R0,[R0,#0x0]
0000006C 2101 MOV R1,#0x1
0000006E 4008 AND R0,R1
00000070 2801 CMP R0,#0x1
00000072 D114 BNE L_21 ; T=0x0000009E
00000074 4800 LDR R0,=RxLength1 ; RxLength1
00000076 7800 LDRB R0,[R0,#0x0] ; RxLength1
00000078 2804 CMP R0,#0x4
0000007A DA10 BGE L_21 ; T=0x0000009E
147: UART2USBBuf1[RxLength1] = getchar( portNum );
0000007C 1C20 MOV R0,R4 ; portNum
0000007E 0600 LSL R0,R0,#0x18 ; portNum
00000080 0E00 LSR R0,R0,#0x18
00000082 F7FF BL getchar?T ; T=0x0001 (1)
00000084 FFBD BL getchar?T ; T=0x0001 (2)
00000086 0600 LSL R0,R0,#0x18 ; getchar?T
00000088 0E00 LSR R0,R0,#0x18
0000008A 4800 LDR R1,=RxLength1 ; RxLength1
0000008C 7809 LDRB R1,[R1,#0x0] ; RxLength1
0000008E 1C0A MOV R2,R1
00000090 4800 LDR R1,=UART2USBBuf1 ; UART2USBBuf1
00000092 5488 STRB R0,[R1,R2]
148: RxLength1++;
00000094 4800 LDR R0,=RxLength1 ; RxLength1
00000096 7801 LDRB R1,[R0,#0x0] ; RxLength1
00000098 3101 ADD R1,#0x1
0000009A 7001 STRB R1,[R0,#0x0] ; RxLength1
149: }
0000009C E00B B L_19 ; T=0x000000B6
0000009E L_21:
150: else if ( (RxLength1 == USB_VCOM_BUFSIZE) ) {
0000009E 4800 LDR R0,=RxLength1 ; RxLength1
000000A0 7800 LDRB R0,[R0,#0x0] ; RxLength1
000000A2 2804 CMP R0,#0x4
000000A4 D107 BNE L_19 ; T=0x000000B6
151: USB_WriteEP(0x80 | 0x05, &UART2USBBuf1[0], USB_VCOM_BUFSIZE );
000000A6 4800 LDR R1,=UART2USBBuf1 ; UART2USBBuf1
000000A8 2085 MOV R0,#0x85
000000AA 2204 MOV R2,#0x4
000000AC F7FF BL USB_WriteEP?T ; T=0x0001 (1)
000000AE FFA8 BL USB_WriteEP?T ; T=0x0001 (2)
152: RxLength1 = 0;
000000B0 2100 MOV R1,#0x0
000000B2 4800 LDR R0,=RxLength1 ; RxLength1
000000B4 7001 STRB R1,[R0,#0x0] ; RxLength1
155: }
000000B6 L_19:
157: }
000000B6 BC10 POP {R4}
000000B8 BC08 POP {R3}
000000BA 4718 BX R3
000000BC 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
ARM COMPILER V2.50a, VCOMuser 14/02/06 09:59:08 PAGE 17
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 D008 BEQ L_25 ; T=0x0000001A
242: ReportStatus0 = ReportStatus1 = 1;
00000008 2101 MOV R1,#0x1
0000000A 4800 LDR R0,=ReportStatus1 ; ReportStatus1
0000000C 7001 STRB R1,[R0,#0x0] ; ReportStatus1
0000000E 4800 LDR R0,=ReportStatus0 ; ReportStatus0
00000010 7001 STRB R1,[R0,#0x0] ; ReportStatus0
243: Data2Host0 = Data2Host1 = 1;
00000012 4800 LDR R0,=Data2Host1 ; Data2Host1
00000014 7001 STRB R1,[R0,#0x0] ; Data2Host1
00000016 4800 LDR R0,=Data2Host0 ; Data2Host0
00000018 7001 STRB R1,[R0,#0x0] ; Data2Host0
244: }
0000001A L_25:
245: }
0000001A 4770 BX R14
0000001C 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'
ARM COMPILER V2.50a, VCOMuser 14/02/06 09:59:08 PAGE 18
*** CODE SEGMENT '?PR?USB_EndPoint5?T?VCOMuser':
339: void USB_EndPoint5 (DWORD event) {
00000000 B500 PUSH {LR}
00000002 1C01 MOV R1,R0 ; event
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
ARM COMPILER V2.50a, VCOMuser 14/02/06 09:59:08 PAGE 19
00000002 ENDP ; 'USB_EndPoint14?T'
*** CODE SEGMENT '?PR?USB_EndPoint15?T?VCOMuser':
447: }
00000000 4770 BX R14
00000002 ENDP ; 'USB_EndPoint15?T'
*** CODE SEGMENT '?PR?init_serial?T?VCOMuser':
454: void init_serial (void) { /* Initialize Serial Interface */
00000000 B410 PUSH {R4}
458: PINSEL0 = 0x00050005; /* Enable RxD1 and TxD1, RxD0 and TxD0 */
00000002 4800 LDR R1,=0x50005
00000004 4800 LDR R0,=0xE002C000
00000006 6001 STR R1,[R0,#0x0]
461: U0LCR = 0x83; /* 8 bits, no Parity, 1 Stop bit */
00000008 2483 MOV R4,#0x83
0000000A 4800 LDR R0,=0xE000C00C
0000000C 7004 STRB R4,[R0,#0x0]
462: U0DLL = 97; /* 9600 Baud Rate @ 15MHz VPB Clock */
0000000E 2361 MOV R3,#0x61
00000010 4800 LDR R0,=0xE000C000
00000012 7003 STRB R3,[R0,#0x0]
463: U0LCR = 0x03; /* DLAB = 0 */
00000014 2203 MOV R2,#0x3
00000016 4800 LDR R0,=0xE000C00C
00000018 7002 STRB R2,[R0,#0x0]
464: U0FCR = 0x07; /* Enable and reset TX and RX FIFO. */
0000001A 2107 MOV R1,#0x7
0000001C 4800 LDR R0,=0xE000C008
0000001E 7001 STRB R1,[R0,#0x0]
466: U1LCR = 0x83; /* 8 bits, no Parity, 1 Stop bit */
00000020 4800 LDR R0,=0xE001000C
00000022 7004 STRB R4,[R0,#0x0]
467: U1DLL = 97; /* 9600 Baud Rate @ 15MHz VPB Clock */
00000024 4800 LDR R0,=0xE0010000
00000026 7003 STRB R3,[R0,#0x0]
468: U1LCR = 0x03; /* DLAB = 0 */
00000028 4800 LDR R0,=0xE001000C
0000002A 7002 STRB R2,[R0,#0x0]
469: U1FCR = 0x07; /* Enable and reset TX and RX FIFO. */
0000002C 4800 LDR R0,=0xE0010008
0000002E 7001 STRB R1,[R0,#0x0]
470: }
00000030 BC10 POP {R4}
00000032 4770 BX R14
00000034 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -