s3c2440触摸屏驱动修改

本文介绍使能触摸屏需对原有驱动做修改,添加结构体并注册设备结构体到平台设备总线,还说明了进入menuconfig添加选项。编译移植后因缺少tslib库校准坐标会显示乱码,详细介绍了下载、编译、安装tslib库及打包移植到开发板,最后说明配置环境变量和运行校准程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了使能我们的触摸屏,我们必须对原有的触摸屏驱动做一些小的修改,添加相应的支持。

在这里插入图片描述
先添加我们的结构体,对一些参数进行设置
在这里插入图片描述
添加我们的ts的结构体,
在这里插入图片描述
我们可以看到s3c24xx_ts_set_platdata()就是将添加的触摸屏的信息传给s3c_device_ts.dev.platform的,

在这里插入图片描述
我们还要注册adc和ts的设备结构体到paltform设备总线上去,这里上面的写法是错误的,&s3c_device_ts应该在&s3c_device_adc的下面,不然编译的时候不会抛错,但是移植运行内核的时候会抛错误:Unable to handle kernel NULL pointer dereference at virtual address 00000021
我估计是应为ts设备依赖着adc设备,所以得先添加了adc才不会抛错。

进入menuconfig添加选项
Device Drivers —>
Input device support —>
选上<*> Event interface
<*> Event debugging

进入
[*] Touchscreens —>
<*> Samsung S3C2410/generic touchscreen input driver //选择上这个

然后编译移植,cat /dev/input/event0,此文件下会记录触摸屏的信息,然后用手按压触摸屏,会有很多乱码显示出来,这是因为缺少tslib库来校准我们的坐标信息,Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。

下载tslib1.4版本源码,并解压在这里插入图片描述
源码最好不要从windows下直接拿,从git或者直接网站下载,不然可能会编译错误,
git源码网站:https://github.com/zhuerwang/Tslib.git

进入tslib运行 ./autogen.sh生成configure,再运行
./configure --host=arm-linux --prefix=/home/xiaobaicai/lib/tslib CC=/opt/xtools/arm920t/bin/arm-linux-gcc生成Makefile文件,
最后make && makeinstall,过程中可能需要一些工具,automake、autoconf、libtool,缺少哪个就apt-get install就行了
在安装好的路径下,也就是\home\xiaobaicai\lib\tslib,会产生五个文件,不要share,其余的四个文件打包移植到开发板上\lib\tslib下

然后就是配置环境变量
在这里插入图片描述

在 lib\tslib\etc\ts.conf中添加
在这里插入图片描述
然后在lib/tslib/bin/运行./ts_calibrate
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值