龙芯1B核心板添加显示屏和触摸板操作,并且在利用QT编译的软件中实现触摸板功能

龙芯1B核心板添加显示屏和触摸板操作,并且在利用QT编译的软件中实现触摸板功能

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/baidu_31788709/article/details/89716569

实现触摸板的功能,需要借助tslib工具,大致过程为:
1、利用mipsel编译tslib工具。
2、然后在QT4的编译中添加tslib的相关配置。
3、将生成的tslib和QT4的库文件移植到龙芯1B核心板中,并修改核心板的环境变量
4、对触摸板进行矫正。

Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。

TSLIB下载传送门:https://github.com/kergoth/tslib
我是用的系统为ubuntu18.04,所使用的交叉编译工具为mipsel-linux,使用的qt开源库为4.8.6版本。

一、编译tslib库

核心语句为:

#  ./configure  --prefix=/opt/tslib-mipsel/ 
 --host=mipsel-linux
  ac_cv_func_malloc_0_nonnull=yes

    
    
  • 1
  • 2
  • 3

执行make,make install成功后,会在指定目录下生成bin、include、lib、etc四个文件夹。

二、交叉编译QT4

# vi mkspecs/qws/linux-mips-g++/qmake.conf

    
    
  • 1

作如下修改
mips-linux-gcc mipsel-linux-gcc
misp-linux-g++ mipsel-linux-g++
mips-linux-ar mipsel-linux-ar
mips-linux-objcopy mipsel-linux-objcopy
mips-linux-strip mipsel-linux-strip
而后修改linux.conf文件

# vi mkspecs/common/linux.conf

    
    
  • 1

添加如下内容

QMAKE_LIBS_THREAD = -lpthread -lts

    
    
  • 1

然后就是最为重要的配置文件

# ./configure -prefix /opt/qt4.8.6-mipsel 
-opensource  //使用QT的开源版本
-release   //不进行调试
-shared   //使用共享库
-fast   //利用共享库和子目录进行快速配置
-qt-sql-sqlite   //使用qt的该数据库
-no-qt3support -no-phonon -no-phonon-backend -no-webkit 
-no-javascript-jit -no-mmx -no-3dnow -no-sse -no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 
-no-sse4.2 -no-avx -no-neon -qt-zlib -no-libtiff -no-libmng -qt-libjpeg -qt-libpng 
-no-openssl -nomake examples -nomake demos -nomake tools -nomake docs 
-optimized-qmake -no-nis -no-cups -pch -no-dbus -no-gtkstyle -no-nas-sound -no-opengl 
-no-openvg -no-sm -no-xshape -no-xvideo -no-xsync -no-xinerama -no-xcursor -no-xfixes 
-no-xrandr -no-xrender -no-mitshm -no-xinput -no-xkb -no-glib -no-separate-debug-info 
-no-qvfb -qt-gfx-linuxfb -no-gfx-vnc -no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb 
-no-gfx-transformed -no-gfx-multiscreen -depths 8,16,24,32 -qt-freetype -little-endian 
//以上内容大部分为不适用某功能,以裁剪QT的功能,减小大小,加快编译
-xplatform qws/linux-mips-g++   //交叉编译工具的目录
-embedded mips   //mips架构的嵌入式
-qt-mouse-tslib  //使用触摸屏的功能
-I/opt/tslib-mipsel/include -L/opt/tslib-mipsel/lib  指定触摸屏头文件和库文件的目录

    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

上述具体的配置内容,不过多解释,可以通过help命令自行查看。

#./configure -help

    
    
  • 1

三、移植tslib和QT4的库文件

我利用nfs进行移植,不多赘述,各显神通。
在/opt目录下创建两个文件夹,一个存放tslib的库文件,一个存放QT4的库文件。

# mkdir opt
# cd opt
# mkdir qt4lib tslib
# cp /mnt/tslib-mipsel/lib /mnt/tslib-mipsel/etc /opt/tslib/ -rd
# cp /mnt/tslib-mipsel/bin/ts_calibrate /mnt/tslib-mipsel/bin/ts_test /bin/
# cp /mnt/qt4.8.6-mipsel/lib /opt/qt4lib/ -rd
# cp /mnt/qt4.8.6-mipsel/plugins /opt/qt4lib/ -rd

    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

-rd的d表示拷贝时保留文件的链接。
以下是重点内容,修改配置文件,修改龙芯1B的环境变量:

# vi /etc/profile

    
    
  • 1

修改或者添加以下内容

export QTDIR=/opt/qt4lib  //注入QT4的目录文件,定义为QTDIR
export QT_PLUGIN_PATH=$QTDIR/plugins/  //注入QT4的plugins文件夹的内容
export T_ROOT=/opt/tslib/    //注入tslib的目录文件,定义为T_ROOT
export PATH=$QTDIR/bin:$PATH  
export TSLIB_CONSOLEDEVICE=none  //控制台设备文件名
export TSLIB_FBDEVICE=/dev/fb0  //设备名
export TSLIB_TSDEVICE=/dev/input/event0  //触摸屏设备的驱动目录
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts  //插件目录
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf   //配置文件的目录
export TSLIB_CALIBFILE=/etc/pointercal   //校准的数据文件,由ts_calibrate校准程序生成,QT文件也将使用此文件
export TSLIB_TSEVENTTYPE=INPUT  //类型为输入
export QWS_MOUSE_PROTO=tslib:/dev/input/event0  //这一条很重要,在QT的可视化界面中的指针驱动目录,与上面的TSDEVICE相同。如果是使用鼠标操作,需要将此条注释掉。
export QT_QWS_FONTDIR=/opt/qt4lib/lib/fonts   //QT界面的文字库
export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH   //库文件目录

    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

然后修改ts.conf文件

# vi /opt/tslib/etc/ts.conf

    
    
  • 1

将module_raw input前面的“#”去掉。
然后重启开发板。

四、矫正触摸板

#ts_calibrate

    
    
  • 1

依次点击五个点,则会在核心板的根目录下的etc文件夹中,生成pointercal文件。可以利用

#ts_test

    
    
  • 1

进行测试,其中的draw功能就是可以画线,drag就是可以实时获得光标的坐标。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值