利用tslib为MiniGui提供触摸屏的IAL引擎(3)----tslib的交叉编译

来源:互联网 发布:小米云服务擦除数据 编辑:程序博客网 时间:2024/06/03 02:26
 

tslib的交叉编译

Tslib的官方下载地址为一个CVS服务器,下载方法为:

[root@localhost]#export CVSROOT=:pserver:cvs@pubcvs.arm.linux.org.uk:/mnt/src/cvsroot

[root@localhost]#cvs login

[root@localhost]#cvs co tslib

获得Tslib的源代码后,需要首先进行编译,下面以Tslib 1.3为例介绍Tslib编译过程

[root@localhost]#cd ../tslib1.3

//指定交叉编译工具

[root@localhost tslib-1.3]# export CC= /opt/host/armv4l/bin/armv4l-unknown-linux-gcc

//生成config文件

[root@localhost tslib-1.3]#./autogen.sh

[root@localhost tslib-1.3]#export PATH=/opt/host/armv4l/armv4l-unknown-linux

//避免检查ac_cv_func_malloc_0_nonnull

[root@localhost tslib-1.3]#echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache

//配置目标机、缓冲、安装路径

[root@localhost tslib-1.3]# ./configure --host=armv4l-unknown-linux --cache-file=arm-linux.cache --prefix=/opt/host/armv4l/armv4l-unknown-linux/tslib --sysconfdir=/etc

****************************************************
make之前,为了支持触 摸屏,打开src/ts_read_raw.c文件,查看触摸屏驱动程序数据结构,看与ts_read_raw.c结构中的哪个一样,就将代码中的 char *defaulttseventtype="UCB1x00"; 修改为 自己板子上对应的驱动结构。

因为我的驱动对应的是h3600_ts_event结构
typedef struct {
unsigned short pressure;
unsigned short x;
unsigned short y;
unsigned short pad;
} TS_RET;
所以修改为:
   char *defaulttseventtype="H3600";

************************************
如果不修改源代码,也可以在后面的测试中重新指定环境变量
export TSLIB_TSEVENTTYPE=H3600 //
通过这个对tslib中的设备结构体定义
*****************************************************

如果你触摸屏驱动程序支持ioctl操作,上面的configure操作中的--enable-inputapi=no你可以删除。
然后就可以make

*************************************************
[root@localhost tslib-1.3]# make

[root@localhost tslib-1.3]# make install

make 时候在fc6下出现的错误信息如下:

only absolute run-paths are allowed错误

解决办法:要修改/tslib/plugins/Makefile里面找rpath
LDFLAGS :=$(LDFLAGS) -rpath $(PLUGIN_DIR)
修改为:

LDFLAGS :=$(LDFLAGS) -rpath `cd $(PLUGIN_DIR) && pwd`

这样就可以在/opt/host/armv4l/armv4l-unknown-linux/tslib目录下看到相关的应用程序、共享库、配置文 件等了,需要说明的是在嵌入式中,由于触摸屏的种类多样、质量不一,采用Tslib的参考配置往往无法获得较好的触摸屏触摸效果,同样需要经过大量的测试 才能得到满意的配置参数,恶劣情况下,甚至需要对Tslib的算法进行进一步的优化。

转载注明出处:http://hi.baidu.com/luv%5Fresplendent/modify/blog/248690ada8cd270f4b36d6ff

原创粉丝点击