tslib 1.4 在ARM板上移植

原创 2011年01月17日 22:46:00

1.首先从网上下载的tslib-1.4.tar.gz
2.解压 tar xvzf tslib-1.4.tar.gz ; cd tslib
3.生成configure,这里比一般的开源项目少做一步,要先运行解压目录下的脚本
  ./autogen.sh
4.用configure 生成Makefile.
  这里按汇森移植规范移输出到output目录当中.
    即有如下目录结构
  hxy_project
    |
    +-- docs
    |
    +-- output
    |     |
    |      + -- arm-linux  #项目发布目录
    |
    +--- libs
           |
           +--  tslib
生成脚本
  ./configure --host=arm-linux --prefix=$PWD/../../output/arm-linux ac_cv_func_malloc_0_nonnull=yes  --enable-inputapi=no
 
   其中ac_cv_func_malloc_0_nonnull=yes 是为解决如下编译错误设置的

ts_test.o: In function `main':
ts_test.c:(.text+0x1d8): undefined reference to `rpl_malloc'
fbutils.o: In function `open_framebuffer':
fbutils.c:(.text+0xa20): undefined reference to `rpl_malloc'
collect2: ld returned 1 exit status

--enable-inputapi=no. 是为了解决运行中提示 ts_open:Inappropriate ioctol for device,它表示
即不使用ioctl来控制触摸屏。但是我在几个板没有碰到这样提示--enable-inputapi=no
5.编译安装
   make
   make install-strip #安装strip后的库
 #make install #安装没有strip库版本.
 
 
配置与测试tslib  
  tslib只是应用级的一个程序库,只是用来封装底层的触摸屏驱动的操作,以一个统一接口来给其它应用程序使用.因此tslib正常工作的 前提是开发板上的触摸屏驱动能正常工作.另外触摸屏的效果往往需要在LCD上显示,因此tslib也需要开发板上的FrameBuffer驱动正常工作.
   测试FrameBuffer 驱动的方法参见我的博文
  
   ARM开发板常见的触摸屏驱动分为两大类,一类是模拟HP 3600的调用接口.这类驱动一般使用/dev/h3600_tsraw 的设备结点文件.早期开发板一般都是这一类,
   另外一类是采用Linux 2.6 输入设备接口的驱动。这类驱动会将触摸屏驱动设计成一个标准输入事件设备(linux input layer event interface),所有事件输入设备结点命名为/dev/input/eventN (N>=0).
 一般都是/dev/input/event0.而且驱动向应用程序发送标准的struct event 结构。
  ARM板使用哪种驱动接口.要参考产商的文档或直接查看已经成功的程序使用哪一个。

 
 
 
  tslib 运行时需要一个关键的ts.conf来设置采用哪一种驱动。另外还需要设定一些环境变量。当编译完tslib安装后,在安装目录的etc下有一个 ts.conf的模板。如果使用h3600设备,则使用module_raw h3600,如果是使用输入设备,则使用module_raw input.
 #ts.conf template

module_raw input
#module_raw h3600

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

 
注意配置项要顶格写,如果有空格,tslib将会u有段错误。这是它的bug.
 
正常运行tslib 也需要配置一系列环境变量
 #export TSLIB_ROOT=/usr/local/tslib
export TSLIB_ROOT=/mnt/hxy/output/arm_linux
#取决具体的设备驱动了,事件驱动用
export TSLIB_TSDEVICE=/dev/input/event0
#h3600用如下配置
#  export TSLIB_TSDEVICE=/dev/h3600_tsraw
#触摸屏定位文件保存位置
export TSLIB_CALIBFILE=/etc/pointercal
#tslib配置文件内容
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
#tslib 插件目录 
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
  export TSLIB_CONSOLEDEVICE=none
#LCD设备结点 
export TSLIB_FBDEVICE=/dev/fb0
#把libts.so加入动态搜索路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib

 

 
将其放入ARM开发的Flash或NFS路径下。可以测试运行安几装目录下的bin的几个测试程序
运行ts_test.将会在屏幕出现如下界面。点击控制台将会有输出。

 
 
关于触摸屏定位
  软件最常采用是鼠标的坐标体系,它是采用相对位移来判断位置.但触摸屏采用绝对定位坐标。为了让程序响应触摸屏的点击,要把触摸屏的坐标换算成软件识别的 相对坐标。因此要有一组参数来做换算。换算的参数来自于触摸屏定位程序,如果参数不对,最明显的结果就是定位不准。每一个使用触摸屏的嵌入式设备通常都带 有这样工具,比如我们使用手机。(但大规模量产的定位参数都是统一设好).
  开发板一般需要自己手动设置,tslib自带一个 ts_calibrate有这样功能。Qtopia也自带一个。两者界面类似,写的结果通常都是/etc/pointercal 这个文本文件里面。
  操作方法也类似,当界面出一个小十字时,点击交叉点即可,设置分别会在左上,左下,右上,右下和中心依次出现五个小十字。
   
Qtopia 定位程序界面。
 
 
tslib 的定位程序界面
 
 
tslib安装
   tslib 发布要将libts.so,以及它的针对各个触摸屏设备的插件,ts.conf ts_calibrate 一同发布在开发板上,并用前述的环境变量设置相应的值。 

tslib 1.4 在ARM板上移植(转)

1.首先从网上下载的tslib-1.4.tar.gz 2.解压 tar xvzf tslib-1.4.tar.gz ; cd tslib 3.生成configure,这里比一般的开源项目少做一步,要先...
  • bangdingshouji
  • bangdingshouji
  • 2016年03月12日 11:57
  • 1057

tslib 1.4 在ARM板上移植

tslib 1.4 在ARM板上移植 编译tslib 库   1.首先从网上下载的tslib-1.4.tar.gz 2.解压 tar xvzf tslib-1.4.tar.gz ; cd ts...
  • jeanblog
  • jeanblog
  • 2011年09月19日 20:00
  • 299

QT学习之路(一)————移植tslib库到开发板

这东西我做了好久, 也出现了很多问题,不把它写到博客上真的是对不起我自己,所以,我一做完就来写博客了! 注意:移植tslib库之前要先把开发板的屏幕驱动移植好,屏幕驱动的移植详见我的博客:http:/...
  • huangan_xixi
  • huangan_xixi
  • 2015年10月27日 15:28
  • 1016

tslib移植全过程,可能遇到的所有问题,错误

环境:Ubuntu,交叉编译器,tslib-1.4 移植步骤: 第一步:获取tslib的源码 使用git获取tslib源码: git clone https://github.com/15903016...
  • hpu11
  • hpu11
  • 2016年11月09日 20:50
  • 1285

实习笔记--------------tslib1.4的编译与移植

系统:Ubuntu 9.04  编译工具:arm-linux-gcc 4.3.2  编译目标:tslib1.4        (1)安装 arm-linux-gcc 4.3.2 ,请参照博客h...
  • yf210yf
  • yf210yf
  • 2011年08月19日 13:44
  • 2738

关于嵌入式x86平台tslib1.4+qt4.8.4移植

由于我的嵌入式平台为x86的。网上大多数资料都是ARM平台的。可能x86的更简单些,但是我也遇到不少问题。过程和问题如下: tslib版本 tslib 1.4  下载地址:http://down...
  • mmz_xiaokong
  • mmz_xiaokong
  • 2013年01月10日 10:08
  • 3860

tslib-1.4移植 qt-4.8.5移植

1.安装需要的工具 sudo apt-get install automake sudo apt-get install autogen sudo apt-get install autoconf ...
  • layverns
  • layverns
  • 2014年03月23日 11:28
  • 1194

移植iptables命令到ARM开发板

linux版本:feodra-14 交叉编译版本:arm-linux-gcc-3.4.1   1.       查看PC上iptables位置 #which iptables /sbin/i...
  • xc889078
  • xc889078
  • 2013年04月14日 14:04
  • 1856

ubuntu下的qt程序移植至ARM开发板

一、第一步新建一个helloworld  QT工程。 二、使用qmake工具生成Makefile文件        在工程源码文件夹运行qmake   “#/opt/qt-4.7.1/bin/qm...
  • tuwenqi2013
  • tuwenqi2013
  • 2017年03月13日 20:27
  • 725

python移植到arm

Python-2.7.3: 1. make peng()  mkdir build.pc
  • hjd03132301
  • hjd03132301
  • 2014年06月06日 13:54
  • 574
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:tslib 1.4 在ARM板上移植
举报原因:
原因补充:

(最多只允许输入30个字)