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

📄 touch.cod

📁 PXA270 平台 Windows Mobile 5。0 UCB1400 触摸屏驱动
💻 COD
📖 第 1 页 / 共 5 页
字号:
  000b8	eb000000	 bl          |?evaluateSample@@YAHGGGHPAH@Z|
  000bc	e3500010	 cmp         r0, #0x10

; 639  :     {
; 640  :         TmpStateFlags |= TouchSampleIgnore;

  000c0	03a00012	 moveq       r0, #0x12
  000c4	0a000008	 beq         |$L32568|

; 641  :         DEBUGMSG(1,(TEXT("Invalid X sample\r\n")));
; 642  :     }
; 643  :     else
; 644  :     {
; 645  :         TmpStateFlags |= evaluateSample(rgPointSamples[0].YSample,rgPointSamples[1].YSample,rgPointSamples[2].YSample,
; 646  :                                         DELTA_Y_COORD_VARIANCE,&TmpY);

  000c8	e1dd21b6	 ldrh        r2, [sp, #0x16]
  000cc	e1dd11b2	 ldrh        r1, [sp, #0x12]
  000d0	e1dd00be	 ldrh        r0, [sp, #0xE]
  000d4	e28de004	 add         lr, sp, #4
  000d8	e3a03016	 mov         r3, #0x16
  000dc	e58de000	 str         lr, [sp]
  000e0	eb000000	 bl          |?evaluateSample@@YAHGGGHPAH@Z|
  000e4	e59d6004	 ldr         r6, [sp, #4]
  000e8	e3800002	 orr         r0, r0, #2
  000ec		 |$L32568|

; 647  :     }
; 648  : 
; 649  :     *x=TmpX;

  000ec	e59d3008	 ldr         r3, [sp, #8]

; 650  :     *y=TmpY;
; 651  : 
; 652  :     return(TmpStateFlags);

  000f0	e5883000	 str         r3, [r8]
  000f4	e5876000	 str         r6, [r7]

; 653  : }

  000f8	e28dd018	 add         sp, sp, #0x18
  000fc	e8bd41f0	 ldmia       sp!, {r4 - r8, lr}
  00100	e12fff1e	 bx          lr
  00104		 |$M32926|

			 ENDP  ; |?PDDSampleTouchScreen@@YAIPAH0@Z|, PDDSampleTouchScreen

	EXPORT	|?TouchCtrlThread@@YAHXZ|		; TouchCtrlThread
	IMPORT	|WaitForMultipleObjects|

  00000			 AREA	 |.text| { |?TouchCtrlThread@@YAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?TouchCtrlThread@@YAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?TouchCtrlThread@@YAHXZ| } ; comdat associative
|$T32939| DCD	|$L32938|
	DCD	0x40001d01
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?TouchCtrlThread@@YAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?TouchCtrlThread@@YAHXZ| PROC		; TouchCtrlThread

; 656  : {

  00000		 |$L32938|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M32936|
  00004	e59f4064	 ldr         r4, [pc, #0x64]
  00008	e3a05b01	 mov         r5, #1, 22
  0000c		 |$L32574|

; 657  : 	DWORD   dwResult;
; 658  : 	//int nCnt;
; 659  : 
; 660  :    	while (1) {    
; 661  :             	dwResult = WaitForMultipleObjects(2, &gTouchCtrlEvt[0], FALSE, INFINITE);

  0000c	e3e03000	 mvn         r3, #0
  00010	e3a02000	 mov         r2, #0
  00014	e1a01004	 mov         r1, r4
  00018	e3a00002	 mov         r0, #2
  0001c	eb000000	 bl          WaitForMultipleObjects
  00020	e3500000	 cmp         r0, #0

; 662  : 			
; 663  : 		if(dwResult == WAIT_OBJECT_0) 	//Touch Enable Event

  00024	1a000009	 bne         |$L32576|

; 664  : 		{
; 665  :     			UCB1X00_TOUCH_INT_SET;

  00028	e594e008	 ldr         lr, [r4, #8]

; 666  :     			UCB1X00_TOUCH_RISING_EDGE_SET;	
; 667  :     			WriteAC97(UCB_FE_IE, TSPX_INT, DEV_TOUCH);			

  0002c	e3a01a01	 mov         r1, #1, 20
  00030	e58e5048	 str         r5, [lr, #0x48]
  00034	e59e3030	 ldr         r3, [lr, #0x30]
  00038	e3833b01	 orr         r3, r3, #1, 22
  0003c		 |$L32935|
  0003c	e3a00060	 mov         r0, #0x60
  00040	e3a02001	 mov         r2, #1
  00044	e58e3030	 str         r3, [lr, #0x30]
  00048	eb000000	 bl          WriteAC97

; 668  : 		}
; 669  : 
; 670  :             	else if(dwResult == WAIT_OBJECT_0+1)	//Touch Disable Event

  0004c	eaffffee	 b           |$L32574|
  00050		 |$L32576|
  00050	e3500001	 cmp         r0, #1
  00054	1affffec	 bne         |$L32574|

; 671  : 		{
; 672  :     			UCB1X00_TOUCH_INT_SET;      

  00058	e594e008	 ldr         lr, [r4, #8]

; 673  :     			UCB1X00_TOUCH_RISING_EDGE_CLR ;
; 674  :         		WriteAC97(UCB_FE_IE, 0, DEV_TOUCH);    				

  0005c	e3a01000	 mov         r1, #0
  00060	e58e5048	 str         r5, [lr, #0x48]
  00064	e59e3030	 ldr         r3, [lr, #0x30]
  00068	e3c33b01	 bic         r3, r3, #1, 22

; 675  : 		}	
; 676  :     	}   // end while   

  0006c	eafffff2	 b           |$L32935|
  00070		 |$L32941|
  00070	00000000	 DCD         |?gTouchCtrlEvt@@3PAPAXA|
  00074		 |$M32937|

			 ENDP  ; |?TouchCtrlThread@@YAHXZ|, TouchCtrlThread

	EXPORT	|DdsiTouchPanelDisable|
	IMPORT	|DeInitializeACLink|

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

  00000			 AREA	 |.pdata$$DdsiTouchPanelDisable|, PDATA, SELECTION=5, ASSOC=|.text| { |DdsiTouchPanelDisable| } ; comdat associative
|$T32953| DCD	|$L32952|
	DCD	0x40002001
; Function compile flags: /Ogsy

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

  00000		 |DdsiTouchPanelDisable| PROC

; 146  : {

  00000		 |$L32952|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M32950|

; 147  : 
; 148  :     // Clean up any PDD-allocated resources and deinitialize the AC link.
; 149  :     //
; 150  :     DeallocateTouchPanelResources();

  00004	e59f4070	 ldr         r4, [pc, #0x70]
  00008	e5940008	 ldr         r0, [r4, #8]
  0000c	e3500000	 cmp         r0, #0
  00010	0a000004	 beq         |$L32947|
  00014	e3a02902	 mov         r2, #2, 18
  00018	e3a01000	 mov         r1, #0
  0001c	eb000000	 bl          VirtualFree
  00020	e3a03000	 mov         r3, #0
  00024	e5843008	 str         r3, [r4, #8]
  00028		 |$L32947|
  00028	e5940004	 ldr         r0, [r4, #4]
  0002c	e3500000	 cmp         r0, #0
  00030	0a000004	 beq         |$L32948|
  00034	e3a02902	 mov         r2, #2, 18
  00038	e3a01000	 mov         r1, #0
  0003c	eb000000	 bl          VirtualFree
  00040	e3a03000	 mov         r3, #0
  00044	e5843004	 str         r3, [r4, #4]
  00048		 |$L32948|
  00048	e5940000	 ldr         r0, [r4]
  0004c	e3500000	 cmp         r0, #0
  00050	0a000004	 beq         |$L32949|
  00054	e3a02902	 mov         r2, #2, 18
  00058	e3a01000	 mov         r1, #0
  0005c	eb000000	 bl          VirtualFree
  00060	e3a03000	 mov         r3, #0
  00064	e5843000	 str         r3, [r4]
  00068		 |$L32949|

; 151  : 
; 152  :     DeInitializeACLink(FALSE, DEV_TOUCH);

  00068	e3a01001	 mov         r1, #1
  0006c	e3a00000	 mov         r0, #0
  00070	eb000000	 bl          DeInitializeACLink

; 153  : 
; 154  : }

  00074	e8bd4010	 ldmia       sp!, {r4, lr}
  00078	e12fff1e	 bx          lr
  0007c		 |$L32955|
  0007c	00000000	 DCD         |g_pGPIORegs|
  00080		 |$M32951|

			 ENDP  ; |DdsiTouchPanelDisable|

	IMPORT	|MmMapIoSpace|

  00000			 AREA	 |.text| { |?AllocateTouchPanelResources@@YAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?AllocateTouchPanelResources@@YAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?AllocateTouchPanelResources@@YAHXZ| } ; comdat associative
|$T32977| DCD	|$L32976|
	DCD	0x40005701
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?AllocateTouchPanelResources@@YAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?AllocateTouchPanelResources@@YAHXZ| PROC ; AllocateTouchPanelResources

; 158  : {

  00000		 |$L32976|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M32974|

; 159  :     PHYSICAL_ADDRESS RegPA;
; 160  : 
; 161  :     if (g_pICRegs == NULL)

  00004	e59f414c	 ldr         r4, [pc, #0x14C]
  00008	e5943008	 ldr         r3, [r4, #8]
  0000c	e3530000	 cmp         r3, #0
  00010	1a000007	 bne         |$L32381|

; 162  :     {
; 163  :         RegPA.QuadPart = BULVERDE_BASE_REG_PA_INTC;

  00014	e3a00101	 mov         r0, #1, 2
  00018	e380060d	 orr         r0, r0, #0xD, 12
  0001c	e3a01000	 mov         r1, #0

; 164  :         g_pICRegs = (volatile BULVERDE_INTR_REG *) MmMapIoSpace(RegPA, 0x400, FALSE);

  00020	e3a03000	 mov         r3, #0
  00024	e3a02b01	 mov         r2, #1, 22
  00028	eb000000	 bl          MmMapIoSpace
  0002c	e1a03000	 mov         r3, r0
  00030	e5843008	 str         r3, [r4, #8]
  00034		 |$L32381|

; 165  :     }
; 166  : 
; 167  :     if (g_pGPIORegs == NULL)

  00034	e5940000	 ldr         r0, [r4]
  00038	e3500000	 cmp         r0, #0
  0003c	1a000007	 bne         |$L32383|

; 168  :     {
; 169  :         RegPA.QuadPart = BULVERDE_BASE_REG_PA_GPIO;

  00040	e3a00101	 mov         r0, #1, 2
  00044	e380060e	 orr         r0, r0, #0xE, 12
  00048	e3a01000	 mov         r1, #0

; 170  :         g_pGPIORegs = (volatile BULVERDE_GPIO_REG *) MmMapIoSpace(RegPA, 0x400, FALSE);

  0004c	e3a03000	 mov         r3, #0
  00050	e3a02b01	 mov         r2, #1, 22
  00054	eb000000	 bl          MmMapIoSpace
  00058	e5943008	 ldr         r3, [r4, #8]
  0005c	e5840000	 str         r0, [r4]
  00060		 |$L32383|

; 171  :     }
; 172  : 
; 173  :     if (g_pOSTRegs == NULL)

  00060	e594e004	 ldr         lr, [r4, #4]
  00064	e35e0000	 cmp         lr, #0
  00068	1a00000a	 bne         |$L32964|

; 174  :     {
; 175  :         RegPA.QuadPart = BULVERDE_BASE_REG_PA_OST;

  0006c	e3a00101	 mov         r0, #1, 2
  00070	e380060a	 orr         r0, r0, #0xA, 12
  00074	e3a01000	 mov         r1, #0

; 176  :         g_pOSTRegs = (volatile BULVERDE_OST_REG *) MmMapIoSpace(RegPA, 0x400, FALSE);

  00078	e3a03000	 mov         r3, #0
  0007c	e3a02b01	 mov         r2, #1, 22
  00080	eb000000	 bl          MmMapIoSpace
  00084	e1b0e000	 movs        lr, r0

; 177  :     }
; 178  : 
; 179  :     if (!g_pOSTRegs  || !g_pGPIORegs || !g_pICRegs)

  00088	e5943008	 ldr         r3, [r4, #8]
  0008c	e5940000	 ldr         r0, [r4]
  00090	e584e004	 str         lr, [r4, #4]
  00094	0a000011	 beq         |$L32388|
  00098		 |$L32964|
  00098	e3500000	 cmp         r0, #0
  0009c	0a00000f	 beq         |$L32388|
  000a0	e3530000	 cmp         r3, #0
  000a4	0a000017	 beq         |$L32961|

; 184  :     }
; 185  :      UCB1X00_TOUCH_FUNCTION_0_SET;

  000a8	e5903054	 ldr         r3, [r0, #0x54]

; 186  :      UCB1X00_TOUCH_DIRECTION_IN_SET;
; 187  :      UCB1X00_TOUCH_RISING_EDGE_SET;
; 188  :      UCB1X00_TOUCH_FALLING_EDGE_CLR;
; 189  :  //    g_pICRegs->icmr|=XLLP_INTC_GPIOXX_2;
; 190  :     return(TRUE);

  000ac	e3a02001	 mov         r2, #1
  000b0	e3c33603	 bic         r3, r3, #3, 12
  000b4	e5803054	 str         r3, [r0, #0x54]
  000b8	e590300c	 ldr         r3, [r0, #0xC]
  000bc	e3c33b01	 bic         r3, r3, #1, 22
  000c0	e580300c	 str         r3, [r0, #0xC]
  000c4	e5903030	 ldr         r3, [r0, #0x30]
  000c8	e3833b01	 orr         r3, r3, #1, 22
  000cc	e5803030	 str         r3, [r0, #0x30]
  000d0	e590303c	 ldr         r3, [r0, #0x3C]
  000d4	e3c33b01	 bic         r3, r3, #1, 22
  000d8	e580303c	 str         r3, [r0, #0x3C]
  000dc	ea00001a	 b           |$L32379|
  000e0		 |$L32388|

; 180  :     {
; 181  :         DEBUGMSG(1, (TEXT("ERROR: Failed to allocate touch panel resources (Error=%u).\r\n"), GetLastError()));
; 182  :         DeallocateTouchPanelResources();

  000e0	e3530000	 cmp         r3, #0
  000e4	0a000007	 beq         |$L32961|
  000e8	e3a02902	 mov         r2, #2, 18
  000ec	e3a01000	 mov         r1, #0
  000f0	e1a00003	 mov         r0, r3
  000f4	eb000000	 bl          VirtualFree
  000f8	e3a03000	 mov         r3, #0
  000fc	e5940000	 ldr         r0, [r4]
  00100	e594e004	 ldr         lr, [r4, #4]
  00104	e5843008	 str         r3, [r4, #8]
  00108		 |$L32961|
  00108	e35e0000	 cmp         lr, #0
  0010c	0a000006	 beq         |$L32962|
  00110	e3a02902	 mov         r2, #2, 18
  00114	e3a01000	 mov         r1, #0
  00118	e1a0000e	 mov         r0, lr
  0011c	eb000000	 bl          VirtualFree
  00120	e3a03000	 mov         r3, #0
  00124	e5940000	 ldr         r0, [r4]
  00128	e5843004	 str         r3, [r4, #4]
  0012c		 |$L32962|
  0012c	e3500000	 cmp         r0, #0
  00130	0a000004	 beq         |$L32963|
  00134	e3a02902	 mov         r2, #2, 18
  00138	e3a01000	 mov         r1, #0
  0013c	eb000000	 bl          VirtualFree
  00140	e3a03000	 mov         r3, #0
  00144	e5843000	 str         r3, [r4]
  00148		 |$L32963|

; 183  :         return(FALSE);

  00148	e3a02000	 mov         r2, #0
  0014c		 |$L32379|

; 186  :      UCB1X00_TOUCH_DIRECTION_IN_SET;
; 187  :      UCB1X00_TOUCH_RISING_EDGE_SET;
; 188  :      UCB1X00_TOUCH_FALLING_EDGE_CLR;
; 189  :  //    g_pICRegs->icmr|=XLLP_INTC_GPIOXX_2;
; 190  :     return(TRUE);

  0014c	e1a00002	 mov         r0, r2

; 191  : }

  00150	e8bd4010	 ldmia       sp!, {r4, lr}
  00154	e12fff1e	 bx          lr
  00158		 |$L32979|

⌨️ 快捷键说明

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