📄 usbdriver.lst
字号:
0000000A 6001 STR R1,[R0,#0x0] ; ep_st
275: if(ep_st & USB_ENDP00)
0000000C A800 ADD R0,R13,#0x0
ARM COMPILER V2.53, USBDriver 28/06/07 09:54:12 PAGE 15
0000000E 6800 LDR R0,[R0,#0x0] ; ep_st
00000010 2101 MOV R1,#0x1
00000012 4208 TST R0,R1
00000014 D001 BEQ L_21 ; T=0x0000001A
276: ep0_rxdone(); /* 控制端点接收数据处理 process controll endpoint receive data */
00000016 F7FF BL ep0_rxdone?T ; T=0x0001 (1)
00000018 FFF3 BL ep0_rxdone?T ; T=0x0001 (2)
0000001A L_21:
277: if(ep_st & USB_ENDP01)
0000001A A800 ADD R0,R13,#0x0
0000001C 6800 LDR R0,[R0,#0x0] ; ep_st
0000001E 2102 MOV R1,#0x2
00000020 4208 TST R0,R1
00000022 D001 BEQ L_22 ; T=0x00000028
278: ep0_txdone(); /* 控制端点发送数据处理 process controll endpoint transmit data */
00000024 F7FF BL ep0_txdone?T ; T=0x0001 (1)
00000026 FFEC BL ep0_txdone?T ; T=0x0001 (2)
00000028 L_22:
280: if(ep_st & USB_ENDP02)
00000028 A800 ADD R0,R13,#0x0
0000002A 6800 LDR R0,[R0,#0x0] ; ep_st
0000002C 2104 MOV R1,#0x4
0000002E 4208 TST R0,R1
00000030 D001 BEQ L_23 ; T=0x00000036
281: ep1_rxdone(); /* 端点1接收数据处理 process logic endpoint 1 receive data */
00000032 F7FF BL ep1_rxdone?T ; T=0x0001 (1)
00000034 FFE5 BL ep1_rxdone?T ; T=0x0001 (2)
00000036 L_23:
282: if(ep_st & USB_ENDP03)
00000036 A800 ADD R0,R13,#0x0
00000038 6800 LDR R0,[R0,#0x0] ; ep_st
0000003A 2108 MOV R1,#0x8
0000003C 4208 TST R0,R1
0000003E D001 BEQ L_24 ; T=0x00000044
283: ep1_txdone(); /* 端点1发送数据处理 process logic endpoint 1 transmit data */
00000040 F7FF BL ep1_txdone?T ; T=0x0001 (1)
00000042 FFDE BL ep1_txdone?T ; T=0x0001 (2)
00000044 L_24:
285: if(ep_st & USB_ENDP04)
00000044 A800 ADD R0,R13,#0x0
00000046 6800 LDR R0,[R0,#0x0] ; ep_st
00000048 2110 MOV R1,#0x10
0000004A 4208 TST R0,R1
0000004C D001 BEQ L_25 ; T=0x00000052
286: ep2_rxdone(); /* 端点2接收数据处理 process logic endpoint 2 receive data */
0000004E F7FF BL ep2_rxdone?T ; T=0x0001 (1)
00000050 FFD7 BL ep2_rxdone?T ; T=0x0001 (2)
00000052 L_25:
287: if(ep_st & USB_ENDP05)
00000052 A800 ADD R0,R13,#0x0
00000054 6800 LDR R0,[R0,#0x0] ; ep_st
00000056 2120 MOV R1,#0x20
00000058 4208 TST R0,R1
0000005A D001 BEQ L_26 ; T=0x00000060
288: ep2_txdone(); /* 端点2发送数据处理 process logic endpoint 2 transmit data */
0000005C F7FF BL ep2_txdone?T ; T=0x0001 (1)
0000005E FFD0 BL ep2_txdone?T ; T=0x0001 (2)
00000060 L_26:
290: USBDevIntClr = SLOWINTERRUPT;
00000060 2104 MOV R1,#0x4
00000062 4800 LDR R0,=0xE0090008
00000064 6001 STR R1,[R0,#0x0]
00000066 ; SCOPE-END
291: }
00000066 B001 ADD R13,#0x4
00000068 BC08 POP {R3}
ARM COMPILER V2.53, USBDriver 28/06/07 09:54:12 PAGE 16
0000006A 4718 BX R3
0000006C ENDP ; 'Usb_LPService?T'
*** CODE SEGMENT '?PR?ep1_txdone?T?USBDriver':
300: void ep1_txdone(void)
00000000 B500 PUSH {LR}
302: USB_SelectClrIntEndpoint(3); /* 选择端点并清除中断 select endpoint/clear interrupt */
00000002 2003 MOV R0,#0x3
00000004 F7FF BL USB_SelectClrIntEndpoint?T ; T=0x0001 (1)
00000006 FFFC BL USB_SelectClrIntEndpoint?T ; T=0x0001 (2)
303: }
00000008 BC08 POP {R3}
0000000A 4718 BX R3
0000000C ENDP ; 'ep1_txdone?T'
*** CODE SEGMENT '?PR?ep1_rxdone?T?USBDriver':
312: void ep1_rxdone(void)
00000000 B500 PUSH {LR}
00000002 B081 SUB R13,#0x4
313: {
00000004 ; SCOPE-START
316: USB_SelectClrIntEndpoint(2); /* 选择端点并清除中断 select endpoint/clear interrupt */
00000004 2002 MOV R0,#0x2
00000006 F7FF BL USB_SelectClrIntEndpoint?T ; T=0x0001 (1)
00000008 FFFB BL USB_SelectClrIntEndpoint?T ; T=0x0001 (2)
318: len = USB_ReadEndpoint(2,sizeof(GenEpBuf),GenEpBuf); /* 从接收缓冲区中读出数据 read data from EP RAM */
0000000A 4800 LDR R2,=GenEpBuf ; GenEpBuf
0000000C 2002 MOV R0,#0x2
0000000E 2110 MOV R1,#0x10
00000010 F7FF BL USB_ReadEndpoint?T ; T=0x0001 (1)
00000012 FFF6 BL USB_ReadEndpoint?T ; T=0x0001 (2)
00000014 A900 ADD R1,R13,#0x0
00000016 7008 STRB R0,[R1,#0x0] ; len
319: if(len != 0)
00000018 A800 ADD R0,R13,#0x0
0000001A 7800 LDRB R0,[R0,#0x0] ; len
0000001C 2800 CMP R0,#0x0
0000001E D004 BEQ L_27 ; T=0x0000002A
320: bEPPflags.bits.ep1_rxdone = 1; /* 标识该端点收到数据 flag endpoint received data */
00000020 4800 LDR R0,=bEPPflags ; bEPPflags
00000022 6801 LDR R1,[R0,#0x0] ; bEPPflags
00000024 4800 LDR R2,=0x400
00000026 4311 ORR R1,R2
00000028 6001 STR R1,[R0,#0x0] ; bEPPflags
0000002A L_27:
0000002A ; SCOPE-END
321: }
0000002A B001 ADD R13,#0x4
0000002C BC08 POP {R3}
0000002E 4718 BX R3
00000030 ENDP ; 'ep1_rxdone?T'
*** CODE SEGMENT '?PR?ep2_txdone?T?USBDriver':
330: void ep2_txdone(void)
00000000 B500 PUSH {LR}
332: USB_SelectClrIntEndpoint(5); /* 选择端点并清除中断 select endpoint/clear interrupt */
00000002 2005 MOV R0,#0x5
00000004 F7FF BL USB_SelectClrIntEndpoint?T ; T=0x0001 (1)
00000006 FFFC BL USB_SelectClrIntEndpoint?T ; T=0x0001 (2)
333: }
00000008 BC08 POP {R3}
0000000A 4718 BX R3
0000000C ENDP ; 'ep2_txdone?T'
*** CODE SEGMENT '?PR?ep2_rxdone?T?USBDriver':
342: void ep2_rxdone(void)
00000000 B500 PUSH {LR}
00000002 B081 SUB R13,#0x4
343: {
00000004 ; SCOPE-START
ARM COMPILER V2.53, USBDriver 28/06/07 09:54:12 PAGE 17
346: USB_SelectClrIntEndpoint(4); /* 选择端点并清除中断 select endpoint/clear interrupt */
00000004 2004 MOV R0,#0x4
00000006 F7FF BL USB_SelectClrIntEndpoint?T ; T=0x0001 (1)
00000008 FFFB BL USB_SelectClrIntEndpoint?T ; T=0x0001 (2)
348: len = USB_ReadEndpoint(4,sizeof(EpBuf),EpBuf); /* 从接收缓冲区中读出数据 read data from EP RAM */
0000000A 4800 LDR R2,=EpBuf ; EpBuf
0000000C 2004 MOV R0,#0x4
0000000E 2140 MOV R1,#0x40
00000010 F7FF BL USB_ReadEndpoint?T ; T=0x0001 (1)
00000012 FFF6 BL USB_ReadEndpoint?T ; T=0x0001 (2)
00000014 A900 ADD R1,R13,#0x0
00000016 7008 STRB R0,[R1,#0x0] ; len
349: if (len != 0)
00000018 A800 ADD R0,R13,#0x0
0000001A 7800 LDRB R0,[R0,#0x0] ; len
0000001C 2800 CMP R0,#0x0
0000001E D004 BEQ L_28 ; T=0x0000002A
350: bEPPflags.bits.ep2_rxdone = 1; /* 标识该端点收到数据 flag endpoint received data */
00000020 4800 LDR R0,=bEPPflags ; bEPPflags
00000022 6801 LDR R1,[R0,#0x0] ; bEPPflags
00000024 4800 LDR R2,=0x800
00000026 4311 ORR R1,R2
00000028 6001 STR R1,[R0,#0x0] ; bEPPflags
0000002A L_28:
0000002A ; SCOPE-END
351: }
0000002A B001 ADD R13,#0x4
0000002C BC08 POP {R3}
0000002E 4718 BX R3
00000030 ENDP ; 'ep2_rxdone?T'
*** CODE SEGMENT '?PR?USB_BusReset?T?USBDriver':
360: void USB_BusReset(void)
00000000 B500 PUSH {LR}
362: USB_USBDevIntConfig();
00000002 F7FF BL USB_USBDevIntConfig?T ; T=0x0001 (1)
00000004 FFFD BL USB_USBDevIntConfig?T ; T=0x0001 (2)
363: USB_ConfigEndpoint(); /* 重新配置所有端点最大包大小 */
00000006 F7FF BL USB_ConfigEndpoint?T ; T=0x0001 (1)
00000008 FFFB BL USB_ConfigEndpoint?T ; T=0x0001 (2)
364: }
0000000A BC08 POP {R3}
0000000C 4718 BX R3
0000000E ENDP ; 'USB_BusReset?T'
*** CODE SEGMENT '?PR?USB_SuspendChange?T?USBDriver':
376: }
00000000 4770 BX R14
00000002 ENDP ; 'USB_SuspendChange?T'
*** CODE SEGMENT '?PR?USB_ConnectChange?T?USBDriver':
388: }
00000000 4770 BX R14
00000002 ENDP ; 'USB_ConnectChange?T'
*** CODE SEGMENT '?PR?Get_USB214x_FirmwareVer?T?USBDriver':
399: return 0x0100; /* LPC214x USB 固件版本为 1.00 */
00000000 4840 LDR R0,=0x100
400: } /* LPC214x USB Firmware Version is 1.00 */
00000002 4770 BX R14
00000004 ENDP ; 'Get_USB214x_FirmwareVer?T'
*** CODE SEGMENT '?PR?ENABLE?T?USBDriver':
406: VICIntEnable = 1 << 22 ; //enable USB interrupt
00000000 4800 LDR R1,=0x400000
00000002 4800 LDR R0,=0xFFFFF010
00000004 6001 STR R1,[R0,#0x0]
407: }
00000006 4770 BX R14
00000008 ENDP ; 'ENABLE?T'
*** CODE SEGMENT '?PR?DISABLE?T?USBDriver':
ARM COMPILER V2.53, USBDriver 28/06/07 09:54:12 PAGE 18
411: VICIntEnClr = 1 << 22 ; //disable USB interrupt
00000000 4800 LDR R1,=0x400000
00000002 4800 LDR R0,=0xFFFFF014
00000004 6001 STR R1,[R0,#0x0]
413: }
00000006 4770 BX R14
00000008 ENDP ; 'DISABLE?T'
*** CODE SEGMENT '?PR?Init_USBInterrupt?T?US
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -