Tiny6410 移植tslib1.4

本文详细介绍了在Ubuntu11.04环境下使用arm-linux-gcc4.3.2编译工具移植tslib1.4的过程。包括环境搭建、源码修改、配置与编译等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 文章来源:http://blog.youkuaiyun.com/yf210yf/article/details/7352470

 系统:Ubuntu 11.04

 编译工具:arm-linux-gcc 4.3.2 

 编译目标:tslib1.4      

 (1)安装 arm-linux-gcc 4.3.2 ,请参照博客http://blog.youkuaiyun.com/yf210yf/article/details/6697387

 (2)将tslib-1.4.tar.gz解压到任一目录

 (3)进入tslib目录 cd tslib


由于tiny6410的一线触摸,所以需要改程序,照别人的: 
        打开tslib/plugins/input-raw.c

        把其中的ts_input_read 函数改成如下:

static int ts_input_read(struct tslib_module_info *inf,
    struct ts_sample *samp, int nr)
{
	printf ("HEAD=== ts_input_read in INPUT-RAW.C\n");
	struct tslib_input *i = (struct tslib_input*)inf;
	struct tsdev *ts = inf->dev;
	struct input_event ev;
	int ret = nr;
	int total = 0;
	unsigned long jjts;

	while(total<nr)
	{
	ret =read(ts->fd, &jjts,sizeof(jjts));

	//if (ret==-1) continue;

	if (ret==-1) return 0;

	samp->pressure=(jjts>>31)& 0x01;
	samp->x=(jjts>>16)& 0xffff;
	samp->y=jjts & 0xffff;

	samp++;
	total++;
	}

 ret=total;
 return ret;

}





特别注意:

参照网上许多资料,上面讲的都是if (ret==-1) continue;做了以后,发现触摸屏能校准,但是运行qt程序时,光标能移动,但是点击无效。所以改成

if (ret==-1) return 0;问题解决。



 (4)安装库支持:

sudo apt-get install autoconf automake libtool


(5)export PREFIX=/opt/tslib                  设置目标位置

(6)./autogen.sh                                     用于生成configure脚本

(7)echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache          产生一个cache文件arm-linux.cache,欺骗configure

(8)CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX --cache-file=arm-linux.cache

(9)make

(10)make install

  编译成功后在目标位置产生/bin、/etc、/include、/lib 4个文件夹
(11)修改/opt/tslib/etc/ts.conf 文件,删除其中内容,改为

           module_raw input

           module pthres pmin=1
           module variance delta=30
           module dejitter delta=100
           module linear

第一行是tslib从linux的输入设备读取数据时需要用到的模块,这里指定的模块为input,具体需要用到哪个模块,需要参考其他数据。
第二行的pthres为Tslib提供的触摸屏灵敏度门槛插件。
第三行的variance为Tslib提供的触摸屏滤波算法插件。
第四行的dejitter为Tslib 提供的触摸屏去噪算法插件。
第五行linear为Tslib提供的触摸屏坐标变换插件。

(12)将/opt下的tslib文件夹拷贝到arm文件系统的/opt下

(13)设置环境变量脚本tslib.sh


     

    #!/bin/sh
	export TSLIB_ROOT=/opt/tslib
	export TSLIB_TSDEVICE=/dev/touchscreen-1wire
	export TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointercal
	export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
	export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
	export TSLIB_CONSOLEDEVICE=/dev/tty
	export TSLIB_FBDEVICE=/dev/fb0   


(14)启动arm板,命令行下执行脚本

          source tslib.sh


(15)校准触摸屏

           cd /opt/tslib/bin

           ./ts_calibrate


          会出现校准画面,完成后生成pointercal 文件


 (16)链接

          ln -s /opt/tslib/etc/pointercal /etc/pointercal


 至此,tslib1.4移植完成


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值