📄 usbdriver.lst
字号:
00000068 2101 MOV R1,#0x1
0000006A 4208 TST R0,R1
0000006C D00A BEQ L_6 ; T=0x00000084
169: DISABLE();
0000006E F7FF BL DISABLE?T ; T=0x0001 (1)
00000070 FFC7 BL DISABLE?T ; T=0x0001 (2)
170: bEPPflags.bits.con_change = 0;
00000072 4800 LDR R0,=bEPPflags ; bEPPflags
00000074 6801 LDR R1,[R0,#0x0] ; bEPPflags
00000076 2204 MOV R2,#0x4
00000078 4391 BIC R1,R2
0000007A 6001 STR R1,[R0,#0x0] ; bEPPflags
171: ENABLE();
0000007C F7FF BL ENABLE?T ; T=0x0001 (1)
0000007E FFC0 BL ENABLE?T ; T=0x0001 (2)
172: USB_ConnectChange();
00000080 F7FF BL USB_ConnectChange?T ; T=0x0001 (1)
00000082 FFBE BL USB_ConnectChange?T ; T=0x0001 (2)
173: } // if usb bus connect change
00000084 L_6:
175: }
00000084 BC08 POP {R3}
00000086 4718 BX R3
00000088 ENDP ; 'usbserve?T'
*** CODE SEGMENT '?PR?Usb_Exception?A?USBDriver':
183: void Usb_Exception(void) __irq
00000000 E92D5F0F STMDB R13!,{R0-R3,R8-R12,LR}
00000004 E24DD00C SUB R13,R13,#0x000C
184: {
00000008 ; SCOPE-START
187: bEPPflags.bits.in_isr = 1; /* 标识程序进入中断 flag the program enter interrupt */
00000008 E5100000 LDR R0,=bEPPflags ; bEPPflags
0000000C E5901000 LDR R1,[R0,#0x0] ; bEPPflags
00000010 E3811020 ORR R1,R1,#0x0020
ARM COMPILER V2.53, USBDriver 28/06/07 09:54:12 PAGE 12
00000014 E5801000 STR R1,[R0,#0x0] ; bEPPflags
190: dev_ints = USBDevIntSt;
00000018 E5100000 LDR R0,=0xE0090000
0000001C E5901000 LDR R1,[R0,#0x0]
00000020 E28D0004 ADD R0,R13,#0x0004
00000024 E5801000 STR R1,[R0,#0x0] ; dev_ints
191: if (dev_ints & DEVINT_STATUS_DEVSTAT)
00000028 E28D0004 ADD R0,R13,#0x0004
0000002C E5900000 LDR R0,[R0,#0x0] ; dev_ints
00000030 E3100008 TST R0,#0x0008
00000034 0A000021 BEQ L_7 ; Targ=0xC0
193: devstatus = USB_GetDevStatus();
00000038 EBFFFFF0 BL USB_GetDevStatus?A ; Targ=0x0
0000003C E1A01C00 MOV R1,R0,LSL #24 ; USB_GetDevStatus?A
00000040 E1A01C21 MOV R1,R1,LSR #24
00000044 E28D0008 ADD R0,R13,#0x0008
00000048 E5801000 STR R1,[R0,#0x0] ; devstatus
194: if ((devstatus & 0x10) != 0)
0000004C E28D0008 ADD R0,R13,#0x0008
00000050 E5900000 LDR R0,[R0,#0x0] ; devstatus
00000054 E3100010 TST R0,#0x0010
00000058 0A000004 BEQ L_8 ; Targ=0x70
196: USB_BusReset();
0000005C EBFFFFE7 BL USB_BusReset?A ; Targ=0x0
197: bEPPflags.bits.bus_reset = 1; /* 标识总线复位 flag USB bus reset */
00000060 E5100000 LDR R0,=bEPPflags ; bEPPflags
00000064 E5901000 LDR R1,[R0,#0x0] ; bEPPflags
00000068 E3811001 ORR R1,R1,#0x0001
0000006C E5801000 STR R1,[R0,#0x0] ; bEPPflags
198: }
00000070 L_8:
200: if ((devstatus & 0x08) != 0)
00000070 E28D0008 ADD R0,R13,#0x0008
00000074 E5900000 LDR R0,[R0,#0x0] ; devstatus
00000078 E3100008 TST R0,#0x0008
0000007C 0A000003 BEQ L_9 ; Targ=0x90
201: bEPPflags.bits.suspend = 1; /* 标识总线挂起改变 flag the bus suspend change */
00000080 E5100000 LDR R0,=bEPPflags ; bEPPflags
00000084 E5901000 LDR R1,[R0,#0x0] ; bEPPflags
00000088 E3811002 ORR R1,R1,#0x0002
0000008C E5801000 STR R1,[R0,#0x0] ; bEPPflags
00000090 L_9:
203: if ((devstatus & 0x02) != 0)
00000090 E28D0008 ADD R0,R13,#0x0008
00000094 E5900000 LDR R0,[R0,#0x0] ; devstatus
00000098 E3100002 TST R0,#0x0002
0000009C 0A000003 BEQ L_10 ; Targ=0xB0
204: bEPPflags.bits.con_change = 1; /* 标识总线连接改变 flag the bus connect change */
000000A0 E5100000 LDR R0,=bEPPflags ; bEPPflags
000000A4 E5901000 LDR R1,[R0,#0x0] ; bEPPflags
000000A8 E3811004 ORR R1,R1,#0x0004
000000AC E5801000 STR R1,[R0,#0x0] ; bEPPflags
000000B0 L_10:
206: USBDevIntClr = DevStatusInterrupt;
000000B0 E3A01008 MOV R1,#0x8
000000B4 E5100000 LDR R0,=0xE0090008
000000B8 E5801000 STR R1,[R0,#0x0]
207: goto USB_ISR_EXIT;
000000BC EAFFFFCE B USB_ISR_EXIT ; Targ=0xFFFFFFFC
208: }
000000C0 L_7:
211: usb_ints = USBIntSt & 0x7;
000000C0 E5100000 LDR R0,=0xE01FC1C0
000000C4 E5901000 LDR R1,[R0,#0x0]
000000C8 E2011007 AND R1,R1,#0x0007
000000CC E28D0000 ADD R0,R13,#0x0000
ARM COMPILER V2.53, USBDriver 28/06/07 09:54:12 PAGE 13
000000D0 E5801000 STR R1,[R0,#0x0] ; usb_ints
212: if (usb_ints != 0)
000000D4 E28D0000 ADD R0,R13,#0x0000
000000D8 E5900000 LDR R0,[R0,#0x0] ; usb_ints
000000DC E3500000 CMP R0,#0x0000
000000E0 0AFFFFC5 BEQ USB_ISR_EXIT ; Targ=0xFFFFFFFC
214: if (usb_ints & USBINT_STATUS_HP)
000000E4 E28D0000 ADD R0,R13,#0x0000
000000E8 E5900000 LDR R0,[R0,#0x0] ; usb_ints
000000EC E3100002 TST R0,#0x0002
000000F0 0A000000 BEQ L_13 ; Targ=0xF8
215: Usb_HPService(); /* 高优先级中断处理 process High priority Interrupt */
000000F4 EBFFFFC1 BL Usb_HPService?A ; Targ=0x0
000000F8 L_13:
217: if (usb_ints & USBINT_STATUS_LP)
000000F8 E28D0000 ADD R0,R13,#0x0000
000000FC E5900000 LDR R0,[R0,#0x0] ; usb_ints
00000100 E3100001 TST R0,#0x0001
00000104 0AFFFFBC BEQ USB_ISR_EXIT ; Targ=0xFFFFFFFC
218: Usb_LPService(); /* 低优先级中断处理 process Slow priority Interrupt */
00000108 EBFFFFBC BL Usb_LPService?A ; Targ=0x0
226: USB_ISR_EXIT:
0000010C USB_ISR_EXIT:
227: bEPPflags.bits.in_isr = 0; /* 标识程序退出中断 flag the program exit interrupt */
0000010C E5100000 LDR R0,=bEPPflags ; bEPPflags
00000110 E5901000 LDR R1,[R0,#0x0] ; bEPPflags
00000114 E3C11020 BIC R1,R1,#0x0020
00000118 E5801000 STR R1,[R0,#0x0] ; bEPPflags
228: VICVectAddr = 0x00; /* 通知LPC214x中断结束 Inform LPC214x interrupt end */
0000011C E3A01000 MOV R1,#0x0
00000120 E5100000 LDR R0,=0xFFFFF030
00000124 E5801000 STR R1,[R0,#0x0]
00000128 ; SCOPE-END
229: }
00000128 E28DD00C ADD R13,R13,#0x000C
0000012C E8BD5F0F LDMIA R13!,{R0-R3,R8-R12,LR}
00000130 E25EF004 SUBS R15,R14,#0x0004
00000134 ENDP ; 'Usb_Exception?A'
*** CODE SEGMENT '?PR?Usb_HPService?T?USBDriver':
238: void Usb_HPService(void)
00000000 B500 PUSH {LR}
00000002 B081 SUB R13,#0x4
239: {
00000004 ; SCOPE-START
242: ep_st = USBEpIntSt; /* 读端点中断状态寄存器 read endpoint interrupt status register */
00000004 4800 LDR R0,=0xE0090030
00000006 6801 LDR R1,[R0,#0x0]
00000008 A800 ADD R0,R13,#0x0
0000000A 6001 STR R1,[R0,#0x0] ; ep_st
244: if(ep_st & USB_ENDP00)
0000000C A800 ADD R0,R13,#0x0
0000000E 6800 LDR R0,[R0,#0x0] ; ep_st
00000010 2101 MOV R1,#0x1
00000012 4208 TST R0,R1
00000014 D001 BEQ L_15 ; T=0x0000001A
245: 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_15:
246: 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_16 ; T=0x00000028
247: ep0_txdone(); /* 控制端点发送数据处理 process controll endpoint transmit data */
ARM COMPILER V2.53, USBDriver 28/06/07 09:54:12 PAGE 14
00000024 F7FF BL ep0_txdone?T ; T=0x0001 (1)
00000026 FFEC BL ep0_txdone?T ; T=0x0001 (2)
00000028 L_16:
249: 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_17 ; T=0x00000036
250: 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_17:
251: 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_18 ; T=0x00000044
252: 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_18:
254: 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_19 ; T=0x00000052
255: 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_19:
256: 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_20 ; T=0x00000060
257: 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_20:
259: USBDevIntClr = FASTINTERRUPT;
00000060 2102 MOV R1,#0x2
00000062 4800 LDR R0,=0xE0090008
00000064 6001 STR R1,[R0,#0x0]
00000066 ; SCOPE-END
260: }
00000066 B001 ADD R13,#0x4
00000068 BC08 POP {R3}
0000006A 4718 BX R3
0000006C ENDP ; 'Usb_HPService?T'
*** CODE SEGMENT '?PR?Usb_LPService?T?USBDriver':
269: void Usb_LPService(void)
00000000 B500 PUSH {LR}
00000002 B081 SUB R13,#0x4
270: {
00000004 ; SCOPE-START
273: ep_st = USBEpIntSt; /* 读端点中断状态寄存器 read endpoint interrupt status register */
00000004 4800 LDR R0,=0xE0090030
00000006 6801 LDR R1,[R0,#0x0]
00000008 A800 ADD R0,R13,#0x0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -