| 
 
贡献0 
飞刀0 FD
注册时间2016-4-8
在线时间0 小时积分0 
 
 扫一扫,手机访问本帖  | 
 
| | 转载自:http://www.mcuprimer.com/forum.php?mod=viewthread&tid=72&highlight=OK335 
 首先tslib背景:​
 在采用触摸屏的移动终端中,触摸屏性能的调试是个重要问题之一,因为电磁噪声的缘故,触摸屏容易存在点击不准确、有抖动等问题。
 Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。
 
 
 那既然它只是一个API,就是跨平台的,比如你可以移植到X86架构的平板上,也可以移植到ARM架构的开发板上,什么TQ2440,Mini2440,OK6410,OK335X,OK210等等,都是没有问题的,手上有了块OK335X,于是我也来试试。
 1.我们要把这个库移植到ARM平台上,首先要交叉编译,不要跟我说你已经有交叉编译好的了!参考这个帖子,[img]http://www.mcuprimer.com/%22[url]http://cache.soso.com/img/img/e113.gif/%22[/img][/url]。
 2.==,编译之前我们需要先装几个东东!后面执行脚本时,要用到的几个命令:
 
 $ sudo apt-get install autoconf$ sudo apt-get install automake$ sudo apt-get install libtool
 [color=rgb(51, 102, 153) !important]复制代码
 3.别忘了,你得要有这个库哇!tslib-1.4.tar.gz
 4.好的!下载好了!move on...
 放到你的目录下,自己找个目录,解压
 
   
 
 
  $ tar -xvf tslib-1.4.tar.gz
 [color=rgb(51, 102, 153) !important]复制代码
 
 
 
   
 [color=rgb(51, 102, 153) !important]复制代码
 
 
 
 
 
 
   
 
 [color=rgb(51, 102, 153) !important]复制代码
 完了在当前目录下创建一个目录,build,用来存放我们编译出来的东西。
 
 [color=rgb(51, 102, 153) !important]复制代码
 go on...
 
   
 
 ./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix=/home/somebody/OK335X/Linux/tslib/build/
 [color=rgb(51, 102, 153) !important]复制代码
 注意-prefix这个选项就是刚才我们创建的那个目录,绝对路径哦!
 
 
 
   
 
 
 接下来就是重点了:
 [color=rgb(51, 102, 153) !important]复制代码
 
   
 
 
 
  [color=rgb(51, 102, 153) !important]复制代码
 
 
 
   
 
 完了!!!
 
 
 去build目录下看看,是不是生成了一些文件:
 
 
   
 
 PS:
 
 1.当然你也可以像飞凌官方那样把上面的命令写成一个脚本:
 
 
   
 
 我在最后才说这个,是不是有点坑啊!哈哈哈{:soso_e144:}
 
 2.如果上面的某个操作无法往下执行,出现了种种错误,抱歉我这里一个帖子无法完全覆盖,请以度娘为准!我基本上所有的错误都碰到过了,度娘都解决了!
 
 
 续:上面的准备工作好了,现在要把这个库放到板子上去哇!
 1.假设我的根文件系统在这里:/home/somebody/OK335X/Linux/filesystem/rootfs-mini
 
 现在到我们刚才编译好了的目录build。
 
   
 
 把刚才生成的文件如上,拷贝到我的根文件系统下:
 
 $ sudo cp -r lib/* ~/OK335X/Linux/filesystem/rootfs-mini/usr/lib/
 [color=rgb(51, 102, 153) !important]复制代码
 
 $ sudo cp -r bin/* ~/OK335X/Linux/filesystem/rootfs-mini/usr/bin/
 [color=rgb(51, 102, 153) !important]复制代码
 
 [color=rgb(51, 102, 153) !important]复制代码
 
 去掉这个文件里面第二行module_raw input 前注释符#,一定要注意中间的空格也去掉,module 顶格!
   
 
 
 然后,
 
 $ sudo cp -r etc/* ~/OK335X/Linux/filesystem/rootfs-mini/etc
 [color=rgb(51, 102, 153) !important]复制代码
 
   
 
 
 2.导出tslib环境变量
 
   
 
 $ cd /home/somebody/OK335X/Linux/filesystem/rootfs-mini
 [color=rgb(51, 102, 153) !important]复制代码
 
 [color=rgb(51, 102, 153) !important]复制代码
 
 添加以下环境变量:
 
   
 
 
 
 export TSLIB_TSDEVICE=/dev/input/touchscreen0export TSLIB_CONFFILE=/etc/ts.confexport TSLIB_PLUGINDIR=/usr/lib/tsexport POINTERCAL_FILE=/etc/pointercalexport TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_CONSOLEDEVICE=noneexport TSLIB_FBDEVICE=/dev/fb0
 [color=rgb(51, 102, 153) !important]复制代码
 
 
 tslib环境变量说明:
 TSLIB_CONFFILE                          //配置文件名
 TSLIB_PLUGINDIR                        //插件目录
 POINTERCAL_FILE:                     //指定包含用于校准指针设备的数据的文件
 TSLIB_TSDEVICE                          //触摸屏设备文件名
 TSLIB_CALIBFILE                         //校准的数据文件,由 ts_calibrate 校准程序生成
 TSLIB_CONSOLEDEVICE                //控制台设备文件名
 TSLIB_FBDEVICE                          //设备名
 以上环境变量在实际开发中的实际配置可以根据实际情况决定。而这些指定的设备节点一定要和你的开发
 板上的/dev 目录下的设备节点相对应。
 
 3.OK,该上开发板了!把上面这个根文件系统放到SD卡里面的rootfs分区,将启动方式设置为SD卡启动,上电!
 
   
 
 
 
   
 
 
 
 
   
 
 
   
 
 
 
 
 
 
 
 | 
 
  
 
  
 
  
 
  
 
  
 
 
 | 
 |