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

📄 touch.cod

📁 对触摸屏的接口函数(DDI DDSI)以及调用关系作了详细介绍 可作为出次接触Touch Driver的开发人员研究Touch的一个很好的起点
💻 COD
📖 第 1 页 / 共 5 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4345 

	TTL	F:\WM602\PLATFORM\GALAXYII\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	|?dpCurSettings@@3U_DBGPARAM@@A| [ DATA ] ; dpCurSettings
	EXPORT	|MIN_CAL_COUNT| [ DATA ]
	EXPORT	|?g_DefaultMatrix@@3UtagMatrix@@A| [ DATA ] ; g_DefaultMatrix

  00000			 AREA	 |.bss|, NOINIT
|g_NextExpectedInterrupt| % 0x4
|g_PointIndex| % 0x4
|g_ValidPointCount| % 0x4
|g_pDriverGlobals| % 0x4
|g_pICRegs| %	0x4
|g_pOSTRegs| %	0x4
|g_pGPIORegs| %	0x4
|g_pfnAC97_SetField| % 0x4
|hACLinkControlMutex| % 0x4

  00000			 AREA	 |.rdata|, DATA, READONLY
|MIN_CAL_COUNT| DCD 0x19

  00000			 AREA	 |.data|, DATA
|TouchIrq| DCD	0x1
|gIntrTouchChanged| DCD 0x13
|gIntrTouch| DCD 0x12
|?g_DefaultMatrix@@3UtagMatrix@@A| DCD 0xfffafe9d	; g_DefaultMatrix
	DCD	0xfffff371
	DCD	0x5298ba0
	DCD	0xfffffec4
	DCD	0x6acd4
	DCD	0x9b57a950
	DCD	0xffb40dbc
|?dpCurSettings@@3U_DBGPARAM@@A| DCB "T", 0x0, "O", 0x0, "U", 0x0, "C", 0x0
	DCB	"H", 0x0, 0x0, 0x0			; dpCurSettings
	%	52
	DCB	"I", 0x0, "n", 0x0, "i", 0x0, "t", 0x0, 0x0, 0x0
	%	54
	DCB	"E", 0x0, "x", 0x0, "c", 0x0, "e", 0x0, "p", 0x0, "t", 0x0
	DCB	0x0, 0x0
	%	50
	DCB	"V", 0x0, "e", 0x0, "r", 0x0, "b", 0x0, "o", 0x0, "s", 0x0
	DCB	"e", 0x0, 0x0, 0x0
	%	48
	DCB	"T", 0x0, "h", 0x0, "r", 0x0, "e", 0x0, "a", 0x0, "d", 0x0
	DCB	0x0, 0x0
	%	50
	DCB	"R", 0x0, "e", 0x0, "g", 0x0, "i", 0x0, "s", 0x0, "t", 0x0
	DCB	"r", 0x0, "y", 0x0, 0x0, 0x0
	%	46
	DCB	"T", 0x0, "r", 0x0, "a", 0x0, "c", 0x0, "e", 0x0, 0x0, 0x0
	%	52
	DCB	"I", 0x0, "o", 0x0, "C", 0x0, "t", 0x0, "l", 0x0, 0x0, 0x0
	%	52
	DCB	"Z", 0x0, "o", 0x0, "n", 0x0, "e", 0x0, "7", 0x0, 0x0, 0x0
	%	52
	DCB	"Z", 0x0, "o", 0x0, "n", 0x0, "e", 0x0, "8", 0x0, 0x0, 0x0
	%	52
	DCB	"Z", 0x0, "o", 0x0, "n", 0x0, "e", 0x0, "9", 0x0, 0x0, 0x0
	%	52
	DCB	"Z", 0x0, "o", 0x0, "n", 0x0, "e", 0x0, "1", 0x0, "0", 0x0
	DCB	0x0, 0x0
	%	50
	DCB	"D", 0x0, "M", 0x0, "A", 0x0, 0x0, 0x0
	%	56
	DCB	"S", 0x0, "A", 0x0, "M", 0x0, "P", 0x0, "L", 0x0, "E", 0x0
	DCB	0x0, 0x0
	%	50
	DCB	"R", 0x0, "E", 0x0, "T", 0x0, "A", 0x0, "I", 0x0, "L", 0x0
	DCB	0x0, 0x0
	%	50
	DCB	"W", 0x0, "a", 0x0, "r", 0x0, "n", 0x0, "i", 0x0, "n", 0x0
	DCB	"g", 0x0, "s", 0x0, 0x0, 0x0
	%	46
	DCB	"E", 0x0, "r", 0x0, "r", 0x0, "o", 0x0, "r", 0x0, "s", 0x0
	DCB	0x0, 0x0
	%	50
	DCD	0xe000
	EXPORT	|?setCalibrationMatrix@@YAHPAUtagPOINT@@0PAUtagMatrix@@@Z| ; setCalibrationMatrix
; File f:\wm602\platform\galaxyii\platform\mainstoneii\src\drivers\touch\touch.cpp

  00000			 AREA	 |.text| { |?setCalibrationMatrix@@YAHPAUtagPOINT@@0PAUtagMatrix@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?setCalibrationMatrix@@YAHPAUtagPOINT@@0PAUtagMatrix@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?setCalibrationMatrix@@YAHPAUtagPOINT@@0PAUtagMatrix@@@Z| } ; comdat associative
|$T35443| DCD	|$L35442|
	DCD	0x40008202
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?setCalibrationMatrix@@YAHPAUtagPOINT@@0PAUtagMatrix@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?setCalibrationMatrix@@YAHPAUtagPOINT@@0PAUtagMatrix@@@Z| PROC ; setCalibrationMatrix

; 232  : {

  00000		 |$L35442|
  00000	e92d4ff0	 stmdb       sp!, {r4 - r11, lr}
  00004	e24dd008	 sub         sp, sp, #8
  00008		 |$M35440|
  00008	e1a09002	 mov         r9, r2
  0000c	e1a0a001	 mov         r10, r1
  00010	e58d9004	 str         r9, [sp, #4]
  00014	e58da000	 str         r10, [sp]
  00018	e1a0b000	 mov         r11, r0

; 233  : 
; 234  :     int  retValue = 0 ;
; 235  : 
; 236  : 
; 237  :     
; 238  :     matrixPtr->Divider = ((displayPtr[0].x - displayPtr[2].x) * (displayPtr[1].y - displayPtr[2].y)) - 
; 239  :                          ((displayPtr[1].x - displayPtr[2].x) * (displayPtr[0].y - displayPtr[2].y)) ;

  0001c	e59b7010	 ldr         r7, [r11, #0x10]
  00020	e59b3000	 ldr         r3, [r11]
  00024	e59b8014	 ldr         r8, [r11, #0x14]
  00028	e59be00c	 ldr         lr, [r11, #0xC]
  0002c	e59b4008	 ldr         r4, [r11, #8]
  00030	e59b5004	 ldr         r5, [r11, #4]
  00034	e0436007	 sub         r6, r3, r7
  00038	e04ee008	 sub         lr, lr, r8
  0003c	e0453008	 sub         r3, r5, r8
  00040	e0444007	 sub         r4, r4, r7
  00044	e0030394	 mul         r3, r4, r3
  00048	e00e0e96	 mul         lr, r6, lr
  0004c	e05e3003	 subs        r3, lr, r3
  00050	e5893018	 str         r3, [r9, #0x18]

; 240  : 
; 241  :     if( matrixPtr->Divider == 0 )
; 242  :     {
; 243  :         retValue = -1 ;

  00054	03e03000	 mvneq       r3, #0
  00058	0a000066	 beq         |$L34979|

; 244  :     }
; 245  :     else
; 246  :     {
; 247  :         matrixPtr->An = ((screenPtr[0].x - screenPtr[2].x) * (displayPtr[1].y - displayPtr[2].y)) - 
; 248  :                         ((screenPtr[1].x - screenPtr[2].x) * (displayPtr[0].y - displayPtr[2].y)) ;

  0005c	e59a4010	 ldr         r4, [r10, #0x10]
  00060	e59a3000	 ldr         r3, [r10]
  00064	e59b5014	 ldr         r5, [r11, #0x14]
  00068	e59b200c	 ldr         r2, [r11, #0xC]
  0006c	e59a1008	 ldr         r1, [r10, #8]
  00070	e59b0004	 ldr         r0, [r11, #4]
  00074	e043e004	 sub         lr, r3, r4
  00078	e0422005	 sub         r2, r2, r5
  0007c	e0403005	 sub         r3, r0, r5
  00080	e0411004	 sub         r1, r1, r4
  00084	e0030391	 mul         r3, r1, r3
  00088	e002029e	 mul         r2, lr, r2
  0008c	e0423003	 sub         r3, r2, r3
  00090	e5893000	 str         r3, [r9]

; 249  : 
; 250  :         matrixPtr->Bn = ((displayPtr[0].x - displayPtr[2].x) * (screenPtr[1].x - screenPtr[2].x)) - 
; 251  :                         ((screenPtr[0].x - screenPtr[2].x) * (displayPtr[1].x - displayPtr[2].x)) ;

  00094	e59a4010	 ldr         r4, [r10, #0x10]
  00098	e59a3000	 ldr         r3, [r10]
  0009c	e59b5010	 ldr         r5, [r11, #0x10]
  000a0	e59b2008	 ldr         r2, [r11, #8]
  000a4	e59a1008	 ldr         r1, [r10, #8]
  000a8	e59b0000	 ldr         r0, [r11]
  000ac	e043e004	 sub         lr, r3, r4
  000b0	e0422005	 sub         r2, r2, r5
  000b4	e0403005	 sub         r3, r0, r5
  000b8	e0411004	 sub         r1, r1, r4
  000bc	e0030391	 mul         r3, r1, r3
  000c0	e002029e	 mul         r2, lr, r2
  000c4	e0433002	 sub         r3, r3, r2
  000c8	e5893004	 str         r3, [r9, #4]

; 252  : 
; 253  :         matrixPtr->Cn = (displayPtr[2].x * screenPtr[1].x - displayPtr[1].x * screenPtr[2].x) * displayPtr[0].y +
; 254  :                         (displayPtr[0].x * screenPtr[2].x - displayPtr[2].x * screenPtr[0].x) * displayPtr[1].y +
; 255  :                         (displayPtr[1].x * screenPtr[0].x - displayPtr[0].x * screenPtr[1].x) * displayPtr[2].y ;

  000cc	e59b8008	 ldr         r8, [r11, #8]
  000d0	e59ae010	 ldr         lr, [r10, #0x10]
  000d4	e59b5010	 ldr         r5, [r11, #0x10]
  000d8	e59a7008	 ldr         r7, [r10, #8]
  000dc	e59b6000	 ldr         r6, [r11]
  000e0	e59a4000	 ldr         r4, [r10]
  000e4	e0020e98	 mul         r2, r8, lr
  000e8	e0030795	 mul         r3, r5, r7
  000ec	e59b1004	 ldr         r1, [r11, #4]
  000f0	e000069e	 mul         r0, lr, r6
  000f4	e0433002	 sub         r3, r3, r2
  000f8	e0020495	 mul         r2, r5, r4
  000fc	e59be00c	 ldr         lr, [r11, #0xC]
  00100	e0050193	 mul         r5, r3, r1
  00104	e0403002	 sub         r3, r0, r2
  00108	e0040498	 mul         r4, r8, r4
  0010c	e0010697	 mul         r1, r7, r6
  00110	e59b2014	 ldr         r2, [r11, #0x14]
  00114	e0205e93	 mla         r0, r3, lr, r5
  00118	e0443001	 sub         r3, r4, r1
  0011c	e0220293	 mla         r2, r3, r2, r0
  00120	e5892008	 str         r2, [r9, #8]

; 256  : 
; 257  :         matrixPtr->Dn = ((screenPtr[0].y - screenPtr[2].y) * (displayPtr[1].y - displayPtr[2].y)) - 
; 258  :                         ((screenPtr[1].y - screenPtr[2].y) * (displayPtr[0].y - displayPtr[2].y)) ;

  00124	e59b4014	 ldr         r4, [r11, #0x14]
  00128	e59b3004	 ldr         r3, [r11, #4]
  0012c	e59a5014	 ldr         r5, [r10, #0x14]
  00130	e59a200c	 ldr         r2, [r10, #0xC]
  00134	e59b100c	 ldr         r1, [r11, #0xC]
  00138	e59a0004	 ldr         r0, [r10, #4]
  0013c	e043e004	 sub         lr, r3, r4
  00140	e0422005	 sub         r2, r2, r5
  00144	e0403005	 sub         r3, r0, r5
  00148	e0411004	 sub         r1, r1, r4
  0014c	e0030391	 mul         r3, r1, r3
  00150	e002029e	 mul         r2, lr, r2
  00154	e0433002	 sub         r3, r3, r2
  00158	e589300c	 str         r3, [r9, #0xC]

; 259  :     
; 260  :         matrixPtr->En = ((displayPtr[0].x - displayPtr[2].x) * (screenPtr[1].y - screenPtr[2].y)) - 
; 261  :                         ((screenPtr[0].y - screenPtr[2].y) * (displayPtr[1].x - displayPtr[2].x)) ;

  0015c	e59b4010	 ldr         r4, [r11, #0x10]
  00160	e59b3000	 ldr         r3, [r11]
  00164	e59a5014	 ldr         r5, [r10, #0x14]
  00168	e59a200c	 ldr         r2, [r10, #0xC]
  0016c	e59b1008	 ldr         r1, [r11, #8]
  00170	e59a0004	 ldr         r0, [r10, #4]
  00174	e043e004	 sub         lr, r3, r4
  00178	e0422005	 sub         r2, r2, r5
  0017c	e0403005	 sub         r3, r0, r5
  00180	e0411004	 sub         r1, r1, r4
  00184	e0030391	 mul         r3, r1, r3
  00188	e002029e	 mul         r2, lr, r2
  0018c	e0423003	 sub         r3, r2, r3
  00190	e5893010	 str         r3, [r9, #0x10]

; 262  : 
; 263  :         matrixPtr->Fn = (displayPtr[2].x * screenPtr[1].y - displayPtr[1].x * screenPtr[2].y) * displayPtr[0].y +
; 264  :                         (displayPtr[0].x * screenPtr[2].y - displayPtr[2].x * screenPtr[0].y) * displayPtr[1].y +
; 265  :                         (displayPtr[1].x * screenPtr[0].y - displayPtr[0].x * screenPtr[1].y) * displayPtr[2].y ;

  00194	e59d3000	 ldr         r3, [sp]
  00198	e59ba008	 ldr         r10, [r11, #8]
  0019c	e5939014	 ldr         r9, [r3, #0x14]
  001a0	e59b8010	 ldr         r8, [r11, #0x10]
  001a4	e59b5000	 ldr         r5, [r11]
  001a8	e593e004	 ldr         lr, [r3, #4]
  001ac	e593700c	 ldr         r7, [r3, #0xC]
  001b0	e0020599	 mul         r2, r9, r5
  001b4	e003089e	 mul         r3, lr, r8
  001b8	e59b100c	 ldr         r1, [r11, #0xC]
  001bc	e0040a9e	 mul         r4, lr, r10
  001c0	e0423003	 sub         r3, r2, r3
  001c4	e0020597	 mul         r2, r7, r5
  001c8	e0060193	 mul         r6, r3, r1
  001cc	e59b5014	 ldr         r5, [r11, #0x14]
  001d0	e044e002	 sub         lr, r4, r2
  001d4	e0040897	 mul         r4, r7, r8
  001d8	e0030a99	 mul         r3, r9, r10
  001dc	e59b1004	 ldr         r1, [r11, #4]
  001e0	e022659e	 mla         r2, lr, r5, r6
  001e4	e0443003	 sub         r3, r4, r3
  001e8	e0222193	 mla         r2, r3, r1, r2
  001ec	e59d3004	 ldr         r3, [sp, #4]
  001f0	e5832014	 str         r2, [r3, #0x14]
  001f4	e3a03000	 mov         r3, #0
  001f8		 |$L34979|

; 266  :     }
; 267  :  
; 268  :     return( retValue ) ;

  001f8	e1a00003	 mov         r0, r3

; 269  : 
; 270  : } /* end of setCalibrationMatrix() */

  001fc	e28dd008	 add         sp, sp, #8
  00200	e8bd4ff0	 ldmia       sp!, {r4 - r11, lr}
  00204	e12fff1e	 bx          lr
  00208		 |$M35441|

			 ENDP  ; |?setCalibrationMatrix@@YAHPAUtagPOINT@@0PAUtagMatrix@@@Z|, setCalibrationMatrix

	EXPORT	|?getDisplayPoint@@YAHPAUtagPOINT@@0PAUtagMatrix@@@Z| ; getDisplayPoint
	IMPORT	|__rt_sdiv|

  00000			 AREA	 |.text| { |?getDisplayPoint@@YAHPAUtagPOINT@@0PAUtagMatrix@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?getDisplayPoint@@YAHPAUtagPOINT@@0PAUtagMatrix@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?getDisplayPoint@@YAHPAUtagPOINT@@0PAUtagMatrix@@@Z| } ; comdat associative
|$T35457| DCD	|$L35456|
	DCD	0x40002301
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?getDisplayPoint@@YAHPAUtagPOINT@@0PAUtagMatrix@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?getDisplayPoint@@YAHPAUtagPOINT@@0PAUtagMatrix@@@Z| PROC ; getDisplayPoint

; 275  : {

  00000		 |$L35456|
  00000	e92d43f0	 stmdb       sp!, {r4 - r9, lr}
  00004		 |$M35454|
  00004	e1a07002	 mov         r7, r2

⌨️ 快捷键说明

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