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

📄 xllp_pcf506.cod

📁 pxa270为硬件平台的wince操作系统XLLP驱动源码
💻 COD
📖 第 1 页 / 共 5 页
字号:
  0007c	e1d040b4	 ldrh        r4, [r0, #4]
  00080	e1d0e0b0	 ldrh        lr, [r0]
  00084	e59f0050	 ldr         r0, [pc, #0x50]
  00088	e1c540b0	 strh        r4, [r5]
  0008c	e1c6e0b0	 strh        lr, [r6]
  00090	eb000000	 bl          NKDbgPrintfW

; 239  : 		return;

  00094	ea00000c	 b           |$L35227|
  00098		 |$L35233|

; 240  : 	}
; 241  : 	*x=data[1]<<2;
; 242  : 	*x |= data[2] & 0x0003;
; 243  : 	
; 244  : 	*y=data[3]<<2;

  00098	e5dd100b	 ldrb        r1, [sp, #0xB]
  0009c	e5dd0009	 ldrb        r0, [sp, #9]

; 245  : 	*y |= (data[2] & 0x000c)>>2;

  000a0	e203e00c	 and         lr, r3, #0xC
  000a4	e2032003	 and         r2, r3, #3
  000a8	e1a03101	 mov         r3, r1, lsl #2
  000ac	e1822100	 orr         r2, r2, r0, lsl #2
  000b0	e183112e	 orr         r1, r3, lr, lsr #2
  000b4	e1c520b0	 strh        r2, [r5]

; 246  : 	//if(IsMutex)  
; 247  : 	//ReleasePcf506Mutex();
; 248  : 	LastX = *x;

  000b8	e59f2018	 ldr         r2, [pc, #0x18]
  000bc	e1c610b0	 strh        r1, [r6]
  000c0	e1d530b0	 ldrh        r3, [r5]

; 249  : 	LastY = *y;

  000c4	e1c210b0	 strh        r1, [r2]
  000c8	e1c230b4	 strh        r3, [r2, #4]
  000cc		 |$L35227|

; 250  : }

  000cc	e28dd00c	 add         sp, sp, #0xC
  000d0	e8bd41f0	 ldmia       sp!, {r4 - r8, lr}
  000d4	e12fff1e	 bx          lr
  000d8		 |$L35604|
  000d8	00000000	 DCD         |?LastY@?1??Pcf506TchGetXY@@9@9|
  000dc	00000000	 DCD         |??_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@|
  000e0		 |$M35600|

			 ENDP  ; |Pcf506TchGetXY|

	EXPORT	|Pcf506TchPenStatus|

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

  00000			 AREA	 |.pdata$$Pcf506TchPenStatus|, PDATA, SELECTION=5, ASSOC=|.text| { |Pcf506TchPenStatus| } ; comdat associative
|$T35613| DCD	|$L35612|
	DCD	0x40001c02
; Function compile flags: /Ogsy

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

  00000		 |Pcf506TchPenStatus| PROC

; 256  : {

  00000		 |$L35612|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004	e24dd00c	 sub         sp, sp, #0xC
  00008		 |$M35610|
  00008	e1a04000	 mov         r4, r0

; 257  : 	unsigned char data[2];
; 258  : 	//BOOL IsMutex=FALSE;
; 259  : 	//IsMutex=WaitPcf506Mutex();
; 260  : 	data[0]=0x2e;                     //adcc1 reg address                          
; 261  : 	XllpPI2CWrite(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 1, 0);  //write reg address

  0000c	e5941004	 ldr         r1, [r4, #4]
  00010	e5940010	 ldr         r0, [r4, #0x10]
  00014	e3a0e02e	 mov         lr, #0x2E
  00018	e3a05000	 mov         r5, #0
  0001c	e3a06001	 mov         r6, #1
  00020	e28d3008	 add         r3, sp, #8
  00024	e3a02008	 mov         r2, #8
  00028	e5cde008	 strb        lr, [sp, #8]
  0002c	e58d5004	 str         r5, [sp, #4]
  00030	e58d6000	 str         r6, [sp]
  00034	eb000000	 bl          XllpPI2CWrite

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

  00038	e5941004	 ldr         r1, [r4, #4]
  0003c	e5940010	 ldr         r0, [r4, #0x10]
  00040	e28d3008	 add         r3, sp, #8
  00044	e3a02008	 mov         r2, #8
  00048	e58d6004	 str         r6, [sp, #4]
  0004c	e58d6000	 str         r6, [sp]
  00050	eb000000	 bl          XllpPI2CRead

; 263  : 	//if(IsMutex)  
; 264  : 	//	ReleasePcf506Mutex();
; 265  : 	if((0x80 & data[0]))

  00054	e5dd3008	 ldrb        r3, [sp, #8]
  00058	e3130080	 tst         r3, #0x80

; 266  : 		return 1;

  0005c	13a00001	 movne       r0, #1

; 267  : 	else
; 268  : 		return 0;

  00060	03a00000	 moveq       r0, #0

; 269  : }

  00064	e28dd00c	 add         sp, sp, #0xC
  00068	e8bd4070	 ldmia       sp!, {r4 - r6, lr}
  0006c	e12fff1e	 bx          lr
  00070		 |$M35611|

			 ENDP  ; |Pcf506TchPenStatus|

	EXPORT	|Pcf506IsADCCompleted|

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

  00000			 AREA	 |.pdata$$Pcf506IsADCCompleted|, PDATA, SELECTION=5, ASSOC=|.text| { |Pcf506IsADCCompleted| } ; comdat associative
|$T35623| DCD	|$L35622|
	DCD	0x40001c02
; Function compile flags: /Ogsy

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

  00000		 |Pcf506IsADCCompleted| PROC

; 275  : {

  00000		 |$L35622|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004	e24dd00c	 sub         sp, sp, #0xC
  00008		 |$M35620|
  00008	e1a04000	 mov         r4, r0

; 276  : 	unsigned char data[2];
; 277  : 	//BOOL IsMutex=FALSE;
; 278  : 	//IsMutex=WaitPcf506Mutex();
; 279  : 	data[0]=0x31;                     //adcc1 reg address                          
; 280  : 	XllpPI2CWrite(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 1, 0);  //write reg address

  0000c	e5941004	 ldr         r1, [r4, #4]
  00010	e5940010	 ldr         r0, [r4, #0x10]
  00014	e3a0e031	 mov         lr, #0x31
  00018	e3a05000	 mov         r5, #0
  0001c	e3a06001	 mov         r6, #1
  00020	e28d3008	 add         r3, sp, #8
  00024	e3a02008	 mov         r2, #8
  00028	e5cde008	 strb        lr, [sp, #8]
  0002c	e58d5004	 str         r5, [sp, #4]
  00030	e58d6000	 str         r6, [sp]
  00034	eb000000	 bl          XllpPI2CWrite

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

  00038	e5941004	 ldr         r1, [r4, #4]
  0003c	e5940010	 ldr         r0, [r4, #0x10]
  00040	e28d3008	 add         r3, sp, #8
  00044	e3a02008	 mov         r2, #8
  00048	e58d6004	 str         r6, [sp, #4]
  0004c	e58d6000	 str         r6, [sp]
  00050	eb000000	 bl          XllpPI2CRead

; 282  : 	//if(IsMutex)  
; 283  : 	//	ReleasePcf506Mutex();
; 284  : 	if(0x80 & data[0])

  00054	e5dd3008	 ldrb        r3, [sp, #8]
  00058	e3130080	 tst         r3, #0x80

; 285  : 		return 1;

  0005c	13a00001	 movne       r0, #1

; 286  : 	else
; 287  : 		return 0;

  00060	03a00000	 moveq       r0, #0

; 288  : }

  00064	e28dd00c	 add         sp, sp, #0xC
  00068	e8bd4070	 ldmia       sp!, {r4 - r6, lr}
  0006c	e12fff1e	 bx          lr
  00070		 |$M35621|

			 ENDP  ; |Pcf506IsADCCompleted|

	EXPORT	|Pcf506TchReadBatvolt|

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

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

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

  00000		 |Pcf506TchReadBatvolt| PROC

; 304  : {

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

; 305  : 	//set batvolt read
; 306  : 	unsigned char data[2];
; 307  : 	//BOOL IsMutex=FALSE;
; 308  : 	//IsMutex=WaitPcf506Mutex();
; 309  : 	data[0]=0x2f;                                 
; 310  : 	data[1]=0x00;    //no start
; 311  : 	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	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

; 312  : 	//if(IsMutex)  
; 313  : 	//	ReleasePcf506Mutex();
; 314  : 
; 315  : 	return;
; 316  : }

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

			 ENDP  ; |Pcf506TchReadBatvolt|

	EXPORT	|Pcf506GetIntIndex|

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

  00000			 AREA	 |.pdata$$Pcf506GetIntIndex|, PDATA, SELECTION=5, ASSOC=|.text| { |Pcf506GetIntIndex| } ; comdat associative
|$T35641| DCD	|$L35640|
	DCD	0x40001e02
; Function compile flags: /Ogsy

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

  00000		 |Pcf506GetIntIndex| PROC

; 320  : {

  00000		 |$L35640|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004	e24dd00c	 sub         sp, sp, #0xC
  00008		 |$M35638|
  00008	e1a04000	 mov         r4, r0

; 321  : 	unsigned char data[3];
; 322  : 	UINT32 reval=0;
; 323  : 	//BOOL IsMutex=FALSE;
; 324  : 	//IsMutex=WaitPcf506Mutex();
; 325  : 	data[0]=0x02;                     //INT reg address                          
; 326  : 	XllpPI2CWrite(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 1, 0);  //write reg address

  0000c	e5941004	 ldr         r1, [r4, #4]
  00010	e5940010	 ldr         r0, [r4, #0x10]
  00014	e3a0e002	 mov         lr, #2
  00018	e3a05000	 mov         r5, #0
  0001c	e3a06001	 mov         r6, #1
  00020	e28d3008	 add         r3, sp, #8
  00024	e3a02008	 mov         r2, #8
  00028	e5cde008	 strb        lr, [sp, #8]
  0002c	e58d5004	 str         r5, [sp, #4]
  00030	e58d6000	 str         r6, [sp]
  00034	eb000000	 bl          XllpPI2CWrite

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

  00038	e5941004	 ldr         r1, [r4, #4]
  0003c	e5940010	 ldr         r0, [r4, #0x10]
  00040	e3a0e003	 mov         lr, #3
  00044	e28d3008	 add         r3, sp, #8
  00048	e3a02008	 mov         r2, #8
  0004c	e58de000	 str         lr, [sp]
  00050	e58d6004	 str         r6, [sp, #4]
  00054	eb000000	 bl          XllpPI2CRead

; 328  : 	reval = data[2];
; 329  : 	reval = reval<<8 | data[1];
; 330  : 	reval = reval<<8 | data[0];
; 331  : 	//if(IsMutex)  
; 332  : 	//	ReleasePcf506Mutex();
; 333  : 	return reval;

  00058	e5dd100a	 ldrb        r1, [sp, #0xA]
  0005c	e5dd3009	 ldrb        r3, [sp, #9]
  00060	e5dd2008	 ldrb        r2, [sp, #8]
  00064	e1833401	 orr         r3, r3, r1, lsl #8
  00068	e1820403	 orr         r0, r2, r3, lsl #8

; 334  : }

  0006c	e28dd00c	 add         sp, sp, #0xC
  00070	e8bd4070	 ldmia       sp!, {r4 - r6, lr}
  00074	e12fff1e	 bx          lr
  00078		 |$M35639|

			 ENDP  ; |Pcf506GetIntIndex|

	EXPORT	|Pcf506GetIntMask|

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

  00000			 AREA	 |.pdata$$Pcf506GetIntMask|, PDATA, SELECTION=5, ASSOC=|.text| { |Pcf506GetIntMask| } ; comdat associative
|$T35651| DCD	|$L35650|
	DCD	0x40001e02
; Function compile flags: /Ogsy

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

  00000		 |Pcf506GetIntMask| PROC

; 337  : {

  00000		 |$L35650|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004	e24dd00c	 sub         sp, sp, #0xC
  00008		 |$M35648|
  00008	e1a04000	 mov         r4, r0

; 338  : 	unsigned char data[3];
; 339  : 	UINT32 reval=0;
; 340  : 	//BOOL IsMutex=FALSE;
; 341  : 	//IsMutex=WaitPcf506Mutex();
; 342  : 	data[0]=0x05;                     //INT reg address                          
; 343  : 	XllpPI2CWrite(pmuRegs->pi2c_reg_base,pmuRegs->ost_reg_base,0x08, data, 1, 0);  //write reg address

  0000c	e5941004	 ldr         r1, [r4, #4]
  00010	e5940010	 ldr         r0, [r4, #0x10]
  00014	e3a0e005	 mov         lr, #5
  00018	e3a05000	 mov         r5, #0
  0001c	e3a06001	 mov         r6, #1
  00020	e28d3008	 add         r3, sp, #8
  00024	e3a02008	 mov         r2, #8
  00028	e5cde008	 strb        lr, [sp, #8]
  0002c	e58d5004	 str         r5, [sp, #4]
  00030	e58d6000	 str         r6, [sp]
  00034	eb000000	 bl          XllpPI2CWrite

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

  00038	e5941004	 ldr         r1, [r4, #4]
  0003c	e5940010	 ldr         r0, [r4, #0x10]
  00040	e3a0e003	 mov         lr, #3
  00044	e28d3008	 add         r3, sp, #8
  00048	e3a02008	 mov         r2, #8
  0004c	e58de000	 str         lr, [sp]
  00050	e58d6004	 str         r6, [sp, #4]
  00054	eb000000	 bl          XllpPI2CRead

; 345  : 	reval = data[2];
; 346  : 	reval = reval<<8 | data[1];
; 347  : 	reval = reval<<8 | data[0];
; 348  : 	//if(IsMutex)  
; 349  : 	//	ReleasePcf506Mutex();
; 350  : 	return reval;

  00058	e5dd100a	 ldrb        r1, [sp, #0xA]
  0005c	e5dd3009	 ldrb        r3, [sp, #9]
  00060	e5dd2008	 ldrb        r2, [sp, #8]
  00064	e1833401	 orr         r3, r3, r1, lsl #8
  00068	e1820403	 orr         r0, r2, r3, lsl #8

; 351  : }

  0006c	e28dd00c	 add         sp, sp, #0xC

⌨️ 快捷键说明

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