吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

tslib庫編譯與移植

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2022-11-26 09:14 ? 次閱讀

1.tslib庫簡介

??tslib 是電阻式觸摸屏用于校準的一個軟件庫,是一個開源的程序,能夠為觸摸屏驅動獲得的采樣提供諸如濾波、去抖、校準等功能,通常作為觸摸屏驅動的適配層,為上層的應用提供了一個統一的接口

2 相關工具安裝

??安裝必要工具libtool、automake、autoconf

$ sudo apt-get install libtool
$ sudo apt-get install automake
$ sudo apt-get install autoconf

3 tslib安裝步驟

系統環境

開發環境: Ubuntu18.04
目標開發板: Tiny4412
交叉編譯器: arm-linux-gcc
Linux內核: Linux3.5

??1.下載tslib庫源碼包,將源碼解壓到用戶目錄下。

tslib源碼下載地址:https://github.com/libts/tslib/releases

[wbyq@wbyq soft_work]$ tar xvf /mnt/hgfs/ubuntu/soft_pack/tslib-master.tar.gz  #解壓
[wbyq@wbyq soft_work]$cd tslib-master/tslib-master/    #進入到源碼目錄下
[wbyq@wbyq tslib-master]$ ls
pYYBAGOBaI6AG2iBAACfFzUyPlM220.png#pic_center

??2.configure配置,生成Makefile文件。

[wbyq@wbyq tslib-master]$ ./autogen.sh
[wbyq@wbyq tslib-master]$ ./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache --prefix=$PWD/_install

- -host=arm-linux - - -指定編譯器
- -prefix=$PWD/_install - - -指定安裝目錄

??3.編譯安裝。

[wbyq@wbyq tslib-master]$ make && make install  

??編譯安裝好后會生成 _install 文件夾。

poYBAGOBaI-AZgBjAAFoTBCxuFI230.png#pic_center

??生成的文件信息

[wbyq@wbyq tslib-master]$ cd _install/
[wbyq@wbyq _install]$ tree
.
├── bin
│   ├── ts_calibrate
│   ├── ts_harvest
│   ├── ts_print
│   ├── ts_print_raw
│   └── ts_test
├── etc
│   └── ts.conf
├── include
│   └── tslib.h
└── lib
    ├── libts-1.0.so.0 -> libts-1.0.so.0.0.0
    ├── libts-1.0.so.0.0.0
    ├── libts.la
    ├── libts.so -> libts-1.0.so.0.0.0
    ├── pkgconfig
    │   ├── tslib-1.0.pc
    │   └── tslib.pc
    └── ts
        ├── arctic2.la
        ├── arctic2.so
        ├── collie.la
        ├── collie.so
        ├── corgi.la
        ├── corgi.so
        ├── dejitter.la
        ├── dejitter.so
        ├── dmc.la
        ├── dmc.so
        ├── galax.la
        ├── galax.so
        ├── h3600.la
        ├── h3600.so
        ├── input.la
        ├── input.so
        ├── linear_h2200.la
        ├── linear_h2200.so
        ├── linear.la
        ├── linear.so
        ├── mk712.la
        ├── mk712.so
        ├── pthres.la
        ├── pthres.so
        ├── tatung.la
        ├── tatung.so
        ├── touchkit.la
        ├── touchkit.so
        ├── ucb1x00.la
        ├── ucb1x00.so
        ├── variance.la
        └── variance.so

6 directories, 45 files

?4.拷貝bin目錄下的文件到開發板/bin目錄下。

[wbyq@wbyq _install]$ cp bin/* /home/wbyq/soft_work/rootfs/bin/

?5.拷貝lib目錄下的.so文件到開發板的/lib目錄下。

[wbyq@wbyq _install]$ cp lib/*.so* /home/wbyq/soft_work/rootfs/lib/ -rfdv
[wbyq@wbyq _install]$ cp lib/ts/ /home/wbyq/soft_work/rootfs/lib/ -rfdv

??6.拷貝etc/ts.conf文件到開發板的/etc目錄下。

[wbyq@wbyq _install]$ cp etc/ts.conf /home/wbyq/soft_work/rootfs/etc/ 

? 7.修改配置文件。
??如果希望使用linux輸入層事件接口,需要取消module_raw input 注釋。

[wbyq@wbyq _install]$ vim /home/wbyq/soft_work/rootfs/etc/ts.conf
pYYBAGOBaI-ABCi9AAHWuXgb7IM175.png#pic_center

??8.配置開發板的的啟動文件 profile。

[wbyq@wbyq _install]$ vim /home/wbyq/soft_work/rootfs/etc/profile 
poYBAGOBaJCAZ7O-AAJsvZrzwU8084.png#pic_center
export set TSLIB_TSDEVICE=/dev/input/event2 #設置觸摸屏設備節點
export set TSLIB_CONFFILE=/etc/ts.conf #配置文件環境變量
export set TSLIB_PLUGINDIR=/lib/ts #指定tslib插件目錄
export set TSLIB_CALIBFILE=/etc/pointercal  #指定校準之后,信息保存的位置(會自動生成)
export set TSLIB_CONSOLEDEVICE=none  #指定控制臺設備文件名字,默認沒有。填none
export set TSLIB_FBDEVICE=/dev/fb0 #屏幕設備節點

注意: 設置完環境變量之后,需要重啟開發板生效,或者使用 source 命令立即生效。

4 開發板運行效果

??安裝觸摸屏驅動,檢查觸摸屏設備節點是否為上面設置的event2,運行ts_test。

[root@wbyq code]# insmod ft5x06_dev.ko 
[  759.390000] IIC子系統:設備層注冊成功
[root@wbyq code]# insmod ft5x06_drv.ko 
[  762.175000] IIC子系統:驅動層注冊成功
[  762.175000] 資源匹配成功
[  762.175000] input: Unspecified device as /devices/virtual/input/input3
[root@wbyq code]# ts_test 
874.277420:    388    354      1
874.322712:    384    352      1
874.337917:    369    348      1
874.353162:    355    346      1
874.368397:    332    343      1
874.383524:    304    339      1
874.398664:    277    337      1
874.413889:    258    336      1
874.429156:    243    335      1
874.444247:    234    334      1
874.474649:    230    333      1
874.489914:    236    330      1
874.504974:    248    328      1
pYYBAGOBaJCASifKAAHqG0EDMJE024.png#pic_centerpYYBAGOBaJGAWONQAAKXZO7A0lc832.png#pic_center

??tslib中提供的測試命令,是通過ts.config文件讀取相應的觸摸屏配置信息和LCD屏配置信息。

5 調用tslib庫獲取觸摸屏坐標

#include 
#include 
#include 
#include 
#include 
#include 
#include 

#include "tslib.h"
int main(int argc,char *argv[])
{
	struct tsdev *ts;
	char *tsdevice=NULL;
	/*打開觸摸屏設備節點*/
	if( (tsdevice = getenv("TSLIB_TSDEVICE")) != NULL ) {
		ts = ts_open(tsdevice,0);
	} 
	else {
		ts = ts_open("/dev/input/event2",0);
	}
	if(ts==NULL)
	{
		perror("ts_open");
		exit(1);
	}
	if (ts_config(ts)) {
		perror("ts_config");
		exit(1);
	}
	struct ts_sample samp;
	int ret;
	printf("   時間    t X坐標   t Y坐標t壓力值 n");
	while (1) {
		ret = ts_read(ts, &samp, 1);
		if (ret < 0) {
			perror("ts_read");
			exit(1);
		}
		if (ret != 1)
			continue;
		printf("[%ld.%06ld] %6d %6d %6dn", samp.tv.tv_sec, samp.tv.tv_usec,
											samp.x, samp.y, samp.pressure);
	}
	return 0;	
}

程序編譯:

cflags=-I/home/wbyq/soft_work/tslib-master/tslib-master/_install/include  #指定頭文件
cflags+=-L/home/wbyq/soft_work/tslib-master/tslib-master/_install/lib  #指定庫文件路徑
cflags+=-lts  #指定庫
app:
	arm-linux-gcc app.c -o app $(cflags)

運行效果:

[root@wbyq code]# ./app 
   時間       X坐標   Y坐標   壓力值 
[4591.061816]    337    369      1
[4591.124190]    337    369      0
[4592.426659]    512    399      1
[4592.502302]    507    400      1
[4592.517474]    503    401      1
[4592.532512]    500    403      1
[4592.547776]    494    405      1
[4592.562922]    489    408      1
[4592.578111]    483    410      1
[4592.593260]    479    412      1
[4592.624739]    475    415      1
[4592.655903]    472    417      0
[4592.972564]    442    402      1
[4593.063510]    445    402      1
[4593.078637]    449    402      1
[4593.093764]    452    403      1
[4593.109025]    459    404      1
[4593.124148]    465    404      1
pYYBAGOBaJKAc582AAD3OU0pxnc494.png#pic_center

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5092

    文章

    19177

    瀏覽量

    307647
  • 觸摸屏
    +關注

    關注

    42

    文章

    2316

    瀏覽量

    116764
  • 移植
    +關注

    關注

    1

    文章

    383

    瀏覽量

    28193
  • 編譯器
    +關注

    關注

    1

    文章

    1642

    瀏覽量

    49283
  • 編譯
    +關注

    關注

    0

    文章

    661

    瀏覽量

    33040
收藏 人收藏

    評論

    相關推薦

    Linux系統中tslib的基本原理與實現方法

    今天主要和大家聊一聊,如何使用tslib來完成對應的功能。
    發表于 11-14 09:57 ?2800次閱讀

    飛凌嵌入式ElfBoard ELF 1板卡-交叉編譯移植tslib

    tslib是專門為觸摸屏設備所開發的Linux應用層函數。1、下載源碼。https://github.com/libts/tslib/releases2、拷貝源碼到開發環境/home/elf
    發表于 07-24 10:47

    【OK210試用體驗】之qt移植tslib編譯和配置

    解決了,其他移植前首先需要tslib,該是觸摸屏校準時需要的文件,如對觸摸屏的數據進行過濾、去抖動等,qt的
    發表于 09-28 12:46

    tslib1.4的編譯與安裝

    tslib1.4 是觸摸屏用于校準的一個軟件,是一個開源的程序,能夠為觸摸屏驅動獲得的采樣提供諸如濾波、去抖、校準等功能,通常作為觸摸屏驅動的適配層,為上層的應用提供了一個統一的接口。因此這里先
    發表于 10-13 10:22

    移植tslib后,ts_calibrate測試屏幕黑屏

    移植tslib后,執行ts_calibrate或ts_test,屏幕立馬黑屏,是什么原因呢?
    發表于 10-14 10:14

    移植TSLIB后測試TSLIB帶的程序,觸摸測試程序時界面下面的圖標也會被點開

    我在OK6410上移植tslib后,配置好環境變量等,運行 tslib/bin/下面的幾個測試程序,如ts_test ts_print,以及觸摸屏校準,這時會彈出個黑色界面,上面有十
    發表于 05-18 17:30

    【創龍AM4379 Cortex-A9試用體驗】之移植QT5.4.1與tslib1.4到TL-4379開發板

    移植。1.交叉編譯tslib1.4當前,對觸摸屏信號的獲取、校正、濾波處理,均采用開源的tslib,我們采用tslib1.4.首先到網上下
    發表于 06-26 15:56

    【Rico Board試用體驗】之編譯觸摸屏驅動Tslib

    PC上的不太一樣,需要先對Tslib進行移植,其中也要保證交叉編譯器一致,這里我們選用官方提供的交叉編譯器即可。具體搭建環境參考前面帖子,下面說下具體
    發表于 12-28 09:04

    移植tslib出現selected device is not a touchscreen I understand的解決方法

    本帖最后由 weidongshan 于 2018-1-23 16:10 編輯 首發平臺:微信公眾號baiwenkeji很多人在做觸摸屏驅動實驗,移植tslib時,可能會出現錯誤提示
    發表于 01-23 15:51

    LINUX tslib1.4 移植全過程

    --enable-inputapi=no--prefix=/usr/local/arm-linux/tslib1.4注意,prefix選項更換為你的安裝路徑。 4.編譯 # make 5.安裝
    發表于 07-03 01:22

    迅為IMX6ULL開發板Linux下電容觸摸屏實驗-Tslib移植和使用

    54.5 Tslib移植和使用ft5426 觸摸驅動添加成功后,發現觸摸可能不太準確,這時可以使用一個第三方開源 tslib 來調試觸摸屏。下面來看一下
    發表于 12-07 10:18

    如何獲取tslib源碼?

    Tslib移植和使用獲取tslib源碼編譯tslib測試tslib使用Linux內核自帶的ft5
    發表于 12-28 07:45

    imx6ull buildroot構建根文件系統移植tslib1.21無法運行是為什么?

    本人使用IMX6ULL開發板,用buildroot構建了一個根文件系統,還未添加Qt,根文件系統可以燒寫到板子上正常運行,在移植tslib1.21把相應的交叉編譯后的文件拷貝到主板根目錄,設置了
    發表于 01-07 06:06

    RK1808移植tslib的過程是怎樣的?

    RK1808移植tslib的過程是怎樣的?
    發表于 02-16 06:37

    嵌入式數據Sqlite移植教程

    嵌入式數據Sqlite移植教程 sqlite-3.3.6編譯安裝與交叉編譯全過程詳細記錄
    發表于 03-11 09:57 ?3733次閱讀
    百家乐官网在线怎么玩| 百家乐官网赌法| kk娱乐城开户| 百家乐押注最多是多少| 百家乐投注玩多少钱| 百家乐官网园sun811 | 伟德百家乐下载| 百家乐官网大小牌路的含义| 百家乐官网赢钱战略| 注册娱乐城送彩金| 大发888线上娱乐城百家乐| 总统百家乐的玩法技巧和规则 | 赌场风云国语| 上游棋牌官网| 大发888在线服务| 百家乐技巧平注常赢法| 百家乐稳赢技法| 百家乐注册开户送现金| 百家乐3号眨眼技术| 百家乐论坛百科| 天猫百家乐官网娱乐城| 百家乐官网博彩的玩法技巧和规则 | 阳宅24山流年吉凶方位| 百威百家乐官网的玩法技巧和规则 | 百家乐任你博娱乐场| 怎么玩百家乐网上赌博| 新泰市| 百家乐视频造假| 破解百家乐游戏机| 最新百家乐电脑游戏机| 百家乐投注秘笈| 百家乐官网国际娱乐场| 百家乐官网赌博分析网| 百家乐官网玩揽法的论坛| 百家乐官网赌博机假在哪里| 澳门百家乐官网大小| 百家乐官网长龙如何判断| 百家乐官网真钱游戏下载| 百家乐官网三珠投注法| 视频百家乐官网攻略| 神人百家乐官网赌博|