📄 usbci.lst
字号:
00000002 A800 ADD R0,R13,#0x0
00000004 7800 LDRB R0,[R0,#0x0] ; bEnble
00000006 1C01 MOV R1,R0
00000008 0409 LSL R1,R1,#0x10
0000000A 4840 LDR R0,=0x100
0000000C 4301 ORR R1,R0
0000000E 4800 LDR R0,=0xD80500
00000010 F7FF BL USB_SendCmd?T ; T=0x0001 (1)
00000012 FFF6 BL USB_SendCmd?T ; T=0x0001 (2)
179: }
00000014 B001 ADD R13,#0x4
00000016 BC08 POP {R3}
00000018 4718 BX R3
0000001A ENDP ; 'USB_SetEndpointEnable?T'
*** CODE SEGMENT '?PR?USB_SetMode?T?USBCI':
188: void USB_SetMode(INT8U value)
00000000 B501 PUSH {R0,LR}
190: USB_SendCmd(USBCMD_SET_MODE, ((INT32U)(value << 16)) | USBDAT_SET_MODE);
00000002 A800 ADD R0,R13,#0x0
00000004 7800 LDRB R0,[R0,#0x0] ; value
00000006 1C01 MOV R1,R0
00000008 0409 LSL R1,R1,#0x10
0000000A 4840 LDR R0,=0x100
0000000C 4301 ORR R1,R0
0000000E 4800 LDR R0,=0xF30500
00000010 F7FF BL USB_SendCmd?T ; T=0x0001 (1)
00000012 FFF6 BL USB_SendCmd?T ; T=0x0001 (2)
191: }
00000014 B001 ADD R13,#0x4
00000016 BC08 POP {R3}
00000018 4718 BX R3
0000001A ENDP ; 'USB_SetMode?T'
*** CODE SEGMENT '?PR?USB_SetDevStatus?T?USBCI':
200: void USB_SetDevStatus(INT8U value)
00000000 B501 PUSH {R0,LR}
202: USB_SendCmd(USBCMD_SET_DEVSTATUS, ((INT32U)(value << 16)) | USBDAT_SET_DEVSTATUS);
00000002 A800 ADD R0,R13,#0x0
00000004 7800 LDRB R0,[R0,#0x0] ; value
00000006 1C01 MOV R1,R0
00000008 0409 LSL R1,R1,#0x10
0000000A 4840 LDR R0,=0x100
0000000C 4301 ORR R1,R0
0000000E 4800 LDR R0,=0xFE0500
00000010 F7FF BL USB_SendCmd?T ; T=0x0001 (1)
00000012 FFF6 BL USB_SendCmd?T ; T=0x0001 (2)
203: }
00000014 B001 ADD R13,#0x4
00000016 BC08 POP {R3}
00000018 4718 BX R3
ARM COMPILER V2.53, USBCI 28/06/07 09:54:12 PAGE 13
0000001A ENDP ; 'USB_SetDevStatus?T'
*** CODE SEGMENT '?PR?USB_GetDevStatus?T?USBCI':
212: INT8U USB_GetDevStatus(void)
00000000 B500 PUSH {LR}
214: USB_SendCmd(USBCMD_GET_DEVSTATUS, 0);
00000002 4800 LDR R0,=0xFE0500
00000004 2100 MOV R1,#0x0
00000006 F7FF BL USB_SendCmd?T ; T=0x0001 (1)
00000008 FFFB BL USB_SendCmd?T ; T=0x0001 (2)
216: return USB_GetData(USBDAT_GET_DEVSTATUS);
0000000A 4800 LDR R0,=0xFE0200
0000000C F7FF BL USB_GetData?T ; T=0x0001 (1)
0000000E FFF8 BL USB_GetData?T ; T=0x0001 (2)
00000010 0600 LSL R0,R0,#0x18 ; USB_GetData?T
00000012 0E00 LSR R0,R0,#0x18
217: }
00000014 BC08 POP {R3}
00000016 4718 BX R3
00000018 ENDP ; 'USB_GetDevStatus?T'
*** CODE SEGMENT '?PR?USB_SelectEndpoint?T?USBCI':
226: INT8U USB_SelectEndpoint(INT8U endp)
00000000 B501 PUSH {R0,LR}
00000002 B081 SUB R13,#0x4
227: {
00000004 ; SCOPE-START
228: INT32U tmp = (INT32U)(endp << 16);
00000004 A801 ADD R0,R13,#0x4
00000006 7800 LDRB R0,[R0,#0x0] ; endp
00000008 1C01 MOV R1,R0
0000000A 0409 LSL R1,R1,#0x10
0000000C A800 ADD R0,R13,#0x0
0000000E 6001 STR R1,[R0,#0x0] ; tmp
230: USB_SendCmd(tmp | USBCMD_SEL_ENDP, 0);
00000010 A800 ADD R0,R13,#0x0
00000012 6800 LDR R0,[R0,#0x0] ; tmp
00000014 4800 LDR R1,=0x500
00000016 4308 ORR R0,R1
00000018 2100 MOV R1,#0x0
0000001A F7FF BL USB_SendCmd?T ; T=0x0001 (1)
0000001C FFF1 BL USB_SendCmd?T ; T=0x0001 (2)
232: return USB_GetData(tmp | USBDAT_SEL_ENDP);
0000001E A800 ADD R0,R13,#0x0
00000020 6800 LDR R0,[R0,#0x0] ; tmp
00000022 4980 LDR R1,=0x200
00000024 4308 ORR R0,R1
00000026 F7FF BL USB_GetData?T ; T=0x0001 (1)
00000028 FFEB BL USB_GetData?T ; T=0x0001 (2)
0000002A 0600 LSL R0,R0,#0x18 ; USB_GetData?T
0000002C 0E00 LSR R0,R0,#0x18
0000002E ; SCOPE-END
233: }
0000002E B001 ADD R13,#0x4
00000030 B001 ADD R13,#0x4
00000032 BC08 POP {R3}
00000034 4718 BX R3
00000036 ENDP ; 'USB_SelectEndpoint?T'
*** CODE SEGMENT '?PR?USB_SelectClrIntEndpoint?T?USBCI':
243: INT8U USB_SelectClrIntEndpoint(INT8U endp)
00000000 B501 PUSH {R0,LR}
00000002 B082 SUB R13,#0x8
244: {
00000004 ; SCOPE-START
246: INT32U tmp = (INT32U)((endp + 0x40) << 16);
00000004 A802 ADD R0,R13,#0x8
00000006 7800 LDRB R0,[R0,#0x0] ; endp
00000008 1C01 MOV R1,R0
ARM COMPILER V2.53, USBCI 28/06/07 09:54:12 PAGE 14
0000000A 3140 ADD R1,#0x40
0000000C 0409 LSL R1,R1,#0x10
0000000E A801 ADD R0,R13,#0x4
00000010 6001 STR R1,[R0,#0x0] ; tmp
248: USB_SendCmd(tmp | USBCMD_SEL_CLRINT_ENDP, 0);
00000012 A801 ADD R0,R13,#0x4
00000014 6800 LDR R0,[R0,#0x0] ; tmp
00000016 4800 LDR R1,=0x500
00000018 4308 ORR R0,R1
0000001A 2100 MOV R1,#0x0
0000001C F7FF BL USB_SendCmd?T ; T=0x0001 (1)
0000001E FFF0 BL USB_SendCmd?T ; T=0x0001 (2)
249: i = USB_GetData(tmp | USBDAT_SEL_CLRINT_ENDP);
00000020 A801 ADD R0,R13,#0x4
00000022 6800 LDR R0,[R0,#0x0] ; tmp
00000024 4980 LDR R1,=0x200
00000026 4308 ORR R0,R1
00000028 F7FF BL USB_GetData?T ; T=0x0001 (1)
0000002A FFEA BL USB_GetData?T ; T=0x0001 (2)
0000002C A900 ADD R1,R13,#0x0
0000002E 7008 STRB R0,[R1,#0x0] ; i
251: USBEpIntClr = (0x01 << endp);
00000030 A802 ADD R0,R13,#0x8
00000032 7800 LDRB R0,[R0,#0x0] ; endp
00000034 2101 MOV R1,#0x1
00000036 4081 LSL R1,R0
00000038 4800 LDR R0,=0xE0090038
0000003A 6001 STR R1,[R0,#0x0]
253: return i;
0000003C A800 ADD R0,R13,#0x0
0000003E 7800 LDRB R0,[R0,#0x0] ; i
00000040 ; SCOPE-END
254: }
00000040 B002 ADD R13,#0x8
00000042 B001 ADD R13,#0x4
00000044 BC08 POP {R3}
00000046 4718 BX R3
00000048 ENDP ; 'USB_SelectClrIntEndpoint?T'
*** CODE SEGMENT '?PR?USB_SetEndpointStatus?T?USBCI':
264: void USB_SetEndpointStatus(INT8U endp, INT8U bStalled)
00000000 B503 PUSH {R0-R1,LR}
00000002 B082 SUB R13,#0x8
265: {
00000004 ; SCOPE-START
266: INT32U tmp1 = (INT32U)((endp + 0x40) << 16);
00000004 A802 ADD R0,R13,#0x8
00000006 7800 LDRB R0,[R0,#0x0] ; endp
00000008 1C01 MOV R1,R0
0000000A 3140 ADD R1,#0x40
0000000C 0409 LSL R1,R1,#0x10
0000000E A800 ADD R0,R13,#0x0
00000010 6001 STR R1,[R0,#0x0] ; tmp1
267: INT32U tmp2 = (INT32U)(bStalled << 16);
00000012 A803 ADD R0,R13,#0xC
00000014 7800 LDRB R0,[R0,#0x0] ; bStalled
00000016 1C01 MOV R1,R0
00000018 0409 LSL R1,R1,#0x10
0000001A A801 ADD R0,R13,#0x4
0000001C 6001 STR R1,[R0,#0x0] ; tmp2
269: USB_SendCmd(tmp1 | USBCMD_SET_ENDP_STATUS, tmp2 | USBDAT_SET_ENDP_STATUS);
0000001E A800 ADD R0,R13,#0x0
00000020 6800 LDR R0,[R0,#0x0] ; tmp1
00000022 4800 LDR R1,=0x500
00000024 4308 ORR R0,R1
00000026 A901 ADD R1,R13,#0x4
00000028 6809 LDR R1,[R1,#0x0] ; tmp2
ARM COMPILER V2.53, USBCI 28/06/07 09:54:12 PAGE 15
0000002A 4A40 LDR R2,=0x100
0000002C 4311 ORR R1,R2
0000002E F7FF BL USB_SendCmd?T ; T=0x0001 (1)
00000030 FFE7 BL USB_SendCmd?T ; T=0x0001 (2)
00000032 ; SCOPE-END
270: }
00000032 B002 ADD R13,#0x8
00000034 B002 ADD R13,#0x8
00000036 BC08 POP {R3}
00000038 4718 BX R3
0000003A ENDP ; 'USB_SetEndpointStatus?T'
*** CODE SEGMENT '?PR?USB_ClearBuffer?T?USBCI':
279: INT8U USB_ClearBuffer(void)
00000000 B500 PUSH {LR}
282: USB_SendCmd(USBCMD_CLEAR_BUFFER, 0); /* 该命令没有数据阶段 */
00000002 4800 LDR R0,=0xF20500
00000004 2100 MOV R1,#0x0
00000006 F7FF BL USB_SendCmd?T ; T=0x0001 (1)
00000008 FFFB BL USB_SendCmd?T ; T=0x0001 (2)
284: return USB_GetData(USBDAT_CLEAR_BUFFER);
0000000A 4800 LDR R0,=0xF20200
0000000C F7FF BL USB_GetData?T ; T=0x0001 (1)
0000000E FFF8 BL USB_GetData?T ; T=0x0001 (2)
00000010 0600 LSL R0,R0,#0x18 ; USB_GetData?T
00000012 0E00 LSR R0,R0,#0x18
285: }
00000014 BC08 POP {R3}
00000016 4718 BX R3
00000018 ENDP ; 'USB_ClearBuffer?T'
*** CODE SEGMENT '?PR?USB_ValidBuffer?T?USBCI':
294: void USB_ValidBuffer(void)
00000000 B500 PUSH {LR}
296: USB_SendCmd(USBCMD_VALID_BUFFER, 0);
00000002 4800 LDR R0,=0xFA0500
00000004 2100 MOV R1,#0x0
00000006 F7FF BL USB_SendCmd?T ; T=0x0001 (1)
00000008 FFFB BL USB_SendCmd?T ; T=0x0001 (2)
297: }
0000000A BC08 POP {R3}
0000000C 4718 BX R3
0000000E ENDP ; 'USB_ValidBuffer?T'
*** CODE SEGMENT '?PR?USB_ReadEndpoint?T?USBCI':
314: INT8U USB_ReadEndpoint(INT8U endp, INT8U len, INT8U *buf)
00000000 B507 PUSH {R0-R2,LR}
00000002 B084 SUB R13,#0x10
315: {
00000004 ; SCOPE-START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -