📄 touch.cod
字号:
; 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 + -