6213|17

81

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

S3C2410触摸屏驱动移植遇到问题 [复制链接]

在将CE6.0的触摸屏驱动移植到FS2410时,编译通过了,但却得不到有效的触摸信息。得到的部分调试信息如下:
  11941 PID:400002 TID:b1000a RELFSD: Opening file FS2410Touch.dll from desktop
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\TESTFS2410_V2\TESTFS2410_V2\RELDIR\FS2410_ARMV4I_RELEASE\FS2410TOUCH.DLL'
  13059 PID:400002 TID:b1000a ::: DdsiTouchPanelEnable()
  13060 PID:400002 TID:b1000a ::: TSP_VirtualAlloc() - Success
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\TESTFS2410_V2\TESTFS2410_V2\RELDIR\FS2410_ARMV4I_RELEASE\EXPLORER.EXE'
  13061 PID:400002 TID:b1000a ::: TSP_PowerOn()
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\TESTFS2410_V2\TESTFS2410_V2\RELDIR\FS2410_ARMV4I_RELEASE\OLE32.DLL'
  13061 PID:400002 TID:b1000a v_pPWMregs->TCNTB3 is: 0xef9b
  13062 PID:400002 TID:2140002 ::: DdsiTouchPanelGetPoint()
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\TESTFS2410_V2\TESTFS2410_V2\RELDIR\FS2410_ARMV4I_RELEASE\OLEAUT32.DLL'
  13062 PID:400002 TID:2140002 ::: DdsiTouchPanelGetPoint()
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\TESTFS2410_V2\TESTFS2410_V2\RELDIR\FS2410_ARMV4I_RELEASE\FPCRT.DLL'
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\TESTFS2410_V2\TESTFS2410_V2\RELDIR\FS2410_ARMV4I_RELEASE\SERVICESSTART.EXE'
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\TESTFS2410_V2\TESTFS2410_V2\RELDIR\FS2410_ARMV4I_RELEASE\COMMCTRL.DLL'
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\TESTFS2410_V2\TESTFS2410_V2\RELDIR\FS2410_ARMV4I_RELEASE\SERVICESENUM.DLL'
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\TESTFS2410_V2\TESTFS2410_V2\RELDIR\FS2410_ARMV4I_RELEASE\CESHELL.DLL'
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\TESTFS2410_V2\TESTFS2410_V2\RELDIR\FS2410_ARMV4I_RELEASE\SHCORE.DLL'
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\TESTFS2410_V2\TESTFS2410_V2\RELDIR\FS2410_ARMV4I_RELEASE\IECEEXT.DLL'
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\TESTFS2410_V2\TESTFS2410_V2\RELDIR\FS2410_ARMV4I_RELEASE\AYGSHELL.DLL'
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\TESTFS2410_V2\TESTFS2410_V2\RELDIR\FS2410_ARMV4I_RELEASE\SERVICESD.EXE'
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\TESTFS2410_V2\TESTFS2410_V2\RELDIR\FS2410_ARMV4I_RELEASE\TIMESVC.DLL'
PB Debugger Unloaded symbols for 'C:\WINCE600\OSDESIGNS\TESTFS2410_V2\TESTFS2410_V2\RELDIR\FS2410_ARMV4I_RELEASE\SERVICESSTART.EXE'
  29100 PID:400002 TID:2140002 ::: DdsiTouchPanelGetPoint()
  29104 PID:400002 TID:2140002 before change: px : 94
  29105 PID:400002 TID:2140002 before change: py : 74
  29105 PID:400002 TID:2140002 after change px : 91
  29106 PID:400002 TID:2140002 after change py : 0
  29106 PID:400002 TID:2140002 ::: DdsiTouchPanelGetPoint()
  29111 PID:400002 TID:2140002 before change: px : 89
  29111 PID:400002 TID:2140002 before change: py : 74
  29111 PID:400002 TID:2140002 after change px : 84
  29112 PID:400002 TID:2140002 after change py : 0
  29112 PID:400002 TID:2140002 ::: DdsiTouchPanelGetPoint()
  29116 PID:400002 TID:2140002 before change: px : 89
  29117 PID:400002 TID:2140002 before change: py : 73
  29117 PID:400002 TID:2140002 after change px : 84
  29118 PID:400002 TID:2140002 after change py : 0
  29121 PID:400002 TID:2140002 ::: DdsiTouchPanelGetPoint()
  29125 PID:400002 TID:2140002 before change: px : 88
  29125 PID:400002 TID:2140002 before change: py : 74
  29126 PID:400002 TID:2140002 after change px : 82
  29126 PID:400002 TID:2140002 after change py : 0
  29127 PID:400002 TID:2140002 ::: DdsiTouchPanelGetPoint()
  29131 PID:400002 TID:2140002 before change: px : 90
  29131 PID:400002 TID:2140002 before change: py : 71
  29131 PID:400002 TID:2140002 after change px : 85
  29132 PID:400002 TID:2140002 after change py : 0
  29132 PID:400002 TID:2140002 ::: DdsiTouchPanelGetPoint()
  29136 PID:400002 TID:2140002 ::: DdsiTouchPanelGetPoint()
  29140 PID:400002 TID:2140002 ::: DdsiTouchPanelGetPoint()
  29145 PID:400002 TID:2140002 ::: DdsiTouchPanelGetPoint()
  29145 PID:400002 TID:2140002 ::: DdsiTouchPanelGetPoint()
在这之后不论怎么触摸都没有反应。还请大侠们帮我看看,谢谢。

最新回复

你用PB6.0里DeviceEmulator的触摸屏驱动看看, 应该是没有问题的。  详情 回复 发表于 2009-9-20 17:32
点赞 关注

回复
举报

74

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
信息不够详细啊,
直接弄个2440 上去改动一下即可。
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
上面得到的那几个坐标是我点击开始按钮时得到的,但是开始按钮没有反应。请问开始按钮对应的正确坐标应该是多少?
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

4
 
开始按钮的坐标是不是根据屏幕分辩率的不同而不同,谁能够举例说明一下在某个分辨率下,开始按钮的有效坐标的大概范围吗?
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

5
 
触摸屏的驱动一般的开发板都有吧!

有好的板子没有 ,你在好的板子里面把  点坐标的 打印出来  应该可以找的你要的数据吧
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

6
 
由于随开发板附带的BSP是CE4.2版的,里面的代码结构和内容与我现在所移植的驱动差别很大,所以就没有打算去调试附带的代码了。还有一个问题是在实现触摸屏的驱动之前是否必须移植好RTC的驱动?
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

7
 
你的触摸屏可能是数值相反了,比如320X240但你的触摸屏却是240X320,还有要根据LCD的大小来定,如你用480X640的屏,触摸参数就不能用240X320的,如果是这个问题可尝试改TSP_TransXY(INT *px, INT *py)这个函数.
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 6 楼 wlc311 的回复:
你的触摸屏可能是数值相反了,比如320X240但你的触摸屏却是240X320,还有要根据LCD的大小来定,如你用480X640的屏,触摸参数就不能用240X320的,如果是这个问题可尝试改TSP_TransXY(INT *px, INT *py)这个函数.

谢谢你的帮助。在s3c2410x_touch.cpp中对屏幕分辨率的设置如下
static int TSP_LCDX = (LCD_XSIZE_TFT * 4);
static int TSP_LCDY = (LCD_YSIZE_TFT * 4);
其中LCD_XSIZE_TFT和LCD_YSIZE_TFT是在lcd的头文件中定义好的,而且我能够看到正常的启动显示界面,是不是已经说明分辨率的设置没有错误。请问,具体在TSP_TransXY(INT *px, INT *py)这个函数中要关注那些参数?
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

9
 
坐标有个参考值的!
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

10
 
这个问题已经讨论很多了,怎么不说了呢 帮顶
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

11
 
TSP_TransXY(INT *px, INT *py)
{       
        int temp;
#if 1
        temp = *px;
        *px = *py;
        *py = temp;//X,Y轴调了过来
#endif
    *px = (*px - TSP_MINX) * TSP_LCDX / (TSP_MAXX - TSP_MINX);
    *py = (*py - TSP_MINY) * TSP_LCDY / (TSP_MAXY - TSP_MINY);

    if (*px  <        0) *px = 0;
    if (*px >= TSP_LCDX) *px = TSP_LCDX - 1;

    if (*py  <        0) *py = 0;
    if (*py >= TSP_LCDY) *py = TSP_LCDY - 1;
       
        *px = TSP_LCDX - 1 - *px;
        *py = TSP_LCDY - 1 - *py;//把屏参数上下倒一下,不知道怎么说了- -

}
我把X,Y轴调了过来
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

12
 
谢谢wlc311提供的代码。我按照你的代码进行了修改。但依然存在问题。调试信息如下
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\TESTFS2410_V2\TESTFS2410_V2\RELDIR\FS2410_ARMV4I_RELEASE\FS2410TOUCH.DLL'
4294834187 PID:400002 TID:f70012 calibrating 0 point set
4294834214 PID:400002 TID:f70012 ::: DdsiTouchPanelEnable()
4294834257 PID:400002 TID:f70012 ::: TSP_VirtualAlloc() - Success
4294834284 PID:400002 TID:f70012 INFO: Touch driver using processor frequency reported by the OAL (50750000 Hz).
4294834312 PID:400002 TID:f70012 ::: TSP_PowerOn()
4294834345 PID:400002 TID:f70012 v_pPWMregs->TCNTB3 is: 0xef9b
4294834392 PID:400002 TID:f70012 TOUCH:TouchPanelpGetPriority - RegOpenKeyEx(\Drivers\BuiltIn\Touch) failed 2, using default thread priorities
4294834421 PID:400002 TID:2230002 ::: DdsiTouchPanelGetPoint()
4294834448 PID:400002 TID:2230002 ::: DdsiTouchPanelGetPoint()
4294834484 PID:400002 TID:f70012 calibrating 5 point set
4294834515 PID:400002 TID:f70012 Maximum Allowed Error 7:
4294834542 PID:400002 TID:f70012 Calibration Results:
4294834569 PID:400002 TID:f70012    Screen    =>    Mapped
4294834598 PID:400002 TID:f70012 ( 160,  120) => ( 164,  120)
4294834625 PID:400002 TID:f70012 (  32,   24) => (  31,   23)
4294834652 PID:400002 TID:f70012 (  32,  216) => (  31,  217)
4294834680 PID:400002 TID:f70012 ( 288,  216) => ( 287,  215)
4294834707 PID:400002 TID:f70012 ( 288,   24) => ( 287,   25)
4294834735 PID:400002 TID:f70012 Maximum error (square of Euclidean distance in screen units) = 16
4294834767 PID:400002 TID:f70012 Oom Low             Pages: 0020  Bytes: 00020000
4294834794 PID:400002 TID:f70012 Oom Critical        Pages: 0014  Bytes: 00014000
4294834822 PID:400002 TID:2270002 Grow Gdi handle table from 64 to 128
4294834846 PID:400002 TID:f70012 Oom Low Block       Pages: 0004  Bytes: 00004000
4294834879 PID:400002 TID:f70012 Oom Critical Block  Pages: 0002  Bytes: 00002000
4294834906 PID:400002 TID:f70012 Oom App Wait  8000 (dec ms)
4294834933 PID:400002 TID:f70012 Oom AutoOom 0
4294834970 PID:400002 TID:f70012 UpdateIdleTimeoutFromRegistry
4294834999 PID:400002 TID:f70012 GWES initialized properly
......
4294855882 PID:1ad0002 TID:2a30002 [NOTIFY] SetUserNotification::Registring system watch: event 1 app \\.\Notifications\NamedEvents\TaskbarTimeChangeEvent args AppRunAfterTimeChange
4294867049 PID:400002 TID:2230002 ::: DdsiTouchPanelGetPoint()
4294867080 PID:400002 TID:2230002 before change: px : 89
4294867107 PID:400002 TID:2230002 before change: py : 85
4294867135 PID:400002 TID:2230002 after change px : 1278
4294867162 PID:400002 TID:2230002 after change py : 958
4294867190 PID:400002 TID:2230002 ::: DdsiTouchPanelGetPoint()
4294867222 PID:400002 TID:2230002 ::: DdsiTouchPanelGetPoint()
4294867249 PID:400002 TID:2230002 ::: DdsiTouchPanelGetPoint()
4294867281 PID:2320002 TID:2a30002 Screen Saver Ended.
我只是点了一下开始按钮,结果就变成了Screen Saver Ended,以后怎么点也没有反应了。这个问题在一开始好像就存在。谁能帮忙找到解决方向啊!
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

13
 
还有问题,我不能从串口得到DdsiTouchPanelEnable()等调试打印信息,但之前的显示驱动的打印信息可以看到,这是为什么?莫非是显示驱动有问题?
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

14
 
我只是点了一下开始按钮,结果就变成了Screen Saver Ended,以后怎么点也没有反应了。这个问题在一开始好像就存在。谁能帮忙找到解决方向啊!----
出现Screen Saver Ended是不是死机了,还是怎样.用TARGET CONTRAL看看先吧,如果是系统死掉的话,就麻烦咯,其实还是要靠自己,往往是一些小问题造成的。细心研究一下代码吧
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

15
 
恩,也许真的是系统死掉了。看来还是应该静下心来研究代码,我还是太浮躁了。
谢谢wlc311!
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

16
 
在屏蔽显示驱动和触摸屏的驱动后,用TARGET CONTROL发现16个系统堆被损坏,10个位于NK.EXE中,2个位于explorer.exe中,2个位于servicesd.exe中,是不是说明OAL还没移植好?真不知道系统怎么就能够启动了的。
其中第一个信息如下:
Heap corruption ‘Bad region signature'detected in NK.EXE
pHeap:0xd00404a0 - Failed to validate region signature @pRegion:0xd00404e0
Hex Dump(Region):
0xD00404E0:D00404E4 00000030 00000000 D00404A0    ....0...........
0xD00404F0:D00404E4 00000000 00000000 D0050000    ................
0xD0040500:000006F3 00000780 0000008D 00000100    ................
我看不懂以上数据信息的具体含义,还想请大家帮我解读一下。
这个问题已经超出触摸屏的讨论范围了,不好意思,得到解答后,我会马上结贴的。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

17
 
呵呵,还未碰到过此种问题,如果楼主有空可以把你的BSP发过来研究研究,我正好也有一块2410的
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

18
 
你用PB6.0里DeviceEmulator的触摸屏驱动看看,
应该是没有问题的。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表