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

📄 touch.cod

📁 PXA270 平台 Windows Mobile 5。0 UCB1400 触摸屏驱动
💻 COD
📖 第 1 页 / 共 5 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4345 

	TTL	C:\WM520\PLATFORM\AL270\Platform\MAINSTONEII\SRC\DRIVERS\TOUCH\.\touch.cpp
	CODE32

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

	EXPORT	|gIntrTouch| [ DATA ]
	EXPORT	|gIntrTouchChanged| [ DATA ]
	EXPORT	|MIN_CAL_COUNT| [ DATA ]
	EXPORT	|?KeepAliveEvent@@3PAXA| [ DATA ]	; KeepAliveEvent
	EXPORT	|?hSharedMap_init@@3PAXA| [ DATA ]	; hSharedMap_init
	EXPORT	|?v_pIPMGlobals@@3PCU_IPM_GLOBALS@@C| [ DATA ] ; v_pIPMGlobals
	EXPORT	|?gTouchCtrlEvt@@3PAPAXA| [ DATA ]	; gTouchCtrlEvt

  00000			 AREA	 |.bss|, NOINIT
|hACLinkControlMutex| % 0x4
|g_NextExpectedInterrupt| % 0x4
|?KeepAliveEvent@@3PAXA| % 0x4				; KeepAliveEvent
|?hSharedMap_init@@3PAXA| % 0x4				; hSharedMap_init
|?v_pIPMGlobals@@3PCU_IPM_GLOBALS@@C| % 0x4		; v_pIPMGlobals
|g_pICRegs| %	0x4
|g_pOSTRegs| %	0x4
|g_pGPIORegs| %	0x4
|?gTouchCtrlEvt@@3PAPAXA| % 0x8				; gTouchCtrlEvt

  00000			 AREA	 |.data|, DATA
|gIntrTouchChanged| DCD 0x13
|gIntrTouch| DCD 0x12

  00000			 AREA	 |.rdata|, DATA, READONLY
|MIN_CAL_COUNT| DCD 0x19
|szTchEnable| DCB "T", 0x0, "o", 0x0, "u", 0x0, "c", 0x0, "h", 0x0, "E", 0x0
	DCB	"n", 0x0, "a", 0x0, "b", 0x0, "l", 0x0, "e", 0x0, "E", 0x0
	DCB	"v", 0x0, "e", 0x0, "n", 0x0, "t", 0x0, 0x0, 0x0
	%	2
|szTchDisable| DCB "T", 0x0, "o", 0x0, "u", 0x0, "c", 0x0, "h", 0x0, "D", 0x0
	DCB	"i", 0x0, "s", 0x0, "a", 0x0, "b", 0x0, "l", 0x0, "e", 0x0
	DCB	"E", 0x0, "v", 0x0, "e", 0x0, "n", 0x0, "t", 0x0, 0x0, 0x0
	EXPORT	|SetEvent|
	IMPORT	|EventModify|
; File c:\wm520\public\wpc\cesysgen\sdk\inc\kfuncs.h

  00000			 AREA	 |.text| { |SetEvent| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$SetEvent|, PDATA, SELECTION=5, ASSOC=|.text| { |SetEvent| } ; comdat associative
|$T32692| DCD	|$L32691|
	DCD	0x40000501
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |SetEvent| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |SetEvent| PROC

; 184  : _inline BOOL SetEvent(HANDLE h) {

  00000		 |$L32691|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M32689|

; 185  : 	return EventModify(h,EVENT_SET);

  00004	e3a01003	 mov         r1, #3
  00008	eb000000	 bl          EventModify

; 186  : }

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$M32690|

			 ENDP  ; |SetEvent|

	EXPORT	|?IPM_TouchInit@@YAXXZ|			; IPM_TouchInit
	EXPORT	|??_C@_1BG@HGCEOJPA@?$AAK?$AAe?$AAe?$AAp?$AA?5?$AAA?$AAl?$AAi?$AAv?$AAe?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1BO@IFBOJJBE@?$AAI?$AAP?$AAM?$AAG?$AAl?$AAo?$AAb?$AAa?$AAl?$AAs?$AAF?$AAi?$AAl?$AAe?$AA?$AA@| [ DATA ] ; `string'
	IMPORT	|CreateEventW|
	IMPORT	|MapViewOfFile|
	IMPORT	|CreateFileMappingW|
; File c:\wm520\platform\al270\platform\mainstoneii\src\drivers\touch\touch.cpp

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

  00000			 AREA	 |.pdata$$?IPM_TouchInit@@YAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IPM_TouchInit@@YAXXZ| } ; comdat associative
|$T32699| DCD	|$L32698|
	DCD	0x40002202

  00000			 AREA	 |.rdata| { |??_C@_1BG@HGCEOJPA@?$AAK?$AAe?$AAe?$AAp?$AA?5?$AAA?$AAl?$AAi?$AAv?$AAe?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BG@HGCEOJPA@?$AAK?$AAe?$AAe?$AAp?$AA?5?$AAA?$AAl?$AAi?$AAv?$AAe?$AA?$AA@| DCB "K"
	DCB	0x0, "e", 0x0, "e", 0x0, "p", 0x0, " ", 0x0, "A", 0x0, "l"
	DCB	0x0, "i", 0x0, "v", 0x0, "e", 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1BO@IFBOJJBE@?$AAI?$AAP?$AAM?$AAG?$AAl?$AAo?$AAb?$AAa?$AAl?$AAs?$AAF?$AAi?$AAl?$AAe?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BO@IFBOJJBE@?$AAI?$AAP?$AAM?$AAG?$AAl?$AAo?$AAb?$AAa?$AAl?$AAs?$AAF?$AAi?$AAl?$AAe?$AA?$AA@| DCB "I"
	DCB	0x0, "P", 0x0, "M", 0x0, "G", 0x0, "l", 0x0, "o", 0x0, "b"
	DCB	0x0, "a", 0x0, "l", 0x0, "s", 0x0, "F", 0x0, "i", 0x0, "l"
	DCB	0x0, "e", 0x0, 0x0, 0x0			; `string'
; Function compile flags: /Ogsy

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

  00000		 |?IPM_TouchInit@@YAXXZ| PROC		; IPM_TouchInit

; 71   : {

  00000		 |$L32698|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004	e24dd008	 sub         sp, sp, #8
  00008		 |$M32696|

; 72   : //	NKDbgPrintfW(TEXT("+Inside IPM Touch Init\r\n"));
; 73   : 
; 74   : 	// 
; 75   : 	// An Event to signal IPM that there has been activity and immidiately leave its low power state.
; 76   : 	//
; 77   : 	KeepAliveEvent		= CreateEvent(NULL, FALSE, FALSE, KEEP_ALIVE_STR);

  00008	e59f3074	 ldr         r3, [pc, #0x74]
  0000c	e3a02000	 mov         r2, #0
  00010	e3a01000	 mov         r1, #0
  00014	e3a00000	 mov         r0, #0
  00018	eb000000	 bl          CreateEventW
  0001c	e59f405c	 ldr         r4, [pc, #0x5C]

; 78   : 
; 79   : 	//
; 80   : 	// Used to tell IPM which driver has timed out.
; 81   : 	//
; 82   : 	hSharedMap_init = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE,
; 83   : 									0, sizeof(IPM_GLOBALS), IPM_SHARED_FILENAME );

  00020	e59f3054	 ldr         r3, [pc, #0x54]
  00024	e3a0e0c0	 mov         lr, #0xC0
  00028	e5840004	 str         r0, [r4, #4]
  0002c	e58d3004	 str         r3, [sp, #4]
  00030	e3a03000	 mov         r3, #0
  00034	e3e00000	 mvn         r0, #0
  00038	e3a02004	 mov         r2, #4
  0003c	e3a01000	 mov         r1, #0
  00040	e58de000	 str         lr, [sp]
  00044	eb000000	 bl          CreateFileMappingW

; 84   : 
; 85   : 	// Get a valid process pointer to the buffer mapped above.
; 86   :     v_pIPMGlobals = (volatile IPM_GLOBALS *)MapViewOfFile( hSharedMap_init, FILE_MAP_ALL_ACCESS, 0, 0, 0 );

  00048	e3a0180f	 mov         r1, #0xF, 16
  0004c	e1a0e000	 mov         lr, r0
  00050	e3a05000	 mov         r5, #0
  00054	e381101f	 orr         r1, r1, #0x1F
  00058	e3a03000	 mov         r3, #0
  0005c	e3a02000	 mov         r2, #0
  00060	e584e000	 str         lr, [r4]
  00064	e58d5000	 str         r5, [sp]
  00068	eb000000	 bl          MapViewOfFile
  0006c	e584001c	 str         r0, [r4, #0x1C]

; 87   : }

  00070	e28dd008	 add         sp, sp, #8
  00074	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00078	e12fff1e	 bx          lr
  0007c		 |$L32701|
  0007c	00000000	 DCD         |??_C@_1BO@IFBOJJBE@?$AAI?$AAP?$AAM?$AAG?$AAl?$AAo?$AAb?$AAa?$AAl?$AAs?$AAF?$AAi?$AAl?$AAe?$AA?$AA@|
  00080	00000000	 DCD         |?hSharedMap_init@@3PAXA|
  00084	00000000	 DCD         |??_C@_1BG@HGCEOJPA@?$AAK?$AAe?$AAe?$AAp?$AA?5?$AAA?$AAl?$AAi?$AAv?$AAe?$AA?$AA@|
  00088		 |$M32697|

			 ENDP  ; |?IPM_TouchInit@@YAXXZ|, IPM_TouchInit

	EXPORT	|?IPM_RegisterTouchActivity@@YAXXZ|	; IPM_RegisterTouchActivity
	IMPORT	|GetTickCount|
; File c:\wm520\public\wpc\cesysgen\sdk\inc\kfuncs.h

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

  00000			 AREA	 |.pdata$$?IPM_RegisterTouchActivity@@YAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IPM_RegisterTouchActivity@@YAXXZ| } ; comdat associative
|$T32711| DCD	|$L32710|
	DCD	0x40001201
; Function compile flags: /Ogsy
; File c:\wm520\platform\al270\platform\mainstoneii\src\drivers\touch\touch.cpp

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

  00000		 |?IPM_RegisterTouchActivity@@YAXXZ| PROC ; IPM_RegisterTouchActivity

; 90   : {

  00000		 |$L32710|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M32708|

; 91   : 	v_pIPMGlobals->DeviceTimeOutTimes[DEVICE_TOUCH] =GetTickCount();

  00004	eb000000	 bl          GetTickCount
  00008	e59f2034	 ldr         r2, [pc, #0x34]
  0000c	e5923018	 ldr         r3, [r2, #0x18]
  00010	e5830010	 str         r0, [r3, #0x10]

; 92   : 
; 93   : 	//
; 94   : 	// Signal IPM of touch Activity only if need be
; 95   : 	//
; 96   : //	NKDbgPrintfW(TEXT("IPM_RegisterTouchActivity\r\n"));
; 97   : 	if((v_pIPMGlobals->ProcessorState == PROC_STANDBY) || (v_pIPMGlobals->ProcessorState == THIRTEEN_M))

  00014	e5921018	 ldr         r1, [r2, #0x18]
  00018	e5913064	 ldr         r3, [r1, #0x64]
  0001c	e3530001	 cmp         r3, #1
  00020	0a000002	 beq         |$L32363|
  00024	e5913064	 ldr         r3, [r1, #0x64]
  00028	e3530002	 cmp         r3, #2
  0002c	1a000002	 bne         |$L32705|
  00030		 |$L32363|

; 98   : 	{
; 99   : 		//NKDbgPrintfW(TEXT("touch alive!\r\n"));
; 100  : 		SetEvent(KeepAliveEvent);							

  00030	e5920000	 ldr         r0, [r2]
  00034	e3a01003	 mov         r1, #3
  00038	eb000000	 bl          EventModify
  0003c		 |$L32705|

; 101  : 	}
; 102  : }

  0003c	e49de004	 ldr         lr, [sp], #4
  00040	e12fff1e	 bx          lr
  00044		 |$L32713|
  00044	00000000	 DCD         |?KeepAliveEvent@@3PAXA|
  00048		 |$M32709|

			 ENDP  ; |?IPM_RegisterTouchActivity@@YAXXZ|, IPM_RegisterTouchActivity

	IMPORT	|VirtualFree|

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

  00000			 AREA	 |.pdata$$?DeallocateTouchPanelResources@@YAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeallocateTouchPanelResources@@YAXXZ| } ; comdat associative
|$T32719| DCD	|$L32718|
	DCD	0x40001d01
; Function compile flags: /Ogsy

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

  00000		 |?DeallocateTouchPanelResources@@YAXXZ| PROC ; DeallocateTouchPanelResources

; 195  : {

  00000		 |$L32718|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M32716|

; 196  :     if (g_pICRegs)

  00004	e59f4064	 ldr         r4, [pc, #0x64]
  00008	e5940008	 ldr         r0, [r4, #8]
  0000c	e3500000	 cmp         r0, #0
  00010	0a000004	 beq         |$L32393|

; 197  :     {
; 198  :         VirtualFree((void *)g_pICRegs, 0, MEM_RELEASE);

  00014	e3a02902	 mov         r2, #2, 18
  00018	e3a01000	 mov         r1, #0
  0001c	eb000000	 bl          VirtualFree

; 199  :         g_pICRegs = NULL;

  00020	e3a03000	 mov         r3, #0
  00024	e5843008	 str         r3, [r4, #8]
  00028		 |$L32393|

; 200  :     }
; 201  :     if (g_pOSTRegs)

  00028	e5940004	 ldr         r0, [r4, #4]
  0002c	e3500000	 cmp         r0, #0
  00030	0a000004	 beq         |$L32395|

; 202  :     {
; 203  :         VirtualFree((void *)g_pOSTRegs, 0, MEM_RELEASE);

  00034	e3a02902	 mov         r2, #2, 18
  00038	e3a01000	 mov         r1, #0
  0003c	eb000000	 bl          VirtualFree

; 204  :         g_pOSTRegs = NULL;

  00040	e3a03000	 mov         r3, #0
  00044	e5843004	 str         r3, [r4, #4]
  00048		 |$L32395|

; 205  :     }
; 206  :     if (g_pGPIORegs)

  00048	e5940000	 ldr         r0, [r4]
  0004c	e3500000	 cmp         r0, #0
  00050	0a000004	 beq         |$L32397|

; 207  :     {
; 208  :         VirtualFree((void *)g_pGPIORegs, 0, MEM_RELEASE);

  00054	e3a02902	 mov         r2, #2, 18
  00058	e3a01000	 mov         r1, #0
  0005c	eb000000	 bl          VirtualFree

; 209  :         g_pGPIORegs = NULL;

  00060	e3a03000	 mov         r3, #0
  00064	e5843000	 str         r3, [r4]
  00068		 |$L32397|

; 210  :     }
; 211  : }

  00068	e8bd4010	 ldmia       sp!, {r4, lr}
  0006c	e12fff1e	 bx          lr
  00070		 |$L32721|
  00070	00000000	 DCD         |g_pGPIORegs|
  00074		 |$M32717|

			 ENDP  ; |?DeallocateTouchPanelResources@@YAXXZ|, DeallocateTouchPanelResources

	EXPORT	|?SetUCB1400TouchInterruptMode@@YAHXZ|	; SetUCB1400TouchInterruptMode
	IMPORT	|WriteAC97|

  00028			 AREA	 |.bss|, NOINIT
|g_ResetCaps| %	0x4

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

  00000			 AREA	 |.pdata$$?SetUCB1400TouchInterruptMode@@YAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?SetUCB1400TouchInterruptMode@@YAHXZ| } ; comdat associative
|$T32730| DCD	|$L32729|
	DCD	0x40000c01
; Function compile flags: /Ogsy

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

  00000		 |?SetUCB1400TouchInterruptMode@@YAHXZ| PROC ; SetUCB1400TouchInterruptMode

; 248  : {

  00000		 |$L32729|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M32727|

; 249  :     UINT16 TCH_CR = 0;
; 250  : 
; 251  :     if (g_ResetCaps == REV_2A)

  00004	e59f3020	 ldr         r3, [pc, #0x20]

; 252  :     {
; 253  :         TCH_CR = (TSMY_GND | TSPY_GND | TSMX_POW | TSPX_POW);
; 254  :     }
; 255  :     else
; 256  :     {
; 257  :         TCH_CR = (TSMY_GND | TSPY_GND);
; 258  :     }
; 259  : 
; 260  :     return(WriteAC97(UCB_TCH_CR, TCH_CR, DEV_TOUCH));

  00008	e3a02001	 mov         r2, #1
  0000c	e3a00064	 mov         r0, #0x64
  00010	e5933000	 ldr         r3, [r3]
  00014	e3530e2a	 cmp         r3, #0x2A, 28
  00018	03a010c3	 moveq       r1, #0xC3
  0001c	13a010c0	 movne       r1, #0xC0
  00020	eb000000	 bl          WriteAC97

; 261  : }

  00024	e49de004	 ldr         lr, [sp], #4
  00028	e12fff1e	 bx          lr
  0002c		 |$L32732|
  0002c	00000000	 DCD         |g_ResetCaps|
  00030		 |$M32728|

			 ENDP  ; |?SetUCB1400TouchInterruptMode@@YAHXZ|, SetUCB1400TouchInterruptMode

	EXPORT	|DdsiTouchPanelAttach|

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

  00000			 AREA	 |.pdata$$DdsiTouchPanelAttach|, PDATA, SELECTION=5, ASSOC=|.text| { |DdsiTouchPanelAttach| } ; comdat associative
|$T32740| DCD	|$L32739|
	DCD	0x40000200
; Function compile flags: /Ogsy

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

⌨️ 快捷键说明

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