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