原创 嵌入式系统触摸屏的校准 tslib的交叉编译与测试

2009-10-23 15:01 6402 7 7 分类: MCU/ 嵌入式

     我的用minigui为平台开发的软件终于写的八八九九了,由于用的开源免费的版本,根本没什么人维护与技术支持,写这个软件真是一个痛苦的过程,遇到了很多问题。


     其中一个很大的问题就是触摸屏的坐标映射不准确,必须进行校准。tslib就是一个开源的触摸屏校准工具。


     这篇文章我只介绍编译与测试tslib,至于如何用tslib校准minigui的IAL接口,我还在做,等做好了,发上来分享。


      1.首先下载一个tslib的源码,我下的是tslib-1.0的版本。


      2.运行autogen.sh(注意我在redhat9.0上运行不了,因为没有libtool工具,大家可以自己去安装,由于我的虚拟机还有fedora8所以就可以编译过去了)。


     3.做第2步骤的时候可能会报错,“ts_test.c.text+0x200): undefined reference to `rpl_malloc'”,最简单的方法就是把tslib-1.0\config.h中有一行定义“#define malloc rpl_malloc”,直接注释即可。


     4.导出交叉编译工具:


    export CC="/opt/host/armv4l/bin/arm-unkown-linux-gcc"


    5.运行configure


   #./configure --host=arm-linux    --prefix=/home/tslib


   --enable=inputapi=no(与你的触摸屏驱动有关)


  如果失败说明你的automake工具没装或版本过低


   6. #make


      #makeinstall


  7.这时会在/home/tslib下产生编译好的东东


  首先我们修改etc下的tc.conf


  选择一个驱动架构,我选择的第一个,把#号去掉


  8.然后把tslib里面所有的内容拷贝到目标板中,这里我出了个大问题,搞的我半天时间,如果你通过NFS的话应该没问题,我是通过U盘拷下去的,因为U盘的文件系统是fat格式的,原来的link文件信息丢失


必须重新用指令完成


rm ./lib/libts.so (删除已经丢失信息的link)
rm ./lib/libts-0.0.so.0


ln -s libts-0.0.so.0.1.1 libts.so(重新link)
ln -s libts-0.0.so.0.1.1 libts-0.0.so.0


9.把tslib里面的文件分别拷贝到arm板子的相应位置


cp ./bin/* /bin
cp ./etc/* /etc
cp -af ./lib/* /lib


10. 在运行tslib的校准程序之前,必须设置相关的环境变量:


export TSLIB_TSDEVICE=/dev/touchscreen/0raw         (我的触摸屏驱动)
export TSLIB_CONFFILE=/etc/ts.conf                          (其他都一样)
export TSLIB_PLUGINDIR=/lib/ts/
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export LD_LIBRARY_PATH=/lib/


11.运行:


 #/bin/ts_test             //看看准不准


 #/bin/ts_calibrate      //校准


 #/bin/ts_test             //是不是准了?            


   https://static.assets-stash.eet-china.com/album/old-resources/2009/10/23/cb66cca8-644e-4b10-8c19-989b5139e536.rar

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条