首页| 论坛| 消息

标题:Qt-Embedded-4.5.3 arm版编译和触摸屏移植
作者:nannan
日期:2010-05-12 19:22
内容:

在板子上移植触摸屏对一个新手来讲肯定不是一件容易的事情,以前编译过一个Qt的arm版本库
源码可以到这里下载 我的交叉编译工具是3.4.1
Qt 源代码ftp://ftp.trolltech.com/qt/source/
,configure里没加什么配置选项,只是简单这样
./configure -embedded arm -xplatform qws/linux-arm-g++ -no-qt3support -qt-mouse-linuxtp
这样编译时间很长,但对于新手来讲是非常保险的做法
先讲一下我触摸屏的理解,网上解决触摸屏的方法很多是采用tslib,我一开始也是使用了tslib,
效果很不错,可以运行的很好,但我的项目中用到了sqlite驱动,开发板上运行是老是说找不到驱动
,我很无语 ,关注了网上的一些做法,Qt中的触摸屏驱动有linuxTP,也是参考了网上的这篇文章
http://blog.chinaunix.net/u3/93598/showart_2133624.html,在此我要说一声谢谢,谢谢你的
分享,库编译好了以后要运行examples/qws/mo1usecalibration 这程序,这将在/etc下形成校准文件,
但这个驱动的底层需要进行修改才可以正常工作,好,这些做完以后,你就可以理解我下面的工作了

1.
Qt 源代码ftp://ftp.trolltech.com/qt/source/ 从网站上下载
qt-embedded-linux-opensource-src-4.5.3.tar.gz
2. tar  zxvf qt-embedded-linux-opensource-src-4.5.3.tar.gz
cd qt-embedded-linux-opensource-src-4.5.3
打开src/gui/embedded/qmouselinuxtp_qws.h
修改linuxtp的底层代码
#define QT_QWS_IPAQ
#define QT_QWS_IPAQ_RAW
qmouselinuxtp_qws.cpp中的部分源码
#if defined(QT_QWS_IPAQ)
# ifdef QT_QWS_IPAQ_RAW
mousedev = QLatin1String("/dev/h3600_tsraw");   //注意这里是你开发板的节点号,没有的话自建链接文件,如果你连触摸屏节点文件都没有可以仔细看我以前的帖子
# else
mousedev = QLatin1String("/dev/h3600_ts");  
# endif
#else
mousedev = QLatin1String("/dev/ts");
#endif
} else {
mousedev = device;
}
注释掉qmouselinuxtp_qws.cpp中的一些代码,以免触摸屏上下和左右颠倒(我就碰到了这个问题)
//#ifdef QT_QWS_SHARP
// samples = QPoint(1000 - data->x, data->y);
//#else
samples = QPoint(data->x, data->y);
//#endif

//#if defined(QT_QWS_SCREEN_COORDINATES)
mousePos = handler->transform(mousePos ..


#1 [tt67 05-14 15:51]
我最近也才把这个搞定 。。QT 编译 很痛苦
#2 [hdzhangzhe 05-21 11:24]
我是新手,想问一下,你产用的Linxu内核是哪个版本的啊,我在2.6.24下,怎么也移植不成功啊,郁闷,指点一下啊,谢谢
#3 [nannan 05-23 15:25]
我用的原厂的,公司自带的2.4.18的内核,当然我也自己编过2.6.24.4的内核,使用网上的方法和驱动代码,做好lcd ,fb,和touchscreen的驱动,网卡的驱动,但是
你自己做的和公司做好,就会发现明显的不足,比如,我做的那个,触摸屏,放上去点一下,就相当于点了n下,搞的那个mouseclibrate程序生成的校准文件相当不准确,
还有Qt程序在上面老是一闪一闪,很不爽 ,所以用板子自带的内核比较好。
#4 [zscwind 05-24 11:26]
新手,留名以后学习

回复 发表
主题 版块