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


目录
相关文章
|
1月前
|
安全 Unix Linux
Linux:开源之美与代码之韵
Linux:开源之美与代码之韵
29 1
|
9月前
|
存储 算法 搜索推荐
CMake 保姆级教程(下)
如果项目很大,或者项目中有很多的源码目录,在通过CMake管理项目的时候如果只使用一个`CMakeLists.txt`,那么这个文件相对会比较复杂,有一种化繁为简的方式就是给每个源码目录都添加一个`CMakeLists.txt`文件(头文件目录不需要),这样每个文件都不会太复杂,而且更灵活,更容易维护。
214 0
|
9月前
|
存储 IDE Linux
CMake 保姆级教程(上)
CMake 是一个项目构建工具,并且是跨平台的。关于项目构建我们所熟知的还有Makefile(通过 make 命令进行项目的构建),大多是IDE软件都集成了make,比如:VS 的 nmake、linux 下的 GNU make、Qt 的 qmake等,如果自己动手写 makefile,会发现,makefile 通常依赖于当前的编译平台,而且编写 makefile 的工作量比较大,解决依赖关系时也容易出错。 而 CMake 恰好能解决上述问题, 其允许开发者指定整个工程的编译流程,在根据编译平台,`自动生成本地化的Makefile和工程文件`,最后用户只需`make`编译即可.
271 0
|
10月前
|
算法 编译器 开发工具
强烈推荐的两个神级教学项目: nand2tetris 与 MIT6.828
强烈推荐的两个神级教学项目: nand2tetris 与 MIT6.828
70 0
|
安全 Linux 编译器
linux下c语言内存检测神器asan,专治各种疑难杂症
linux下c语言内存检测神器asan,专治各种疑难杂症
linux下c语言内存检测神器asan,专治各种疑难杂症
|
Android开发 芯片
【致敬未来的攻城狮计划】--RA2E1 开发板测评(1)keil环境配置
【致敬未来的攻城狮计划】--RA2E1 开发板测评(1)keil环境配置
155 0
|
传感器 IDE 中间件
(2)学习ArduPilot — 绪论
(2)学习ArduPilot — 绪论
145 0
|
机器学习/深度学习 人工智能 算法
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小工具!
|
开发工具 Android开发 开发者
鸿蒙、OpenHarmony、HarmonyOS傻傻的分不清楚。。。看这篇就够了
很多人对鸿蒙、OpenHarmony、HarmonyOS这些术语傻傻的分不清楚,那么本文就做一些解答。 6月4日,华为发布了《关于规范HarmonyOS沟通口径的通知》(以下简称《通知》),原文在网上都能搜到,这里就不贴了。本人对该通知做一些解读如下。
896 0
|
缓存
micropython 自制数码相机
利用tpyboard自制数码相机
2782 0