zoukankan      html  css  js  c++  java
  • 调试lcd时候给linux单板移植tslib

    作者:良知犹存

    转载授权以及围观:欢迎添加微信公众号:Conscience_Remains

    总述

     tslib背景:

    在采用触摸屏的移动终端中,触摸屏性能的调试是个重要问题之一,因为电磁噪声的缘故,触摸屏容易存在点击不准确、有抖动等问题。

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

    下面介绍就是执行的大致过程

    1.克隆编译源代码

    2.将编译好的文件添加到linux根文件系统

    3.执行装载LCD相关驱动到单板,再给tslib设置好环境变量,执行tslib

    一、克隆源代码

    git clone https://github.com/kergoth/tslib

    编译执行的步骤

    $ ./autogen.sh$ echo “ac_cv_func_malloc_0_nonnull=yes” >arm-linux.cache$mkdir tmp  /*用来放编译的文件*/

    $ ./configure --host=arm-linux --cache-file= arm-linux.cache --prefix=$(pwd)/tmp$ make$ make install

    开始执行克隆代码中的编译脚本,对喽开始出现问题了

    ./autogen.sh

    ./autogen.sh:autoreconf: not found 

    下面开始解决bug

    二、解决bug

    bug1:./autogen.sh:autoreconf: not found  这个问题出现的原因是autoconf automake libtool 三个文件没有安装

    安装三个工具:

    sudo apt-get install autoconf automake libtool

    继续执行 编译脚本 又出现bug

    bug2:安装之后发现还是有问题,发现是libtool没有安装成功

    重新安装:

    sudo apt-get install libtool

    编译通过:

    建立一个文件夹 用来放编译产生的文件

    mkdir tmp

    新建一个arm-linux.cache文件

    echo “ac_cv_func_malloc_0_nonnull=yes”>arm-linux.cache

    将编译过程的文件制定编译到目录

    ./configure--host=arm-linux --cache-file= arm-linux.cache --prefix=$(pwd)/tmp

    bug3:make 出现问题

    如果编译过程中遇到 undefined reference to 'rpl_malloc',前面配置完成之后修改 config.h.in 文件,注释掉文件最后的 #undef malloc ,重新 make 即可。

    进行制定目录(tmp)的文件生成

    make install

    三、安装使用

    因为使用的NFS网络根文件系统

    所以就直接把文件拷贝到NFS目录下,然后使用网络文件系统启动linux单板

    再拷贝到开发板根目录

    cp * / -rfd

    再安装lcd相关的驱动

    为了找这个三个文件,需要进行Linux内核进行配置

    编译模块

    找到cfbcopyarea.ko、cfbfillrect.ko 、cfbimgblt.ko文件并复制到网络根文件系统目录

    加载lcd相关驱动,除了上面复制的三个内核编译.ko文件,还有自己写好的屏幕专属的lcd.ko驱动

     打开tslib安装路径下的/etc/ts.conf文件,修改其内容。 

    # module_raw input改为module_raw input

    添加环境变量,可以在profile添加 也可以直接在终端输入

    export TSLIB_TSDEVICE=/dev/event0

    export TSLIB_CALIBFILE=/etc/pointercal

    export TSLIB_CONFFILE=/etc/ts.conf

    export TSLIB_PLUGINDIR=/lib/ts

    export TSLIB_CONSOLEDEVICE=none

    export TSLIB_FBDEVICE=/dev/fb0

    进行测试

    ./ts_calibrate 校准屏幕
    ./ts_test ts测试
    ./ts_print 打印坐标

     这就是我分享tslib移植的全过程,如果大家有什么更好的思路,欢迎分享交流哈。

  • 相关阅读:
    ThinkPhp3.2.3缓存漏洞复现以及修复建议
    thinkphp3.2.3 缓存导致getshell终极解决办法
    phpstudy后门漏洞复现php5.2
    phpStudy后门漏洞利用复现
    SQL语句利用日志写shell拿权限
    针对phpstudy默认设置的利用
    黑暗世界的搜索引擎
    CVE-2019-0708—微软RDP远程桌面代码执行漏洞复现
    记一次渗透某XX站
    通过USB 2.0电缆手动设置内核模式调试
  • 原文地址:https://www.cnblogs.com/conscience-remain/p/13370084.html
Copyright © 2011-2022 走看看