学习
实践
活动
工具
TVP
写文章

linux 触摸屏驱动编写

早在诺基亚手机还比较流行的时候,那时候触摸屏用的还不多。但是随着触摸屏手机、即智能手机的流行,触摸屏基本成了手机的标配。所以,今天可以看看触摸屏驱动在linux上是如何进行的。 查看是否有中断函数被注册 ret = request_irq(ts.irq_tc, stylus_irq, 0, "s3c2410_ts_pen", ts.input); 8、最后 很明显,触摸屏驱动本质上还是由

66752

基于瑞芯微RV1109 Linux触摸屏GT911驱动调试心得

如上图所示,这个5d就表示当前触摸屏的I2C地址,为什么是5d呢?你把触摸屏拔掉,再用这个命令查看是不是消失了就可以验证这个问题了。 2、GT911驱动移植 2.1、配置Linux内核支持gt9xx GT911在Linux内核中已经支持了,位于以下路径,如果没有的话就需要跟触摸屏厂商要驱动代码,如果要不到那么就拿着Datasheet自己干吧 2.2.3、配置max-x、max-y max-x 触摸X方向的分辨率,由于我的触摸屏是1024*600,项目上需要竖屏触摸,所以X方向的分辨率配置为600。 max-y 触摸Y方向的分辨率,由于我的触摸屏是1024*600,项目上需要竖屏触摸,所以X方向的分辨率配置为1024。 4.2、查看内核信息 使用管道过滤内核信息,找到关键字段: 我们能够看到触摸屏设备已经成功挂载上了,并且也已经生成了对应的事件节点。

2.6K70
  • 广告
    关闭

    年末·限时回馈

    热卖云产品年终特惠,2核2G轻量应用服务器6.58元/月起,更多上云必备产品助力您轻松上云

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    基于瑞芯微RV1109 Linux触摸屏GT911驱动调试心得(二)-设备树刷厂商给的触摸屏固件

    之前调试触摸屏的文章如下: 基于瑞芯微RV1109 Linux触摸屏GT911驱动调试心得 由于之前调触摸屏一直都对不上点,然后厂商又给了我新的驱动代码。 但是还是没能解决问题,所以我初步怀疑是固件问题,因为驱动基本上只要写对了是不会有问题的,因此,我让厂商帮我调了一个适配触摸屏的固件,最后这个问题就解决了。 然而现在驱动支持设备树了以后,Linux内核设备树里配置触摸屏参数的写法是这样的: //TP:GT911 &i2c5 { status = "okay"; goodix_ts@5d { compatible 00 00 00 00 34 01 ]; }; }; 注意,这里需要注意,如果要将数组烧到TP板子里的话,需要开启: gtp_send_cfg = <1>; 这样这些数组在上电时就会被写入到触摸屏里去 { memcpy(cfg, prop->value, *cfg_len); return 0; } } 最后通过判断设备树里gtp_send_cfg是否为1,如果为1,则将这个数组发送到触摸屏芯片中

    98030

    linux gdb调试

    以前在IDE调试的话,就很容易设置断点,查看参数值,到了 linux 下就变得比较麻烦了。 目前觉得比较重要的就是: 1.设置断点: gdb命令 break,也可以用 b 。 取消的话 undisplay 编号 4.列出信息 gdb命令 info,info break, info display 5.调试 单步调试 n,进入函数的单步调试 s,跳到下一个断点 c 6.读取文件

    60632

    双机调试Linux内核

    利用KGDB双机调试内核 1.1. 环境 1.2. 配置内核编译环境 2. 参考 双机调试Linux内核环境配置。 利用KGDB双机调试内核 环境 centos 7 VMware 全程使用root用户 配置内核编译环境 这种方式调试内核需要两台机器,一台用来运行Linux内核,另一台对内核进行调试。 可以开两个Linux系统的虚拟机;也可以在物理机系统是linux上面装虚拟机,然后虚拟机运行一个linux;再就是买开发板来调试内核。以下是在windows上开两个虚拟机的流程描述。 在https://www.kernel.org/ 下载想调试版本的内核代码(可以下载tarball格式)。 (我测试ttyS0不行,改成ttyS1可以了) 参考 http://blog.nsfocus.net/gdb-kgdb-debug-application/ 在VMware中用Kgdb调试linux内核

    8530

    Linux加载vmlinux调试

    This GDB was configured as "--host=x86_64-linux-gnu --target=arm-linux-android". (gdb) rockchip rk3399调试vmlinux . /prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-addr2line -f -e /prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-addr2line -f -e kernel/drivers/iommu/rockchip-iommu.c:1005 (discriminator 2) weiqifa@dev:~/rk3399_7in1$ RK平台tombstone调试

    84831

    Linux调试工具

    ld-linux 现在加载ELF可执行文件的工作,已经落到ld-linux.so.2头上了。你可能会问,这与有调试程序有关系吗?有的。 Linux 平台上的C语言调试工具! 从事Linux应用开发一年多了,感觉很不规范很山寨,准备系统地学习一下下linux开发,首先从调试工具的学习开始,以下是从网上看到的一篇linux调试工具介绍,准备好好学习这些工具的使用。 更多Managed Spy信息 Linux程序调试工具 XBuildStudio 您还在使用gdb缓慢地调试UNIX/LINUX的程序吗? 更多ltrace信息 最近更新: ltrace 0.7.1 发布,程序调试工具 发布于 1年前 Linux 调试器 和 跟踪器 KGTP KGTP 是一个 实时 轻量级 Linux

    3.8K43

    VScode调试Linux详解

    Linux上通常使用gdb命令行调试,但该方式调试不太直观,且命令行长时间不用,容易忘记,不如GUI直观和容易上手,下面介绍基于GUI的方式调试Linux。 一.Linux调试GUI方案简介 1)    Visual studio 远程调试Linux      在VS2015版本以后Visual studio就支持Linux的编译和调试。 使用熟悉的windows界面开发和调试Linux,极大的提高了开发效率,可以广泛应用的Linux服务器开发和嵌入式Linux开发。  2)    基于eclipse 本地调试Linux          因为eclipse是跨平台的,安装一个带GUI的linux系统,就可以像VS一样开发和调试Linux 3)  基于QtCreator 本地调试Linux         因为QtCreator是跨平台的,安装一个带GUI的linux系统,就可以像VS一样开发和调试 4)    基于eclipse 远程调试Linux

    48130

    触摸屏校正

    有些设备的触摸屏不准,需要校正后才能正常使用。校正实际上就是配置设备在 Xorg 中的属性,具体属性名与驱动相关,后文描述。 下面开始介绍校正方法: 准备 安装需要用到的工具: xinput-calibrator : 触摸屏校正工具 xinput : 屏幕映射工具,多屏时使用 ---- 校正 执行 xinput_calibrator Option "CalibrationMatrix" "-43.0 0.0 47.9 0.0 0.1 0.0 0.0 0.0 1.0" EndSection 设备映射 若存在多块屏幕,这时就需要指定触摸屏对应的设备

    1.1K30

    触摸屏工作原理

    这个电流分从触摸屏的四个电极中流出,并且流经这四个电极的电流与手指到四角的距离成正比,控制器通过对这四个电流比例的精确计算,得出触摸点的位置。 当手触摸屏体的时候,由于手指与大地之间就相当于接了一个Cf的并联电容,如下图(3)所示。 ? 等效为如图(4)所示: ? 分区法: 将整个触摸屏物理分割成多个区域,由于每个区域确定一个操作,这样就可以避免鬼点的操作。 总结自电容的优点是简单、计算量小,满足X+Y的计算。 检测互电容大小时,横向的电极依次发出激励信号,纵向的所有电极同时接收信号,这样可以得到所有横向和纵向电极交汇点的电容值大小,即整个触摸屏的二维平面的电容大小。 根据触摸屏二维电容变化量数据(触摸后电容值减小),可以计算出每一个触摸点的坐标。因此,屏上即使有多个触摸点,也能计算出每个触摸点的真实坐标。 ?

    1.2K30

    Linux如何调试内存泄漏

    ccmalloc memwatch debug_new 这里程序喵向大家推荐新的一个排查内存泄漏的工具:AddressSanitizer(ASan),该工具为gcc自带,4.8以上版本都可以使用,支持Linux byte(s) in 1 object(s) allocated from: #0 0x7f95b231eb40 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu main /home/wangzhiqiang/test/test_leak.cc:8 #3 0x7f95b1e61b96 in __libc_start_main (/lib/x86_64-linux-gnu byte(s) in 1 object(s) allocated from: #0 0x7f95b231eb40 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu main /home/wangzhiqiang/test/test_leak.cc:9 #3 0x7f95b1e61b96 in __libc_start_main (/lib/x86_64-linux-gnu

    70120

    Linux触摸屏驱动分析(6410) -- s3c-ts

    /errno.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/slab.h> #include <linux /input.h> #include <linux/init.h> #include <linux/serio.h> #include <linux/delay.h> #include <linux/platform_device.h } } static struct timer_list touch_timer = TIMER_INITIALIZER(touch_timer_fire, 0, 0); /* 当触摸屏按下后 * 比如: 内存ioremap, 中断资源获取, 配置ADCCCON等寄存器 * * 当中断注册好后,当我们按下触摸屏后,就会触发tc中断 */ static int __init s3c_ts_probe BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); ts->dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); /*设置触摸屏

    9520

    Linux gdb+valgrind调试

    使用 gdb 调试 Core 文件 产生了 core 文件,我们该如何使用该 Core 文件进行调试呢? Linux 中可以使用 GDB 来调试 core 文件,步骤如下: 首先,使用 gcc 编译源文件,加上 -g 以增加调试信息; 按照上面打开 core dump 以使程序异常终止时能生成 core 文件

    38330

    linux内核断点调试入门

    上篇文章 编译一个默认输出hello world的linux内核 中,我们已经知道如何编译一个可以自运行的linux内核,这篇文章我们来看下如何对内核进行断点调试。 1. 内核编译完毕后,执行下面命令,设置方便内核调试的一些gdb脚本(如果之前执行过该命令,则不用重复执行)。 至此,准备工作都已就绪,执行下面的命令,在qemu中运行内核,并使其处于等待调试状态。 [ 2.452502] tsc: Refined TSC clocksource calibration: 2904.013 MHz 以上就是linux内核调试的大致流程,有问题欢迎讨论。 dev-tools/gdb-kernel-debugging.html http://nickdesaulniers.github.io/blog/2018/10/24/booting-a-custom-linux-kernel-in-qemu-and-debugging-it-with-gdb

    1.3K10

    linux调试器——gdb

    \n"); return 0; } 这里假设函数是计算1到100的和,结果我们只有1到99的和,所以调试寻找哪里错了。 2.退出交互模式 输入quit,即可退出交互模式 3. linux默认release版本不可调试 gdb mytest//上面定义的就为myetst.c文件 输入 gdb mytest ,发现会报错,不是Debug不可以进入调试 1. rm -f mytest_d 在原本的基础上,加入了 -g,使程序以debug版本发布 同时为了与之前产生的release版本的mytest 进行区分,使用myetst_d来代替 2.调试 result =mysum(100); (gdb) s mysum (top=100) at mytest.c:4 4 int i=0; 再次使用b设置断点在函数第十五行处,再次输入r 运行,由于处于调试过程中

    11130

    12.触摸屏驱动

    触摸屏子系统是通过input子系统来实现,对应设备节点 /dev/input/eventn,熟悉套路后重点放在硬件程序的编写 一、内核自带触摸屏驱动S3c2410_ts的简单分析 S3c2410_ts.c (drivers\input\touchscreen) 内核自带三星的触摸屏驱动 (1)入口函数: /*注册一个平台driver*/ static int __init s3c2410ts_init 触摸屏使用流程 a.按下,产生中断 b.在中断处理程序中,启动ADC转换坐标。 f.松开 具体触摸屏的测量坐标的原理可以参考https://blog.csdn.net/qq_16933601/article/details/102749277 分配input_dev结构体 static 设置 */ /* 2.1 能产生哪类事件 */ set_bit(EV_KEY, s3c_ts_dev->evbit); /*触摸屏绝对位移事件*/ set_bit(EV_ABS, s3c_ts_dev

    29820

    Linux驱动开发-编写FT5X06触摸屏驱动

    前言 这篇文章介绍在Linux下如何编写FT5X06系列芯片驱动,完成触摸屏的驱动开发, FT5X06是一个系列,当前使用的具体型号是FT5206,它是一个电容屏的触摸芯片,内置了8位的单片机(8051 所说起触摸屏大家都不会陌生,现在手机、手表、家电、很多地方都支持触摸了。最开始的触摸屏都是电阻屏,在诺基亚时代的时候,使用的触摸屏都是电阻屏,后来Android兴起的时候,手机都向电容屏发展了。 编写触摸屏驱动 Linux下编写标准的触摸屏驱动需要使用到输入子系统,当前文章的重点是读取触摸屏的坐标,所以示例代码里不会加输入子系统的代码,只是在驱动层完成触摸屏笔中断响应,触摸屏的坐标点获取并打印。 这是开发板LCD屏幕的硬件原理图: 3.1 设备端代码(FT5206) #include <linux/kernel.h> #include <linux/module.h> #include <linux /kernel.h> #include <linux/module.h> #include <linux/miscdevice.h> #include <linux/fs.h> #include <asm

    16920

    linux GDB调试c++程序

    或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。 从上面看来,GDB和一般的调试工具没有什么两样,基本上也是完成这些功能,不过在细节上,你会发现GDB这个调试工具的强大,大家可能比较习惯了图形化的调试工具,但有时候,命令行的调试工具却有着图形化工具所不能完成的功能 ,否则无法调试执行文件 ? 3.3 调试  运行 输入run 或者r  ?          3.3 单步调试,step 或者 s进入函数内部 ?                 3.7 退出调试 输入q ?

    46020

    利用vscode远程调试Linux内核

    前言 上一遍文章介绍了利用QEMU+GDB调试Linux内核。但是,有时候直接利用GDB调试查看代码还不是很方便,所以,在这么重要的场合,怎么能少的了vscode这个神器呢。 本篇文章介绍如何使用vscode远程调试内核。 本文环境: windows10 vscode ubuntu 20.04 我个人使用的是腾讯云服务器,所以就省去了安装虚拟机的过程。 mkdir -p ~/.vscode-server/bin 将下载的压缩包vscode-server-linux-x64.tar.gz放在~/.vscode-server/bin目录下。 这要是在Linux里,直接使用chmod,就可以修改,修改为644即可,但是windows,就稍微麻烦点。 在vscode中调试内核,和正常的在windows调试代码是一样的,侧边栏可以看到变量,监视变量,调用堆栈等,非常方便。 大功告成,以后就可以在可视化界面调试内核了!

    86320

    扫码关注腾讯云开发者

    领取腾讯云代金券