移植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 系统的用户家目录下,执行应用程序,进行测试:


目录
相关文章
|
7月前
|
Linux 编译器 C语言
《Linux从练气到飞升》No.05 Linux编译器gcc/g++的使用及编译过程 【云边有个小卖部】上新
《Linux从练气到飞升》No.05 Linux编译器gcc/g++的使用及编译过程 【云边有个小卖部】上新
162 0
|
4月前
|
并行计算 Linux C语言
CMake 围炉札记
CMake 围炉札记
68 12
|
4月前
|
Ubuntu Linux Docker
OrangePi 学习摘录
OrangePi 学习摘录
27 1
|
7月前
|
IDE Linux 开发工具
《Linux从练气到飞升》No.06 Linux项目自动化构建工具 make/Makefile 【云边有个小卖部】上新啦
《Linux从练气到飞升》No.06 Linux项目自动化构建工具 make/Makefile 【云边有个小卖部】上新啦
101 0
|
编译器 C语言 C++
静态链接库,动态链接库【滴水逆向三期48笔记】(下)
静态链接库,动态链接库【滴水逆向三期48笔记】(下)
|
编译器 C++
静态链接库,动态链接库【滴水逆向三期48笔记】(上)
静态链接库,动态链接库【滴水逆向三期48笔记】
|
Android开发 芯片
【致敬未来的攻城狮计划】--RA2E1 开发板测评(1)keil环境配置
【致敬未来的攻城狮计划】--RA2E1 开发板测评(1)keil环境配置
201 0
|
存储 开发工具 git
没用过.gitignore还敢自称高级开发?
Git是跟踪项目中所有文件的好工具, 但是,您会希望在项目的整个生命周期中不要跟踪某些文件及其变更。
没用过.gitignore还敢自称高级开发?
|
机器学习/深度学习 人工智能 算法
PyHubWeekly | 第二十期:动漫迷不能错过的一款Python小工具!
PyHubWeekly每周定期更新,精选GitHub上优质的Python项目/小工具。 我把PyHubWeekly托管到了Github,感兴趣的可以搜索Github项目PyHubWeekly[1],如果喜欢,麻烦给个Star支持一下吧。此外,欢迎大家通过提交issue来投稿和推荐自己的项目~ 本期为大家推荐GitHub上5个优质的Python项目,它们分别是: •AnimeGAN •faker •Background-Matting •PyBoy •Learning-to-See-in-the-Dark
PyHubWeekly | 第二十期:动漫迷不能错过的一款Python小工具!
|
计算机视觉 Python
龙芯派2代开发日记-安装opencv2-交叉编译py3.8
龙芯派2代开发日记-安装opencv2-交叉编译py3.8
763 0