前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >嵌入式(触摸板库tslib的编译和配置)

嵌入式(触摸板库tslib的编译和配置)

作者头像
用户2617681
发布2019-08-08 11:30:21
2K0
发布2019-08-08 11:30:21
举报
文章被收录于专栏:秘籍酷秘籍酷

作为基本输入设备,触摸板几乎是交互式嵌入式系统的标配。当我们知道了可以通过设备节点读取触摸板数据后,我们需要进一步优化这些直接获取的原生数据,比如去抖、消噪、校准等。 优化触摸板的 raw (原生)数据是一项十分复杂的算法任务,涉及诸如矩阵运算、行列式等高等数学,一般需要有比较扎实的数学背景的算法工程师来做,他们的其中一项杰出成果,便是今天要介绍的 tslib 库了。

没有 使用 tslib 库之前,操作触摸板设备的代码样子是这样的:(丑翻天!!)

经过 tslib 库整容之后,操作触摸板的代码是这样子的:(美轩完!!)

可以看到,使用了 tslib 库之后不仅得到了各种牛逼算法的保驾护航,而且代码更加简练,逻辑更加清晰,整个人瞬间变美变帅有没有!

因此,投资点时间来搞 tslib 库是值得的,下面以粤嵌的嵌入式课程环境为例(含粤嵌的GEC210开发板),具体操作步骤如下:

1,上网搞个源码库,如果你可爱到不会用百度,没关系,戳我下载(http://download.csdn.net/detail/vincent040/9662825)。

2,将源代码丢到Ubuntu,并通过以下命令解压到Ubuntu的家目录下:

tar xjvf tslib-1.4.tar.bz2 -C ~

3,进入源码顶层目录,依次执行如下命令:

mkdir ~/tslib ./configure --prefix=/home/xxx/tslib --host=arm-none-linux-gnueabi make make install

当然,我以我多年栽坑经验告诉你,以上指令哪些地方需要注意,以便节约你宝贵的生命,没错请叫我雷锋,林雷锋。

A) --prefix= 后面的路径就是你要安装 tslib 库的路径,墙裂建议设置为家目录下的空目录(比如~/tslib),因为如果设置系统其它目录的话,后期 make install 的时候会让你解决权限的问题,当你自作聪明地使用sudo的时候,系统却又可能会抱怨找不到工具链,因此除非你是 Ubuntu科学家,对系统环境变量了如指掌,否则不要用小白的身份去作死,乖乖将 --prefix 指定为 ~/tslib 即可。

B) --host= 后面就是你工具链的前缀,注意别眼花写错了。

C) make的时候,一般会出现如下错误:

这个问题怎么解决呢?莫方,我看你有缘,今日将祖传秘方传授与你(默默承认我这年龄不应有的智慧和大度):那就是,将源码顶层目录下的 config.h文件的第181行,删除!然后重新 make ,问题解决。

最后,你将会在 /home/xxx/tslib 下发现如下目录:

接下来,你需要想办法,将这一堆文件搞到开发板里面去,一般先将它们打包压缩,然后通过串口或者网络协议传输到开发板,然后在开发板中解压即可。

库都拷贝到了开发板,是不是就万事大吉了呢?非也,你辛辛苦苦干的这些活儿,开发板系统是无知无觉的,你还必须这么做:

1,将 tslib/etc/ts.config 中的第2行,由原来这个样子:

改成这个样子

没错,就是把第 2 行前面的井号 # 和空格删除,注意,我说井号和空格,我没说井号,好之为之。

2,在开发板系统的 /etc/profile 文件中,增加如下内容(假设你把 tslib 库放到了开发板的根目录下,如果不是,以下路径请进行相应的修改):

export TSLIB_ROOT=/tslib/lib export TSLIB_TSDEVICE=/dev/event0 export TSLIB_FBDEVICE=/dev/fb0 export TSLIB_CONFFILE=/tslib/etc/ts.conf export TSLIB_PLUGINDIR=/tslib/lib/ts export TSLIB_CONSOLEDEVICE=none export TSLIB_CALIBFILE=/tslib/calibration export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/tslib/lib

解释一下上面的环境变量:

TSLIB_ROOT 指明TSLIB库在开发板中的具体位置,要以实际情况为准。 TSLIB_TSDEVICE 指明开发板触摸屏的设备节点文件名称。 TSLIB_FBDEVICE 指明开发板LCD的设备节点文件名称。 TSLIB_CONFFILE 指明TSLIB库的配置文件的具体位置,要以实际情况为准。 TSLIB_PLUGINDIR 指明TSLIB库的插件模块的具体位置,要以实际情况为准。 TSLIB_CONSOLEDEVICE 指明终端名称,none意为让系统自动匹配。 TSLIB_CALIBFILE 指明校正文件的位置,该文件在执行ts_calibrate之后自动生成。 LD_LIBRARY_PATH 是开发板系统的动态库链接路径

3,最后的最后,重启开发板,让系统重新读取 /etc/profile 文件的内容,有必要的话执行以下 /tslib/bin/ts_calibrate 校准屏幕,大功告成(再再一次默默承认这个年纪不该有的智慧)!

老司机带路,赶紧点阅读原文,没时间了赶紧的!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秘籍酷 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档