Matrix_Designer 发表于 2010-11-10 22:24:18

s3c2410怎么实现触摸屏

各位好!
我用的是Skyeye1.3.1,模拟的是s3c2410。现在已经实现了LCD,但是触摸屏不晓得怎么实现。
请问我该从哪得到Skyeye上s3c2410的触摸屏驱动,定制内核时需要做哪些修改,不尽感谢!

tiddy8 发表于 2010-11-11 11:00:40

原帖由 Matrix_Designer 于 2010-11-10 22:24 发表 http://www.linuxfans.org/bbs/images/common/back.gif
各位好!
我用的是Skyeye1.3.1,模拟的是s3c2410。现在已经实现了LCD,但是触摸屏不晓得怎么实现。
请问我该从哪得到Skyeye上s3c2410的触摸屏驱动,定制内核时需要做哪些修改,不尽感谢! ...
你是怎么实现LCD的啊,我的出不来啊

tiddy8 发表于 2010-11-11 11:01:52

ERROR: s3c2410x_io_write_word(0x4d000000) = 0x00000000
ERROR: s3c2410x_io_write_word(0x4d000004) = 0x00000000
ERROR: s3c2410x_io_write_word(0x4d00000 = 0x00000000
ERROR: s3c2410x_io_write_word(0x4d00000c) = 0x00000000
ERROR: s3c2410x_io_write_word(0x4d000010) = 0x00000000
ERROR: s3c2410x_io_write_word(0x4d000014) = 0x00000000
ERROR: s3c2410x_io_write_word(0x4d00001 = 0x00000000
ERROR: s3c2410x_io_write_word(0x4d00001c) = 0x00000000
ERROR: s3c2410x_io_write_word(0x4d000060) = 0x00000000
ERROR: s3c2410x_io_write_word(0x4d000050) = 0x00000000
ERROR: s3c2410x_io_write_word(0x4d000000) = 0x00000001
ERROR: s3c2410x_io_write_word(0x4d000000) = 0x00000778
ERROR: s3c2410x_io_write_word(0x4d000004) = 0x044fc041
ERROR: s3c2410x_io_write_word(0x4d00000 = 0x0030ef1e
ERROR: s3c2410x_io_write_word(0x4d00000c) = 0x00000d03
ERROR: s3c2410x_io_write_word(0x4d000010) = 0x00000809
ERROR: s3c2410x_io_write_word(0x4d000014) = 0x60780000
ERROR: s3c2410x_io_write_word(0x4d00001 = 0x60792c00
ERROR: s3c2410x_io_write_word(0x4d00001c) = 0x000000f0
ERROR: s3c2410x_io_write_word(0x4d000060) = 0x00000000
ERROR: s3c2410x_io_write_word(0x4d000050) = 0x00000000
ERROR: s3c2410x_io_write_word(0x4d000000) = 0x00000779
ERROR: s3c2410x_io_write_word(0x4d000000) = 0x00000778
ERROR: s3c2410x_io_write_word(0x4d000004) = 0x044fc041
ERROR: s3c2410x_io_write_word(0x4d00000 = 0x0030ef1e
ERROR: s3c2410x_io_write_word(0x4d00000c) = 0x00000d03
ERROR: s3c2410x_io_write_word(0x4d000010) = 0x00000809
ERROR: s3c2410x_io_write_word(0x4d000014) = 0x60780000
ERROR: s3c2410x_io_write_word(0x4d00001 = 0x60792c00
ERROR: s3c2410x_io_write_word(0x4d00001c) = 0x000000f0
ERROR: s3c2410x_io_write_word(0x4d000000) = 0x00000779
ERROR: s3c2410x_io_write_word(0x1900030a) = 0x00000000

出现这些错误,有人说是需要安装gtk相关包
可是我已经安装了gtk+这个包啊

ksh 发表于 2010-11-11 11:29:37

安装完需要再重新编译一下SkyEye

Thanks
MK

ksh 发表于 2010-11-11 11:30:36

回复 1# Matrix_Designer 的帖子

触摸屏的驱动需要找一下,以前在skyeye的gro网站上是有下载的。

Thanks
MK

tiddy8 发表于 2010-11-11 12:00:04

原帖由 ksh 于 2010-11-11 11:29 发表 http://www.linuxfans.org/bbs/images/common/back.gif
安装完需要再重新编译一下SkyEye

Thanks
MK
老大,我重新编译了啊,但是还是同样的错误提示。
难道RHEL5.4不支持吗

ksh 发表于 2010-11-11 13:08:35

触摸屏驱动程序如附件。

Matrix_Designer 发表于 2010-11-12 09:40:10

回复 2# tiddy8 的帖子

LCD的移植见: http://blog.csdn.net/Matrix_Designer/archive/2010/10/18/5949298.aspx
你gtk+是安装Skyeye前就有的还是后来装的,如果是后来装要重装Skyeye

Matrix_Designer 发表于 2010-11-12 09:48:18

回复 7# ksh 的帖子

谢谢您提供的驱动。我将ts驱动文件ep7312_sys.h、skyeye_ts_drv.h、skyeye_ts_drv.c添加到内核,LCD由于我用的是linux自带的s3c2410 LCD驱动,就没用了。编译时有问题,修改文件skyeye_ts_drv.c,在#define DISABLE_PEN_IRQ   { INTSR &= ~EINT2; }的下面添加:
#ifndef MOD_DEC_USE_COUNT
#define MOD_DEC_USE_COUNT
#endif

#ifndef MOD_INC_USE_COUNT
#define MOD_INC_USE_COUNT
#endif

static inline int __deprecated verify_area(int type, const void __user * addr,
unsigned long size)
{
      return access_ok(type,addr,size) ? 0 : -EFAULT;
}

顺利编译,Skyeye的启动界面出现:
drivers/input/touchscreen/skyeye_ts_drv.c: SkyEye touch screen driver initialize
drivers/input/touchscreen/skyeye_ts_drv.c: Device register with name: skyeye touch screen and number: 10 9

原以为成功了,用skyeye_ts_drv.h里的测试程序测试失败,提示IRQ绑定失败,将PEN_IRQ_NUM由6改成16后,测试时提示硬件初始化完成,但是我点界面时就是收不到事件!

请问为s3c2410移植ts,irq号和io地址应该怎么修改,不尽感谢!

Matrix_Designer 发表于 2010-11-16 23:26:02

问题终于搞定,几经波折!
首先是Skyeye1.3.1默认没有注册触摸屏选项,所有其设备驱动代码不会加载,解决方法如http://blog.csdn.net/Matrix_Designer/archive/2010/10/18/5949713.aspx中的第五和第六项。修改后重新编译Skyeye可以在skyeye.conf文件中支持touchscreen选项。同样dbct选项现在也不支持,估计情况类似。
其次是s3c2410中的中断必须用虚拟中断号,并且其物理地址不能直接访问。
具体实现过程如http://blog.csdn.net/Matrix_Designer/archive/2010/11/16/6013645.aspx所示。
最终实现的触摸屏驱动没有处理中断重入,有点瑕疵,呵呵。有时间再搞吧

tiddy8 发表于 2010-11-17 17:47:55

原帖由 Matrix_Designer 于 2010-11-16 23:26 发表 http://www.linuxfans.org/bbs/images/common/back.gif
问题终于搞定,几经波折!
首先是Skyeye1.3.1默认没有注册触摸屏选项,所有其设备驱动代码不会加载,解决方法如http://blog.csdn.net/Matrix_Designer/archive/2010/10/18/5949713.aspx中的第五和第六项。修改后重新编译Skye ...
你厉害啊。
页: [1]
查看完整版本: s3c2410怎么实现触摸屏