📄 dl_device_usbwin.cod
字号:
; 367 : int i;
; 368 :
; 369 : for( i=0; i<g_DebugStringNum; i++ )
00004 e59f5034 ldr r5, [pc, #0x34]
00008 e3a06000 mov r6, #0
0000c e5953000 ldr r3, [r5]
00010 e3530000 cmp r3, #0
00014 da000006 ble |$L43583|
00018 e59f401c ldr r4, [pc, #0x1C]
0001c |$L43581|
; 370 : {
; 371 : EdbgOutputDebugString( g_DebugString[i] );
0001c e4940004 ldr r0, [r4], #4
00020 eb000000 bl EdbgOutputDebugString
00024 e5953000 ldr r3, [r5]
00028 e2866001 add r6, r6, #1
0002c e1560003 cmp r6, r3
00030 bafffff9 blt |$L43581|
00034 |$L43583|
; 372 : }
; 373 : }
00034 e8bd4070 ldmia sp!, {r4 - r6, lr}
00038 e12fff1e bx lr
0003c |$L44817|
0003c 00000000 DCD |g_DebugString|
00040 00000000 DCD |g_DebugStringNum|
00044 |$M44813|
ENDP ; |SA_USB_Disp_Debug_String|
EXPORT |SA_USB_Dump_Data|
EXPORT |??_C@_0BI@FNNHABIE@SA_USB_Dump_Data?3?5begin?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_02PCIJFNDE@?$AN?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_05NLGPLALJ@0x?$CFx?5?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0BK@EDBILOJB@?$AN?6SA_USB_Dump_Data?3?5end?$AN?6?$AA@| [ DATA ] ; `string'
00000 AREA |.text| { |SA_USB_Dump_Data| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$SA_USB_Dump_Data|, PDATA, SELECTION=5, ASSOC=|.text| { |SA_USB_Dump_Data| } ; comdat associative
|$T44828| DCD |$L44827|
DCD 0x40001901
00000 AREA |.rdata| { |??_C@_0BK@EDBILOJB@?$AN?6SA_USB_Dump_Data?3?5end?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BK@EDBILOJB@?$AN?6SA_USB_Dump_Data?3?5end?$AN?6?$AA@| DCB 0xd, 0xa
DCB "SA_USB_Dump_Data: end", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_05NLGPLALJ@0x?$CFx?5?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_05NLGPLALJ@0x?$CFx?5?$AA@| DCB "0x%x ", 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_02PCIJFNDE@?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_02PCIJFNDE@?$AN?6?$AA@| DCB 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0BI@FNNHABIE@SA_USB_Dump_Data?3?5begin?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BI@FNNHABIE@SA_USB_Dump_Data?3?5begin?$AA@| DCB "SA_USB_Dump_Data"
DCB ": begin", 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |SA_USB_Dump_Data| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |SA_USB_Dump_Data| PROC
; 379 : {
00000 |$L44827|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 |$M44825|
00004 e1a05001 mov r5, r1
00008 e1a06000 mov r6, r0
; 380 : DWORD i;
; 381 :
; 382 : EdbgOutputDebugString( "SA_USB_Dump_Data: begin" );
0000c e59f004c ldr r0, [pc, #0x4C]
00010 eb000000 bl EdbgOutputDebugString
; 383 : for( i=0; i<dwLen; i++ )
00014 e3a04000 mov r4, #0
00018 e3550000 cmp r5, #0
0001c 0a000008 beq |$L43594|
00020 |$L43592|
; 384 : {
; 385 : if( !(i%8) )
00020 e3140007 tst r4, #7
; 386 : {
; 387 : EdbgOutputDebugString( "\r\n" );
00024 059f0030 ldreq r0, [pc, #0x30]
00028 0b000000 bleq EdbgOutputDebugString
; 388 : }
; 389 : EdbgOutputDebugString( "0x%x ", *pData++ );
0002c e4d61001 ldrb r1, [r6], #1
00030 e59f0020 ldr r0, [pc, #0x20]
00034 eb000000 bl EdbgOutputDebugString
00038 e2844001 add r4, r4, #1
0003c e1540005 cmp r4, r5
00040 3afffff6 bcc |$L43592|
00044 |$L43594|
; 390 : }
; 391 : EdbgOutputDebugString( "\r\nSA_USB_Dump_Data: end\r\n" );
00044 e59f0008 ldr r0, [pc, #8]
00048 eb000000 bl EdbgOutputDebugString
; 392 : }
0004c e8bd4070 ldmia sp!, {r4 - r6, lr}
00050 e12fff1e bx lr
00054 |$L44830|
00054 00000000 DCD |??_C@_0BK@EDBILOJB@?$AN?6SA_USB_Dump_Data?3?5end?$AN?6?$AA@|
00058 00000000 DCD |??_C@_05NLGPLALJ@0x?$CFx?5?$AA@|
0005c 00000000 DCD |??_C@_02PCIJFNDE@?$AN?6?$AA@|
00060 00000000 DCD |??_C@_0BI@FNNHABIE@SA_USB_Dump_Data?3?5begin?$AA@|
00064 |$M44826|
ENDP ; |SA_USB_Dump_Data|
EXPORT |usbcable_wait|
EXPORT |??_C@_0DA@GAOKPFAF@?$CK?5Please?5connect?5USB?5cable?5betwe@| [ DATA ] ; `string'
EXPORT |??_C@_03LDCHGCFO@?$CFd?$AN?$AA@| [ DATA ] ; `string'
IMPORT |OALPAtoVA|
IMPORT |GPIOSetController|
IMPORT |GPIOSetControllerValue|
IMPORT |GPIOReadControllerGPLRValue|
00000 AREA |.text| { |usbcable_wait| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$usbcable_wait|, PDATA, SELECTION=5, ASSOC=|.text| { |usbcable_wait| } ; comdat associative
|$T44849| DCD |$L44848|
DCD 0x40003a01
00000 AREA |.rdata| { |??_C@_03LDCHGCFO@?$CFd?$AN?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_03LDCHGCFO@?$CFd?$AN?$AA@| DCB "%d", 0xd, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0DA@GAOKPFAF@?$CK?5Please?5connect?5USB?5cable?5betwe@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DA@GAOKPFAF@?$CK?5Please?5connect?5USB?5cable?5betwe@| DCB "* Ple"
DCB "ase connect USB cable between PC and wep.", 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |usbcable_wait| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |usbcable_wait| PROC
; 397 : {
00000 |$L44848|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 |$M44846|
; 398 : int i, in;
; 399 : DWORD timeout = 0;
; 400 : XLLP_GPIO_T *pGPIORegs = (P_XLLP_GPIO_T)OALPAtoVA(BULVERDE_BASE_REG_PA_GPIO, FALSE);
00004 e3a00101 mov r0, #1, 2
00008 e380060e orr r0, r0, #0xE, 12
0000c e3a01000 mov r1, #0
00010 e3a04000 mov r4, #0
00014 eb000000 bl OALPAtoVA
; 401 :
; 402 : #ifdef USBID
; 403 : GPIOSetController((XLLP_GPIO_T *)pGPIORegs, USBID | GPIO_AF0 | GPIO_IN);
; 404 : #endif
; 405 : GPIOSetControllerValue((XLLP_GPIO_T *)pGPIORegs, USBINT | GPIO_OUT_1);
00018 e3a01f43 mov r1, #0x43, 30
0001c e1a06000 mov r6, r0
00020 eb000000 bl GPIOSetControllerValue
; 406 : GPIOSetController((XLLP_GPIO_T *)pGPIORegs, USBINT | GPIO_AF0 | GPIO_OUT);
00024 e3a01a02 mov r1, #2, 20
00028 e381100c orr r1, r1, #0xC
0002c e1a00006 mov r0, r6
00030 eb000000 bl GPIOSetController
; 407 : GPIOSetController((XLLP_GPIO_T *)pGPIORegs, USBINT | GPIO_AF0 | GPIO_IN);
00034 e3a01a01 mov r1, #1, 20
00038 e381100c orr r1, r1, #0xC
0003c e1a00006 mov r0, r6
00040 eb000000 bl GPIOSetController
; 408 : GPIOSetController((XLLP_GPIO_T *)pGPIORegs, USBX | GPIO_AF0 | GPIO_IN);
00044 e3a01a01 mov r1, #1, 20
00048 e381100d orr r1, r1, #0xD
0004c e1a00006 mov r0, r6
00050 eb000000 bl GPIOSetController
; 409 :
; 410 : EdbgOutputDebugString( "* Please connect USB cable between PC and wep.\n" );
00054 e59f0088 ldr r0, [pc, #0x88]
00058 eb000000 bl EdbgOutputDebugString
; 411 : for (i = 9, in = 0; i && !in; i--)
0005c e3a05009 mov r5, #9
00060 e3a07000 mov r7, #0
00064 |$L43612|
00064 e3570000 cmp r7, #0
00068 1a000016 bne |$L43614|
; 412 : {
; 413 : EdbgOutputDebugString( "%d\r", i );
0006c e59f006c ldr r0, [pc, #0x6C]
00070 e1a01005 mov r1, r5
00074 eb000000 bl EdbgOutputDebugString
; 414 : for (timeout = 0x200000; timeout; timeout--)
00078 e3a04602 mov r4, #2, 12
0007c |$L43616|
; 415 : {
; 416 : if (GPIOReadControllerGPLRValue((XLLP_GPIO_T *)pGPIORegs, USBINT))
0007c e3a0100c mov r1, #0xC
00080 e1a00006 mov r0, r6
00084 eb000000 bl GPIOReadControllerGPLRValue
00088 e3500000 cmp r0, #0
0008c 1a000002 bne |$L44837|
; 414 : for (timeout = 0x200000; timeout; timeout--)
00090 e2544001 subs r4, r4, #1
00094 1afffff8 bne |$L43616|
; 415 : {
; 416 : if (GPIOReadControllerGPLRValue((XLLP_GPIO_T *)pGPIORegs, USBINT))
00098 ea000008 b |$L43613|
0009c |$L44837|
; 417 : {
; 418 : //GPIOSetControllerValue((XLLP_GPIO_T *)pGPIORegs, USBINT | GPIO_OUT_1);
; 419 : //GPIOSetController((XLLP_GPIO_T *)pGPIORegs, USBINT | GPIO_AF0 | GPIO_OUT);
; 420 : GPIOSetControllerValue((XLLP_GPIO_T *)pGPIORegs, USBX | GPIO_OUT_1);
0009c e3a01f43 mov r1, #0x43, 30
000a0 e3811001 orr r1, r1, #1
000a4 e1a00006 mov r0, r6
000a8 eb000000 bl GPIOSetControllerValue
; 421 : GPIOSetController((XLLP_GPIO_T *)pGPIORegs, USBX | GPIO_AF0 | GPIO_OUT);
000ac e3a01a02 mov r1, #2, 20
000b0 e381100d orr r1, r1, #0xD
000b4 e1a00006 mov r0, r6
000b8 eb000000 bl GPIOSetController
; 422 : in = 1;
000bc e3a07001 mov r7, #1
000c0 |$L43613|
; 411 : for (i = 9, in = 0; i && !in; i--)
000c0 e2555001 subs r5, r5, #1
000c4 1affffe6 bne |$L43612|
000c8 |$L43614|
; 423 : break;
; 424 : }
; 425 : }
; 426 : }
; 427 :
; 428 : return timeout ? 1 : 0;
000c8 e3540000 cmp r4, #0
000cc 13a00001 movne r0, #1
; 429 : }
000d0 18bd40f0 ldmneia sp!, {r4 - r7, lr}
; 423 : break;
; 424 : }
; 425 : }
; 426 : }
; 427 :
; 428 : return timeout ? 1 : 0;
000d4 03a00000 moveq r0, #0
; 429 : }
000d8 08bd40f0 ldmeqia sp!, {r4 - r7, lr}
000dc e12fff1e bx lr
000e0 |$L44851|
000e0 00000000 DCD |??_C@_03LDCHGCFO@?$CFd?$AN?$AA@|
000e4 00000000 DCD |??_C@_0DA@GAOKPFAF@?$CK?5Please?5connect?5USB?5cable?5betwe@|
000e8 |$M44847|
ENDP ; |usbcable_wait|
02756 AREA |.bss|, NOINIT
|udcStats| % 0x12c
00000 AREA |.text| { |getCommand| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$getCommand|, PDATA, SELECTION=5, ASSOC=|.text| { |getCommand| } ; comdat associative
|$T44864| DCD |$L44863|
DCD 0x40005502
; Function compile flags: /Ogsy
00000 AREA |.text| { |getCommand| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |getCommand| PROC
; 442 : {
00000 |$L44863|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 e24dd00c sub sp, sp, #0xC
00008 |$M44861|
00008 e1a05001 mov r5, r1
0000c e1a06000 mov r6, r0
; 443 : volatile unsigned int bytes_to_read =0, word_count, byte_count, rx_word1; // temp_byte_count;
; 444 : PBYTE pData = dataP;
; 445 :
; 446 : bytes_to_read = UDC_BCR_0(pUSBDrvInfo);
00010 e5963098 ldr r3, [r6, #0x98]
00014 e3a02000 mov r2, #0
00018 e58d2004 str r2, [sp, #4]
0001c e5933200 ldr r3, [r3, #0x200]
00020 e58d3004 str r3, [sp, #4]
; 447 : word_count = bytes_to_read/4;
00024 e59d3004 ldr r3, [sp, #4]
00028 e1a03123 mov r3, r3, lsr #2
0002c e58d3008 str r3, [sp, #8]
; 448 : byte_count = bytes_to_read%4;
00030 e59d3004 ldr r3, [sp, #4]
00034 e2033003 and r3, r3, #3
00038 e58d3004 str r3, [sp, #4]
; 449 :
; 450 : if (word_count)
0003c e59d3008 ldr r3, [sp, #8]
00040 e3530000 cmp r3, #0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -