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