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

📄 battif.cod

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

  00034	e1dd30b0	 ldrh        r3, [sp]

; 384  : 	value |= (0x1 << channel);

  00038	e3a01001	 mov         r1, #1

; 385  : 	value |= DIGITISER_REG0_POLL;
; 386  : 	WriteAC97(WFS_DIGITISER_REG0, value, DEV_BATTERY);

  0003c	e3a02003	 mov         r2, #3
  00040	e2033cfd	 and         r3, r3, #0xFD, 24
  00044	e1833411	 orr         r3, r3, r1, lsl r4
  00048	e3a00074	 mov         r0, #0x74
  0004c	e3833c02	 orr         r3, r3, #2, 24
  00050	e1a01803	 mov         r1, r3, lsl #16
  00054	e1a01821	 mov         r1, r1, lsr #16
  00058	e1cd10b0	 strh        r1, [sp]
  0005c	eb000000	 bl          WriteAC97
  00060		 |$L43504|

; 387  : 	
; 388  : 	// Wait the sample to be completed
; 389  :     do
; 390  :     {
; 391  : 		// wait for sample completion
; 392  : 		ReadAC97(WFS_DIGITISER_REG0, (unsigned short *)&value, DEV_BATTERY);

  00060	e3a02003	 mov         r2, #3
  00064	e28d1000	 add         r1, sp, #0
  00068	e3a00074	 mov         r0, #0x74
  0006c	eb000000	 bl          ReadAC97

; 393  : 		Wait(10);

  00070	e3a0000a	 mov         r0, #0xA
  00074	eb000000	 bl          Wait

; 394  :     } while(value & DIGITISER_REG0_POLL);

  00078	e1dd30b0	 ldrh        r3, [sp]
  0007c	e3130c02	 tst         r3, #2, 24
  00080	1afffff6	 bne         |$L43504|

; 395  : 		
; 396  : 	ReadAC97(WFS_DIGITISER_READBACK, (unsigned short *)&value, DEV_BATTERY);	

  00084	e3a02003	 mov         r2, #3
  00088	e28d1000	 add         r1, sp, #0
  0008c	e3a0007a	 mov         r0, #0x7A
  00090	eb000000	 bl          ReadAC97

; 397  : 	
; 398  : 	// RETAILMSG(1, (TEXT("Channel = %d\r\n"), (value & DIGITISER_READ_BACK_ADCSRC_MASK) >> 12));
; 399  : 
; 400  : 	switch( channel )

  00094	e3540001	 cmp         r4, #1
  00098	0a000023	 beq         |$L43513|
  0009c	e3540002	 cmp         r4, #2
  000a0	0a00001d	 beq         |$L43516|
  000a4	e3540003	 cmp         r4, #3
  000a8	0a000017	 beq         |$L43518|
  000ac	e3540004	 cmp         r4, #4
  000b0	0a000011	 beq         |$L43520|
  000b4	e3540005	 cmp         r4, #5
  000b8	0a00000b	 beq         |$L43522|
  000bc	e3540006	 cmp         r4, #6
  000c0	0a000005	 beq         |$L43524|
  000c4	e3540007	 cmp         r4, #7
  000c8	1a000022	 bne         |$L43510|

; 447  : 			}
; 448  : 			*sample = value & DIGITISER_READ_BACK_ADCD_MASK;
; 449  : 			break;
; 450  : 		case AUX4:
; 451  : 			if((value & DIGITISER_READ_BACK_ADCSRC_MASK) != (AUX4 << 12) )

  000cc	e1dd20b0	 ldrh        r2, [sp]
  000d0	e2023a07	 and         r3, r2, #7, 20
  000d4	e3530a07	 cmp         r3, #7, 20

; 452  : 			{
; 453  : 				EdbgOutputDebugString("sampleADC: False channel!\r\n");
; 454  : 				return FALSE;

  000d8	ea000016	 b           |$L43728|
  000dc		 |$L43524|

; 439  : 			}
; 440  : 			*sample = value & DIGITISER_READ_BACK_ADCD_MASK;
; 441  : 			break;
; 442  : 		case AUX3:
; 443  : 			if((value & DIGITISER_READ_BACK_ADCSRC_MASK) != (AUX3 << 12) )

  000dc	e1dd20b0	 ldrh        r2, [sp]
  000e0	e2023a07	 and         r3, r2, #7, 20
  000e4	e3530a06	 cmp         r3, #6, 20

; 444  : 			{
; 445  : 				EdbgOutputDebugString("sampleADC: False channel!\r\n");
; 446  : 				return FALSE;

  000e8	ea000012	 b           |$L43728|
  000ec		 |$L43522|

; 431  : 			}
; 432  : 			*sample = value & DIGITISER_READ_BACK_ADCD_MASK;
; 433  : 			break;
; 434  : 		case AUX2:
; 435  : 			if((value & DIGITISER_READ_BACK_ADCSRC_MASK) != (AUX2 << 12) )

  000ec	e1dd20b0	 ldrh        r2, [sp]
  000f0	e2023a07	 and         r3, r2, #7, 20
  000f4	e3530a05	 cmp         r3, #5, 20

; 436  : 			{
; 437  : 				EdbgOutputDebugString("sampleADC: False channel!\r\n");
; 438  : 				return FALSE;

  000f8	ea00000e	 b           |$L43728|
  000fc		 |$L43520|

; 423  : 			}
; 424  : 			*sample = value & DIGITISER_READ_BACK_ADCD_MASK;
; 425  : 			break;
; 426  : 		case AUX1:
; 427  : 			if((value & DIGITISER_READ_BACK_ADCSRC_MASK) != (AUX1 << 12) )

  000fc	e1dd20b0	 ldrh        r2, [sp]
  00100	e2023a07	 and         r3, r2, #7, 20
  00104	e3530901	 cmp         r3, #1, 18

; 428  : 			{
; 429  : 				EdbgOutputDebugString("sampleADC: False channel!\r\n");
; 430  : 				return FALSE;

  00108	ea00000a	 b           |$L43728|
  0010c		 |$L43518|

; 415  : 			}
; 416  : 			*sample = value & DIGITISER_READ_BACK_ADCD_MASK;
; 417  : 			break;
; 418  : 		case PRSS:
; 419  : 			if((value & DIGITISER_READ_BACK_ADCSRC_MASK) != (PRSS << 12) )

  0010c	e1dd20b0	 ldrh        r2, [sp]
  00110	e2023a07	 and         r3, r2, #7, 20
  00114	e3530a03	 cmp         r3, #3, 20

; 420  : 			{
; 421  : 				EdbgOutputDebugString("sampleADC: False channel!\r\n");
; 422  : 				return FALSE;

  00118	ea000006	 b           |$L43728|
  0011c		 |$L43516|

; 409  : 			break;
; 410  : 		case COOY:
; 411  : 			if((value & DIGITISER_READ_BACK_ADCSRC_MASK) != (COOY << 12) )

  0011c	e1dd20b0	 ldrh        r2, [sp]
  00120	e2023a07	 and         r3, r2, #7, 20
  00124	e3530a02	 cmp         r3, #2, 20

; 412  : 			{
; 413  : 				EdbgOutputDebugString("sampleADC: False channel!\r\n");
; 414  : 				return FALSE;

  00128	ea000002	 b           |$L43728|
  0012c		 |$L43513|

; 401  : 	{
; 402  : 		case COOX:
; 403  : 			if((value & DIGITISER_READ_BACK_ADCSRC_MASK) != (COOX << 12) )

  0012c	e1dd20b0	 ldrh        r2, [sp]
  00130	e2023a07	 and         r3, r2, #7, 20
  00134	e3530a01	 cmp         r3, #1, 20
  00138		 |$L43728|
  00138	0a000002	 beq         |$L43514|

; 404  : 			{
; 405  : 				EdbgOutputDebugString("sampleADC: False channel!\r\n");

  0013c	e59f003c	 ldr         r0, [pc, #0x3C]
  00140	eb000000	 bl          EdbgOutputDebugString

; 406  : 				return FALSE;

  00144	ea000008	 b           |$L43727|
  00148		 |$L43514|

; 407  : 			}
; 408  : 			*sample = value & DIGITISER_READ_BACK_ADCD_MASK;

  00148	e3a03eff	 mov         r3, #0xFF, 28
  0014c	e383300f	 orr         r3, r3, #0xF
  00150	e0023003	 and         r3, r2, r3
  00154	e5853000	 str         r3, [r5]
  00158		 |$L43510|

; 455  : 			}
; 456  : 			*sample = value & DIGITISER_READ_BACK_ADCD_MASK;
; 457  : 			break;
; 458  : 		default:
; 459  : 			break;
; 460  : 	}
; 461  : 
; 462  : 	return TRUE;

  00158	e3a00001	 mov         r0, #1
  0015c	ea000003	 b           |$L43498|
  00160		 |$L43501|

; 377  : 	{
; 378  : 		EdbgOutputDebugString("sampleADC: Invalid channel(channel = %d)!\r\n", channel);

  00160	e59f0014	 ldr         r0, [pc, #0x14]
  00164	e1a01004	 mov         r1, r4
  00168	eb000000	 bl          EdbgOutputDebugString
  0016c		 |$L43727|

; 379  : 		return FALSE;

  0016c	e3a00000	 mov         r0, #0
  00170		 |$L43498|

; 463  : }

  00170	e28dd004	 add         sp, sp, #4
  00174	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00178	e12fff1e	 bx          lr
  0017c		 |$L43734|
  0017c	00000000	 DCD         |??_C@_0CM@IBNDAIBL@sampleADC?3?5Invalid?5channel?$CIchann@|
  00180	00000000	 DCD         |??_C@_0BM@MBMPIEFD@sampleADC?3?5False?5channel?$CB?$AN?6?$AA@|
  00184		 |$M43730|

			 ENDP  ; |sampleADC|

	EXPORT	|GetPowerStatus|
	EXPORT	|??_C@_0BD@HEOOKLFG@PowerStatus?3?5?$CFd?5?$AN?6?$AA@| [ DATA ] ; `string'
	IMPORT	|GPIOReadControllerGPLRValue|

  00000			 AREA	 |.text| { |GetPowerStatus| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$GetPowerStatus|, PDATA, SELECTION=5, ASSOC=|.text| { |GetPowerStatus| } ; comdat associative
|$T43743| DCD	|$L43742|
	DCD	0x40001a01

  00000			 AREA	 |.rdata| { |??_C@_0BD@HEOOKLFG@PowerStatus?3?5?$CFd?5?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BD@HEOOKLFG@PowerStatus?3?5?$CFd?5?$AN?6?$AA@| DCB "PowerStatus: "
	DCB	"%d ", 0xd, 0xa, 0x0			; `string'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |GetPowerStatus| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |GetPowerStatus| PROC

; 466  : {

  00000		 |$L43742|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M43740|

; 467  : 	BOOL PowerStatus = FALSE;
; 468  : 	
; 469  : 	GPIOSetController((XLLP_GPIO_T *) vp_GPIORegs, USBINT |GPIO_AF0 |GPIO_IN);

  00004	e59f4058	 ldr         r4, [pc, #0x58]
  00008	e3a01a01	 mov         r1, #1, 20
  0000c	e381100c	 orr         r1, r1, #0xC
  00010	e5940000	 ldr         r0, [r4]
  00014	eb000000	 bl          GPIOSetController

; 470  : 	GPIOSetController((XLLP_GPIO_T *) vp_GPIORegs, EXTPWR|GPIO_AF0 |GPIO_IN);

  00018	e5940000	 ldr         r0, [r4]
  0001c	e3a01d41	 mov         r1, #0x41, 26
  00020	e381101f	 orr         r1, r1, #0x1F
  00024	eb000000	 bl          GPIOSetController

; 471  : 	
; 472  : 	PowerStatus = ISEXTPWRON() | ISUSBPWRON();

  00028	e5940000	 ldr         r0, [r4]
  0002c	e3a0105f	 mov         r1, #0x5F
  00030	eb000000	 bl          GPIOReadControllerGPLRValue
  00034	e1a05000	 mov         r5, r0
  00038	e5940000	 ldr         r0, [r4]
  0003c	e3a0100c	 mov         r1, #0xC
  00040	eb000000	 bl          GPIOReadControllerGPLRValue
  00044	e1a04000	 mov         r4, r0

; 473  : 	
; 474  : 	EdbgOutputDebugString ("PowerStatus: %d \r\n",  PowerStatus); 

  00048	e59f0010	 ldr         r0, [pc, #0x10]
  0004c	e1841005	 orr         r1, r4, r5
  00050	eb000000	 bl          EdbgOutputDebugString

; 475  : 	
; 476  : 	return PowerStatus;

  00054	e1840005	 orr         r0, r4, r5

; 477  : }

  00058	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  0005c	e12fff1e	 bx          lr
  00060		 |$L43745|
  00060	00000000	 DCD         |??_C@_0BD@HEOOKLFG@PowerStatus?3?5?$CFd?5?$AN?6?$AA@|
  00064	00000000	 DCD         |vp_GPIORegs|
  00068		 |$M43741|

			 ENDP  ; |GetPowerStatus|

	EXPORT	|GetBatteryFilter|
	EXPORT	|??_C@_0O@OLGDFBEI@filter?3?5?$CFd?5?$AN?6?$AA@| [ DATA ] ; `string'

  00000			 AREA	 |.text| { |GetBatteryFilter| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$GetBatteryFilter|, PDATA, SELECTION=5, ASSOC=|.text| { |GetBatteryFilter| } ; comdat associative
|$T43754| DCD	|$L43753|
	DCD	0x40001202

  00000			 AREA	 |.rdata| { |??_C@_0O@OLGDFBEI@filter?3?5?$CFd?5?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0O@OLGDFBEI@filter?3?5?$CFd?5?$AN?6?$AA@| DCB "filter: %d ", 0xd, 0xa
	DCB	0x0					; `string'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |GetBatteryFilter| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |GetBatteryFilter| PROC

; 480  : {

  00000		 |$L43753|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004	e24dd004	 sub         sp, sp, #4
  00008		 |$M43751|

; 481  : 	DWORD sample;
; 482  : 	
; 483  : 	if(sampleADC(&sample, AUX3))

  00008	e3a01006	 mov         r1, #6
  0000c	e28d0000	 add         r0, sp, #0
  00010	eb000000	 bl          sampleADC
  00014	e3500000	 cmp         r0, #0
  00018	0a000004	 beq         |$L43538|

; 484  : 	{
; 485  : 		EdbgOutputDebugString ("filter: %d \r\n",  sample);

  0001c	e59d4000	 ldr         r4, [sp]
  00020	e59f001c	 ldr         r0, [pc, #0x1C]
  00024	e1a01004	 mov         r1, r4
  00028	eb000000	 bl          EdbgOutputDebugString

; 486  : 		return(sample); 

  0002c	ea000000	 b           |$L43540|
  00030		 |$L43538|

; 487  : 	}
; 488  : 	else
; 489  : 	{
; 490  : 		return (0);

  00030	e3a04000	 mov         r4, #0
  00034		 |$L43540|

; 486  : 		return(sample); 

  00034	e1a00004	 mov         r0, r4

; 491  : 	}
; 492  : }

  00038	e28dd004	 add         sp, sp, #4
  0003c	e8bd4010	 ldmia       sp!, {r4, lr}
  00040	e12fff1e	 bx          lr
  00044		 |$L43756|
  00044	00000000	 DCD         |??_C@_0O@OLGDFBEI@filter?3?5?$CFd?5?$AN?6?$AA@|
  00048		 |$M43752|

			 ENDP  ; |GetBatteryFilter|

	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -