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

📄 xllp_pcf506.cod

📁 pxa270为硬件平台的wince操作系统XLLP驱动源码
💻 COD
📖 第 1 页 / 共 5 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4345 

	TTL	F:\wm520\PLATFORM\intel_dbpxa27x\Public\CSP\ARM\INTEL\PXA27X\XLLP\SOURCE\.\xllp_pcf506.c
	CODE32

  00000			 AREA	 |.drectve|, DRECTVE
	DCB	"-defaultlib:coredll.lib "
	DCB	"-defaultlib:corelibc.lib "


  00000			 AREA	 |.bss|, NOINIT
|g_IsPCF506Configured| % 0x4

  00000			 AREA	 |.data|, DATA
|?LastY@?1??Pcf506TchGetXY@@9@9| DCW 0x400		; `Pcf506TchGetXY'::`2'::LastY
	%	2
|?LastX@?1??Pcf506TchGetXY@@9@9| DCW 0x400		; `Pcf506TchGetXY'::`2'::LastX
	EXPORT	|PCF506UnConfigure|
; File f:\wm520\platform\intel_dbpxa27x\public\csp\arm\intel\pxa27x\xllp\source\xllp_pcf506.c

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

  00000			 AREA	 |.pdata$$PCF506UnConfigure|, PDATA, SELECTION=5, ASSOC=|.text| { |PCF506UnConfigure| } ; comdat associative
|$T35557| DCD	|$L35556|
	DCD	0x40000800
; Function compile flags: /Ogsy

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

  00000		 |PCF506UnConfigure| PROC

; 83   : {

  00000		 |$L35556|
  00000		 |$M35554|

; 84   :     if (!g_IsPCF506Configured)

  00000	e59f2014	 ldr         r2, [pc, #0x14]

; 85   :     {
; 86   :         return 1;

  00004	e3a00001	 mov         r0, #1
  00008	e5923000	 ldr         r3, [r2]
  0000c	e3530000	 cmp         r3, #0

; 87   :     }
; 88   : 
; 89   :     //here do something by zgb
; 90   :     //if (hPCF506ControlMutex)
; 91   :     //{
; 92   :     //    CloseHandle(hPCF506ControlMutex);
; 93   :     //}
; 94   : 
; 95   :     g_IsPCF506Configured = 0;

  00010	13a03000	 movne       r3, #0
  00014	15823000	 strne       r3, [r2]

; 96   : 
; 97   :     return 1;
; 98   : }

  00018	e12fff1e	 bx          lr
  0001c		 |$L35559|
  0001c	00000000	 DCD         |g_IsPCF506Configured|
  00020		 |$M35555|

			 ENDP  ; |PCF506UnConfigure|

	EXPORT	|Pcf506TchSetup|
	IMPORT	|XllpPI2CWrite|

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

  00000			 AREA	 |.pdata$$Pcf506TchSetup|, PDATA, SELECTION=5, ASSOC=|.text| { |Pcf506TchSetup| } ; comdat associative
|$T35566| DCD	|$L35565|
	DCD	0x40001202
; Function compile flags: /Ogsy

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

  00000		 |Pcf506TchSetup| PROC

; 161  : {

  00000		 |$L35565|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004	e24dd00c	 sub         sp, sp, #0xC
  00008		 |$M35563|

; 162  : 	unsigned char data[2];
; 163  : 	//BOOL IsMutex=FALSE;
; 164  : 
; 165  : 	//IsMutex=WaitPcf506Mutex();
; 166  : 	//改变ADCC1 
; 167  : 	data[0]=0x2e;                            
; 168  : 	data[1]=0x23;    //interupt mode with WAKE-UP function
; 169  : 	XllpPI2CWrite(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 2, 1);

  00008	e5901004	 ldr         r1, [r0, #4]
  0000c	e5900010	 ldr         r0, [r0, #0x10]
  00010	e3a0e02e	 mov         lr, #0x2E
  00014	e3a04023	 mov         r4, #0x23
  00018	e3a05001	 mov         r5, #1
  0001c	e3a06002	 mov         r6, #2
  00020	e28d3008	 add         r3, sp, #8
  00024	e3a02008	 mov         r2, #8
  00028	e5cde008	 strb        lr, [sp, #8]
  0002c	e5cd4009	 strb        r4, [sp, #9]
  00030	e58d5004	 str         r5, [sp, #4]
  00034	e58d6000	 str         r6, [sp]
  00038	eb000000	 bl          XllpPI2CWrite

; 170  : 	//if(IsMutex)  
; 171  : 	//	ReleasePcf506Mutex();
; 172  : 	return;
; 173  : }

  0003c	e28dd00c	 add         sp, sp, #0xC
  00040	e8bd4070	 ldmia       sp!, {r4 - r6, lr}
  00044	e12fff1e	 bx          lr
  00048		 |$M35564|

			 ENDP  ; |Pcf506TchSetup|

	EXPORT	|Pcf506ResetADCC|

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

  00000			 AREA	 |.pdata$$Pcf506ResetADCC|, PDATA, SELECTION=5, ASSOC=|.text| { |Pcf506ResetADCC| } ; comdat associative
|$T35574| DCD	|$L35573|
	DCD	0x40001202
; Function compile flags: /Ogsy

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

  00000		 |Pcf506ResetADCC| PROC

; 177  : {

  00000		 |$L35573|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004	e24dd00c	 sub         sp, sp, #0xC
  00008		 |$M35571|

; 178  : 	unsigned char data[2];
; 179  : 	//BOOL IsMutex=FALSE;
; 180  : 	
; 181  : 	//IsMutex=WaitPcf506Mutex();
; 182  : 	//此前要确保PMU工作在正常模式
; 183  : 	//其他寄存器使用默认值
; 184  : 	//改变ADCC1 
; 185  : 	data[0]=0x2e;                            
; 186  : 	data[1]=0x00;  
; 187  : 	XllpPI2CWrite(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 2, 1);

  00008	e5901004	 ldr         r1, [r0, #4]
  0000c	e5900010	 ldr         r0, [r0, #0x10]
  00010	e3a0e02e	 mov         lr, #0x2E
  00014	e3a04000	 mov         r4, #0
  00018	e3a05001	 mov         r5, #1
  0001c	e3a06002	 mov         r6, #2
  00020	e28d3008	 add         r3, sp, #8
  00024	e3a02008	 mov         r2, #8
  00028	e5cde008	 strb        lr, [sp, #8]
  0002c	e5cd4009	 strb        r4, [sp, #9]
  00030	e58d5004	 str         r5, [sp, #4]
  00034	e58d6000	 str         r6, [sp]
  00038	eb000000	 bl          XllpPI2CWrite

; 188  : 	//if(IsMutex)  
; 189  : 	//	ReleasePcf506Mutex();
; 190  : 
; 191  : 	return;
; 192  : }

  0003c	e28dd00c	 add         sp, sp, #0xC
  00040	e8bd4070	 ldmia       sp!, {r4 - r6, lr}
  00044	e12fff1e	 bx          lr
  00048		 |$M35572|

			 ENDP  ; |Pcf506ResetADCC|

	EXPORT	|Pcf506SetADCC|
	IMPORT	|XllpPI2CRead|

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

  00000			 AREA	 |.pdata$$Pcf506SetADCC|, PDATA, SELECTION=5, ASSOC=|.text| { |Pcf506SetADCC| } ; comdat associative
|$T35584| DCD	|$L35583|
	DCD	0x40002402
; Function compile flags: /Ogsy

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

  00000		 |Pcf506SetADCC| PROC

; 195  : {

  00000		 |$L35583|
  00000	e92d40f0	 stmdb       sp!, {r4 - r7, lr}
  00004	e24dd00c	 sub         sp, sp, #0xC
  00008		 |$M35581|
  00008	e1a05001	 mov         r5, r1
  0000c	e1a04000	 mov         r4, r0

; 196  : 	unsigned char data[2];
; 197  : 	//BOOL IsMutex=FALSE;
; 198  : 	//IsMutex=WaitPcf506Mutex();
; 199  : 	//改变ADCC1 
; 200  : 	data[0]=0x2e;                            
; 201  : 	XllpPI2CWrite(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 1, 0);		//write reg address

  00010	e5941004	 ldr         r1, [r4, #4]
  00014	e5940010	 ldr         r0, [r4, #0x10]
  00018	e3a0e02e	 mov         lr, #0x2E
  0001c	e3a06000	 mov         r6, #0
  00020	e3a07001	 mov         r7, #1
  00024	e28d3008	 add         r3, sp, #8
  00028	e3a02008	 mov         r2, #8
  0002c	e5cde008	 strb        lr, [sp, #8]
  00030	e58d6004	 str         r6, [sp, #4]
  00034	e58d7000	 str         r7, [sp]
  00038	eb000000	 bl          XllpPI2CWrite

; 202  : 	XllpPI2CRead(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data+1, 1, 1);		//read data from the reg address

  0003c	e5941004	 ldr         r1, [r4, #4]
  00040	e5940010	 ldr         r0, [r4, #0x10]
  00044	e28d3009	 add         r3, sp, #9
  00048	e3a02008	 mov         r2, #8
  0004c	e58d7004	 str         r7, [sp, #4]
  00050	e58d7000	 str         r7, [sp]
  00054	eb000000	 bl          XllpPI2CRead

; 203  : 	data[1] &= ~byte;

  00058	e5dd3009	 ldrb        r3, [sp, #9]

; 204  : 	XllpPI2CWrite(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 2, 1);

  0005c	e5941004	 ldr         r1, [r4, #4]
  00060	e5940010	 ldr         r0, [r4, #0x10]
  00064	e1c33005	 bic         r3, r3, r5
  00068	e5cd3009	 strb        r3, [sp, #9]
  0006c	e3a0e002	 mov         lr, #2
  00070	e28d3008	 add         r3, sp, #8
  00074	e3a02008	 mov         r2, #8
  00078	e58d7004	 str         r7, [sp, #4]
  0007c	e58de000	 str         lr, [sp]
  00080	eb000000	 bl          XllpPI2CWrite

; 205  : 	//if(IsMutex)  
; 206  : 	//	ReleasePcf506Mutex();
; 207  : 	return;
; 208  : }

  00084	e28dd00c	 add         sp, sp, #0xC
  00088	e8bd40f0	 ldmia       sp!, {r4 - r7, lr}
  0008c	e12fff1e	 bx          lr
  00090		 |$M35582|

			 ENDP  ; |Pcf506SetADCC|

	EXPORT	|Pcf506StartADCByInput|

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

  00000			 AREA	 |.pdata$$Pcf506StartADCByInput|, PDATA, SELECTION=5, ASSOC=|.text| { |Pcf506StartADCByInput| } ; comdat associative
|$T35592| DCD	|$L35591|
	DCD	0x40001202
; Function compile flags: /Ogsy

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

  00000		 |Pcf506StartADCByInput| PROC

; 212  : {

  00000		 |$L35591|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004	e24dd00c	 sub         sp, sp, #0xC
  00008		 |$M35589|

; 213  : 	unsigned char data[2];
; 214  : 	//BOOL IsMutex=FALSE;
; 215  : 	//IsMutex=WaitPcf506Mutex();
; 216  : 	//RETAILMSG(1,(TEXT("Pcf506StartADCByInput()!\r\n")));
; 217  : 	data[0]=0x2f;                                 
; 218  : 	data[1]=0x1d;    //start
; 219  : 	XllpPI2CWrite(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 2, 1);

  00008	e5901004	 ldr         r1, [r0, #4]
  0000c	e5900010	 ldr         r0, [r0, #0x10]
  00010	e3a0e02f	 mov         lr, #0x2F
  00014	e3a0401d	 mov         r4, #0x1D
  00018	e3a05001	 mov         r5, #1
  0001c	e3a06002	 mov         r6, #2
  00020	e28d3008	 add         r3, sp, #8
  00024	e3a02008	 mov         r2, #8
  00028	e5cde008	 strb        lr, [sp, #8]
  0002c	e5cd4009	 strb        r4, [sp, #9]
  00030	e58d5004	 str         r5, [sp, #4]
  00034	e58d6000	 str         r6, [sp]
  00038	eb000000	 bl          XllpPI2CWrite

; 220  : 	//if(IsMutex)  
; 221  : 	//	ReleasePcf506Mutex();
; 222  : }

  0003c	e28dd00c	 add         sp, sp, #0xC
  00040	e8bd4070	 ldmia       sp!, {r4 - r6, lr}
  00044	e12fff1e	 bx          lr
  00048		 |$M35590|

			 ENDP  ; |Pcf506StartADCByInput|

	EXPORT	|Pcf506TchGetXY|
	EXPORT	|??_C@_1EC@GLICLDLF@?$AAg?$AAe?$AAt?$AAx?$AAy?$AA?$CB?$AA?$CB?$AA?$CB?$AA?$CB?$AAr?$AAe?$AAt?$AAu?$AAr?$AAn?$AA?5?$AAi?$AAn?$AAt?$AA?5@| [ DATA ] ; `string'
	IMPORT	|NKDbgPrintfW|

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

  00000			 AREA	 |.pdata$$Pcf506TchGetXY|, PDATA, SELECTION=5, ASSOC=|.text| { |Pcf506TchGetXY| } ; comdat associative
|$T35602| DCD	|$L35601|
	DCD	0x40003802

  00000			 AREA	 |.rdata| { |??_C@_1EC@GLICLDLF@?$AAg?$AAe?$AAt?$AAx?$AAy?$AA?$CB?$AA?$CB?$AA?$CB?$AA?$CB?$AAr?$AAe?$AAt?$AAu?$AAr?$AAn?$AA?5?$AAi?$AAn?$AAt?$AA?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EC@GLICLDLF@?$AAg?$AAe?$AAt?$AAx?$AAy?$AA?$CB?$AA?$CB?$AA?$CB?$AA?$CB?$AAr?$AAe?$AAt?$AAu?$AAr?$AAn?$AA?5?$AAi?$AAn?$AAt?$AA?5@| DCB "g"
	DCB	0x0, "e", 0x0, "t", 0x0, "x", 0x0, "y", 0x0, "!", 0x0, "!"
	DCB	0x0, "!", 0x0, "!", 0x0, "r", 0x0, "e", 0x0, "t", 0x0, "u"
	DCB	0x0, "r", 0x0, "n", 0x0, " ", 0x0, "i", 0x0, "n", 0x0, "t"
	DCB	0x0, " ", 0x0, "%", 0x0, "x", 0x0, " ", 0x0, " ", 0x0, "%"
	DCB	0x0, "x", 0x0, " ", 0x0, " ", 0x0, "%", 0x0, "x", 0x0, 0xd
	DCB	0x0, 0xa, 0x0, 0x0, 0x0			; `string'
; Function compile flags: /Ogsy

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

  00000		 |Pcf506TchGetXY| PROC

; 225  : {

  00000		 |$L35601|
  00000	e92d41f0	 stmdb       sp!, {r4 - r8, lr}
  00004	e24dd00c	 sub         sp, sp, #0xC
  00008		 |$M35599|
  00008	e1a06002	 mov         r6, r2
  0000c	e1a05001	 mov         r5, r1
  00010	e1a04000	 mov         r4, r0

; 226  : 	unsigned char data[4];
; 227  : 	//BOOL IsMutex=FALSE;
; 228  : 	static unsigned short LastX=1024,LastY=1024; // to be solved,when conflict with battery ADC 
; 229  : 	//IsMutex=WaitPcf506Mutex();
; 230  : 	//read back
; 231  : 	data[0]=0x2f;   //ADCS1 reg address                          
; 232  : 	XllpPI2CWrite(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 1, 0);  //write reg address

  00014	e5941004	 ldr         r1, [r4, #4]
  00018	e5940010	 ldr         r0, [r4, #0x10]
  0001c	e3a0e02f	 mov         lr, #0x2F
  00020	e3a07000	 mov         r7, #0
  00024	e3a08001	 mov         r8, #1
  00028	e28d3008	 add         r3, sp, #8
  0002c	e3a02008	 mov         r2, #8
  00030	e5cde008	 strb        lr, [sp, #8]
  00034	e58d7004	 str         r7, [sp, #4]
  00038	e58d8000	 str         r8, [sp]
  0003c	eb000000	 bl          XllpPI2CWrite

; 233  : 	XllpPI2CRead(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 4, 1);   //read data from the reg address

  00040	e5941004	 ldr         r1, [r4, #4]
  00044	e5940010	 ldr         r0, [r4, #0x10]
  00048	e3a0e004	 mov         lr, #4
  0004c	e28d3008	 add         r3, sp, #8
  00050	e3a02008	 mov         r2, #8
  00054	e58de000	 str         lr, [sp]
  00058	e58d8004	 str         r8, [sp, #4]
  0005c	eb000000	 bl          XllpPI2CRead

; 234  : 	if((data[0]&0x1e) !=0x1c)// || (data[2]&0x80)==0)

  00060	e5dd1008	 ldrb        r1, [sp, #8]
  00064	e201301e	 and         r3, r1, #0x1E
  00068	e353001c	 cmp         r3, #0x1C

; 235  : 	{
; 236  : 		*x=LastX;
; 237  : 		*y=LastY;
; 238  : 		RETAILMSG(1,(TEXT("getxy!!!!return int %x  %x  %x\r\n"),data[0],data[1],data[2]));

  0006c	e5dd300a	 ldrb        r3, [sp, #0xA]
  00070	0a000008	 beq         |$L35233|
  00074	e59f005c	 ldr         r0, [pc, #0x5C]
  00078	e5dd2009	 ldrb        r2, [sp, #9]

⌨️ 快捷键说明

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