⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dl_device_usbwin.cod

📁 平台PXA270, Mobile6.0 这是270的mobile6.0的bootloader
💻 COD
📖 第 1 页 / 共 5 页
字号:

; 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 + -