移植tslib库 [五一勋章]

简介: 移植tslib库 [五一勋章]

移植tslib库

tslib 为触摸屏驱动和应用层之间的适配层,它把应用程序中读取触摸屏 struct input_event 类型数据(这是输入设备上报给应用层的原始数据)并进行解析的操作过程进行了封装,向使用者提供了封装好的 API 接口。tslib 从触摸屏中获得原始的坐标数据,并通过一系列的去噪、去抖、坐标变换等操作,来去除噪声并将原始的触摸屏坐标转换为相应的屏幕坐标。


下载源代码,在虚拟机上交叉编译tslib库

tslib  安装目录下的文件夹介绍

bin 目录下有一些 tslib 提供的小工具,可以用于测试触摸屏。


etc 目录下有一个配置文件 ts.conf,前面给大家提到过


include 目录下只有一个头文件 tslib.h,该头文件中包含了一些结构体数据结构以及 API 接口的申明,使用 tslib 提供的 API 就需要包含该头文件。


lib 目录下包含了编译 tslib 源码所得到的库文件,默认这些都是动态库文件,也可以通过配置 tslib 工程使其生成静态库文件;


在开发板上测试 tslib

移植的最后一步就是把 tslib 安装目录下的库文件、etc 下的配置文件以及编译得到的测试工具拷贝到开发板 Linux 系统目录下.


⚫将安装目录 bin/目录下的所有可执行文件拷贝到开发板/usr/bin 目录下;


⚫将安装目录 etc/目录下的配置文件 ts.conf 拷贝到开发板/etc 目录下;


⚫ 将安装目录 lib/目录下的所有库文件拷贝到开发板/usr/lib 目录下。


接着需要配置一些环境变量,因为 tslib 工作的时候它需要依赖于一些环境变量,譬如它会通过读取环境变量来得知 ts.conf 配置文件、库文件的路径以及我们要测试的触摸屏对应的设备节点等信息。


在开发板上执行下面命令:


export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event5
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts


TSLIB_CONSOLEDEVICE:用于配置控制台设备文件名,直接配置为 none 即可!


TSLIB_FBDEVICE:用于配置显示设备的名称,tslib 提供了手指触摸画线的测试工具,需要在 LCD 上显示,所以这里需要指定一个显示设备的设备节点。


TSLIB_TSDEVICE:用于配置触摸屏对应的设备节点,根据实际情况配置。

TSLIB_CONFFILE:用于配置 ts.conf 文件的所在路径。

TSLIB_PLUGINDIR:用于配置插件所在路径。


基于 tslib 编写触摸屏应用程序

参考ts_read.c


交叉编译ts_read.c,虚拟机下执行命令:

arm-none-linux-gnueabi-gcc -I /home/work/tools/tslib/include -L /home/work/tools/tslib/lib/ -lts -o ts_read ts_read.c


微信图片_20230117215118.png


-I 选项指定头文件的路径,也就是指定 tslib 安装目录下的 include 目录,如果不指定头文件路径,编译


时将会找不到 tslib.h 头文件;-L 选项用于指定库文件的路径,也就是指定 tslib 安装目录下的 lib 目录;我


们将 tslib 编译成了动态库文件,以库文件的形式提供,编译时需要链接到这些库文件;而-l 选项则用于指定链接库(也可写成-l ts,也就是 libts.so 库文件,Linux 中,动态库文件的命名方式为 lib+名字+.so)。


将编译得到的可执行文件拷贝到开发板 Linux 系统的用户家目录下,执行应用程序,进行测试:


目录
相关文章
|
Android开发 芯片
【致敬未来的攻城狮计划】--RA2E1 开发板测评(1)keil环境配置
【致敬未来的攻城狮计划】--RA2E1 开发板测评(1)keil环境配置
201 0
|
供应链 Linux Android开发
目前该不该入坑鸿蒙
最近有一些朋友问现在该不该学习鸿蒙系统,如果不学是不是会落伍了啊?今天跟大家说说我的看法!
easyX配套VC++(easyx安装及vc/vs安装)一招让你的代码黑框更多彩
/x,y用具体数值表示例如initgraph(500,500);就是初始化一个500*500像素大小的画布第一个数值为宽,第二个数值为高,第三个值为窗口样式值EW_DBLCLKS //在绘图窗口中支持鼠标双击事件EW_NOCLOSE //禁用绘图窗口的关闭按钮EW_NOMINIMIZE //禁用绘图窗口的最小化按钮。
|
编译器 C语言 Windows
问题集锦:Windows下使用CMake编译cocos2d-x
问题集锦:Windows下使用CMake编译cocos2d-x
356 0
Win系统 - 一键秒关所有程序,霸气侧漏!
Win系统 - 一键秒关所有程序,霸气侧漏!
308 0
Win系统 - 一键秒关所有程序,霸气侧漏!
|
存储 开发工具 git
没用过.gitignore还敢自称高级开发?
Git是跟踪项目中所有文件的好工具, 但是,您会希望在项目的整个生命周期中不要跟踪某些文件及其变更。
没用过.gitignore还敢自称高级开发?
|
机器学习/深度学习 算法 数据挖掘
该死!B 站上这些 Python 视频真香!
无论什么时候,都有初学者存在找不到学习资源的困惑。其实呢,一般通过百度、知乎估计也都能找到个的结果,不过质量可能就会层次不齐了。
该死!B 站上这些 Python 视频真香!
|
计算机视觉 Python
龙芯派2代开发日记-安装opencv2-交叉编译py3.8
龙芯派2代开发日记-安装opencv2-交叉编译py3.8
763 0
|
缓存
micropython 自制数码相机
利用tpyboard自制数码相机
2837 0

相关课程

更多
下一篇
DataWorks