已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Tslib-1.4移植相关问题分析和摘要一、迁移环境1:主机环境:Ret Hat Enterprise 523360相交工具链:arm-linux-gcc-4.3.233:开发平台:亲切的手臂mini2440 tongbao 3.5英寸屏幕4:所需的软件资源:ts lib-1.4 . tar . gz q t-x 11-open source-src-4 . 5 . 3 . tar . gz Qt-embedded-open source-src-4 . 5 . 3 . tar . gzQT的移植在网上找到了比较好的移植手册,但是该菜单的作者在无意中给了不知道是错误还是怎样的资料。但是,更明确、更详细的解决仍然值得参考。)参考文章链接地址为http:/wenku . B/view/242 c 91f 24693 DAE F5 ef 73d 82 . html第二:tslib-1.4交叉编译植入触摸屏驱动程序后(在移植内核时完成),通常可以通过移植tslib在用户层过滤和修改触摸屏数据的同时,为应用程序提供集成接口,许多GUI支持tslib的接口。我在分发版上移植的QT版本是QT4,所以用tslib-1.4校准触摸屏。QT4简单地支持tslib-1.4(现在是最新版本),QT2支持tslib-1.3版本,因此在移植过程中,首先要注意自己移植了哪个版本。Tslib校正触摸屏原理的简要说明:Tslib是触摸屏驱动器和应用层之间的适应层,它从触摸屏驱动程序中获取原始设备坐标数据,通过一系列噪声消除、抖动、坐标转换等消除噪声,并将原始设备坐标转换为相应的屏幕坐标。Tslib/src/Tslib.h文件表明tslib在应用层提供了两个主要接口ts _ open(),ts _ close();使用Ts_read()和ts_read_raw()。其中ts_read()是正常情况,而ts_read_raw()是校准情况下使用的接口。Tslib的默认ts.conf文件中显示的默认插件如下:(最好阅读此配置文件,了解此文件创建的内容。)Pthres Tslib的触摸屏敏感度阈值插件;Variance为Tslib提供了触摸屏过滤器算法插件。Dejitter为Tslib提供的触摸屏降噪算法插件;Linear为Tslib提供了触摸屏坐标转换插件。Tslib处理从触摸屏驱动程序采样的设备坐标并将其提供给应用程序端的过程如下:raw device-variance-de jitter-linear-application模块模块模块模块让我们看看ts_calibrate主要做了什么。在校准情况下,处理由tslib驱动的采样数据的一般过程如下:1.读取屏幕上5个点的坐标(top left、top right、bottom left、bottom right、center),执行一系列转换,取样的5个点实际上包含3个不同的x值和3个不同的y值。和scaling值均为7,存储在/etc/pointercal中(触摸屏对齐文件)2.此/etc/pointercal文件主要用于linear插件。每次触摸都会进行多次触摸坐标转换。到目前为止找出了问题的大体解决方法。校准触摸屏后,linear插件将重新读取新的/etc/pointeracal文件,以便将新校准的坐标信息及时更新到上层应用程序中。下面要考虑具体的实现问题。1.在Linear.c文件中初始化模块时,您可能已读取/etc/pointercal文件。只需从Linear_read()中读取新的/etc/pointercal文件。2.校准后保存了新的pointercal文件,但是ts_lib如何知道当前pointercal文件是需要读取的新文件?最初,linear.c中的linear_read()函数检查/etc/poinercal文件的上次更新时间,如果当前更新时间大于上次更新时间,则pointercal。与刚启动管道的机器不同,RTC时间不确定,比较时间时出错。此外,始终轮询的方式和ts_lib的采样时间间隔值较小。这样,当用户经常按触摸屏时,会消耗大量系统资源。3.这时想到的方法是进程通信。ts_lib是在系统上运行的动态库,虽然系统中没有进程,但您可以使用折衷方法将调用ts_lib的进程号(实际上是x的进程号)保存在配置文件中。这样,使用ts_calibrate校准触摸屏后,将自定义信号作为信号发送到ts_lib,并将简单的信号处理函数添加到ts_lib中的lineral.c。收到信号后,将读取新的pointercal文件。正常情况下,不会执行轮询和读取操作。在上述三个阶段中,纠正后,端触应用及时生效的问题完全解决了。另一个次要问题是如何锁定屏幕?必须从内核开始,在linux2.6内核/drivers/input/evdev.c提供的ioctl中,确认为基于evdev的输入设备提供EVIOCGRAB实现。顾名思义,grab就是将当前输入操作捕获为当前操作,防止当前操作以外的所有应用程序读取触摸屏的触摸操作。您可以很容易地知道如何解锁锁定屏幕。源包括:Truct tsdev * tschar * ts device=/dev/input/event 0 ;Ts=ts_open(tsdevice,0);int ts _ tmp FD=ts _ FD(ts);If (ts_tmpfd=-1)perror( ts _ open );exit(1);unsigned long val=1;Intioctl _ ret=ioctl (ts _ tmpdfd,evocgrab,val);printf(“now lock the ts ioctl ret is :% d n”,ioctl _ ret);If (ioctl_ret!=0)printf(“error :% s n”,strrror(errno);exit(1);printf( lock the ts success n );现在,开始交叉编译tslib时,在开始编译之前,必须确保在自己的开发环境中安装了autoconf、automake、libtool等软件包。以前,我的虚拟机不是完全安装的,编译过程中出现了很多问题。此处建议完全安装虚拟机。但是,如果不想重新安装系统,也可以手动安装。以前直接安装,但成功安装了tslib软件,但以后的QT迁移过程中会发生很多不可预测的错误,因此建议完全安装虚拟机。可以使用命令在自己的虚拟机上查看autoconf版本。autoconfv开始编译Tslib之前,还需要注意另一个问题。请确保编译时使用的工具是跨工具链,而不是PC平台下的GCC工具。因为运行的平台不是PC的X86体系结构,而是嵌入式ARM体系结构。对此解释说,在网上查找了很多资料,没有任何说明,最终在CSDN博客上看到了网民李华8的文章。(或网民yihui8厚度)。网民yihui8博客地址(详细了解tslib-1.4交叉编译):http:/blog . csdn . net/yi hui 8/archive/2010/07/21/。aspx步骤1:提取源代码包:Tar xvzf tslib-1.4.tar.gzCd tslib第二步:进入tslib后,交叉编译环境(根据下面我的实际情况添加)迁移到开放主板时,除非设置交叉编译环境。运行/ts_calibrate程序时出现以下错误:./ts _ calibrate : line 1: syntax error : ( unexpected .$ export path=$ path :/usr/local/arm/4 . 3 . 2/bin$export CC=arm-linux-gcc$export CXX=arm-linux-g设置交叉编译环境后,即可开始安装。运行。/autogen.sh运行。/autogen.sh后可能会出现此类消息,但我的机器经常无法正常工作。我只看到了其中的几行信息,我以为一开始就出错了,但最终移植成功了,证明了这个阶段只出现几行也没什么关系。然后运行以下命令:./configure-prefix=/usr/local/tslib/-host=arm-Linux AC _ cv _ func _ malloc _ 0 (1)运行此命令时,需要添加enable inputapi=no或enable input=no的某些开发主板可能会根据tslib目录中的configure文件知道。(建议您查看一下此文档。)。亲切的arm mini 2440的触摸屏驱动程序支持ioctl操作(在内核移植中使用触摸屏驱动程序时,可以看到源代码支持ioctl),因此未添加到此处。-enable input API=no(2)如果未添加AC _ cv _ func _ malloc _ 0 _ nonnull=yes,则会发生交叉编译错误。undefined reference to rpl _ malloc。这是由AC _ cv _ func _ malloc _ 0 _ nonnull检查引起的,为了防止检查,请创建缓存文件daiq_tslib.cache以欺骗并重新运行configure。因此,为了顺利编译,在配置时必须添加此句子。AC _ cv _ func _ malloc _ 0 _ nonnull=是最后,运行make install可以成功地将tslib安装到指定的路径。我的指定路径为/usr/local/tslib/,如果成功安装在此文件下,则有四个目录:lib/etc/include/bin/安装Tslib后,如果将动态链接库文件复制到根文件系统(tslib使用动态链接库文件),则当忘记复制动态链接库时,将发生以下错误:复制后,必须在自己根文件系统的/etc/profile(添加到文件开头的下面)中设置tslib的环境变量(根据实际情况设置),以下是在“我的开发”主板上设置的tslib的环境变量:# ash配置文件#vim syntax=sh#No core files by defaultEcho Set ENV for tslib . export QTdir=/usr/local/troll tech/qtembedded-4 . 5 . 3-arm(文件系统中安装Qt的目录)exporttslib _ root=/usr/local/ts lib(ts lib的目录)ExportTSLIB_CONSOLEDEVICE=noneExportTSLIB_FBDEVICE=/dev/fb0exporttslib _ ts device=/dev/input/event 0exporttslib _ plugindir=$ ts lib _ root/lib/tsexportslib _ conf file=$ ts lib _ root/etc/tsexport pointer cal _ file=$ ts lib _ root/etc/pointer calexport qws _ display=linuxfb 3360 dev/fb0Export set QWS_SIZE=320x240export qws _ mouse _ proto=tslib :/dev/input/event 0export LD _ library _ path=$ tslib _ root/lib : $ qtdir/lib :/usr/local/lib : $echo“the env is successful”配置完这些环境变量后,请将其下载到开发主板。如果在运行/ts_calibrate时出现:ts _ open : no such file or directory说明环境变量设置存在问题后,可以使用env命令检查是否存在刚刚设置的环境变量。设定环境变数很重要,因为每个目录都包含所需的档案。补充:tslib环境变量配置说明:在装有触摸屏的移动终端上调试触摸屏性能是关键问题之一。因为电磁噪音容易导致触摸屏出现点击不准确、抖动等问题。Tslib是一个开放源代码程序,它为触摸屏驱动程序采样提供过滤器、抖动、补偿等功能,通常作为触摸屏驱动程序适应性层,为上层应用程序提供统一的界面。Qtopia 4。*版本中的默认Tslib版本为Tslib 1.4。Qtopia 2 .*版本中的默认Tslib版本为Tsl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 创业初期市场部经理面试题及答案
- 新华保险投资经理面试题集
- 2025秋季中国民用航空飞行学院新津分院、广汉分院、洛阳分院招聘17人备考笔试试题及答案解析
- 2026年房屋租赁邻里关系协调协议
- 2026年废振动污染波污染易发区保护保险合同中
- 2025年阜阳颍上县城乡水务有限公司招聘13人备考考试题库及答案解析
- 2026年农村土地经营权流转合同
- 2026年国际竞赛中国区选拔赛承办协议
- 2026年失独家庭帮扶协议
- 生活垃圾收转运设备设施更新改造项目节能评估报告
- 2026年辽宁生态工程职业学院单招职业适应性考试题库必考题
- 2026届高考化学冲刺复习水溶液中离子平衡
- 2025年大学物联网工程(传感器技术)试题及答案
- 工程部项目进度监控与风险应对方案
- 2025年秋季湖南省港航水利集团有限公司社会招聘备考题库附答案详解
- 河南省青桐鸣2026届高三上学期第二次联考语文试卷及参考答案
- 维护文化安全课件
- 汽车制造行业年终述职
- 交通运输公司安全管理工作计划及措施
- 《国家赔偿法》期末终结性考试(占总成绩50%)-国开(ZJ)-参考资料
- 工程监理居间协议书
评论
0/150
提交评论