fl2440之触摸屏移植
2017-04-19 14:35
176 查看
板子:s3c2440,
内核:linux-3.0.54,
交叉编译器:buildroot-2012.08,
屏幕尺寸:4.3
前面我们进行了LCD驱动移植,现在我们来移植触摸屏
触摸屏离不开AD转换,由我们产生的x,y方向的模拟信号进入到AD转换器,然后再出发相应的中断进行处理,在中断处理程序中上报数据。过多的原理这里不赘述,直接进入移植:
首先还是得修改文件:
![](https://img-blog.csdn.net/20170419141851160?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUGV0ZXJfdGFuZzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
添加头文件:
![](https://img-blog.csdn.net/20170419142056060?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUGV0ZXJfdGFuZzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
添加ADC和TS:
![](https://img-blog.csdn.net/20170419142200773?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUGV0ZXJfdGFuZzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170419142345103?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUGV0ZXJfdGFuZzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
添加上面对应的结构体信息:
![](https://img-blog.csdn.net/20170419142518422?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUGV0ZXJfdGFuZzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
接下来修改下一个文件:
vim drivers/input/touchscreen/s3c2410_ts.c
![](https://img-blog.csdn.net/20170419144513429?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUGV0ZXJfdGFuZzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170419144631649?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUGV0ZXJfdGFuZzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170419144818574?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUGV0ZXJfdGFuZzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170419144857668?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUGV0ZXJfdGFuZzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这个的内核配置一般都配置好了,因此现在可以直接编译。并将编译以后的内核烧进开发板。
内核打印:
![](https://img-blog.csdn.net/20170419145126390?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUGV0ZXJfdGFuZzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
还有我们的event0设备文件:
![](https://img-blog.csdn.net/20170419145239499?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUGV0ZXJfdGFuZzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
我们的触摸屏已经移植成功,现在我们也可以写一个小程序测试测试:
经交叉编译器编译以后烧进开发板,执行后触摸屏幕,看屏幕现象。
内核:linux-3.0.54,
交叉编译器:buildroot-2012.08,
屏幕尺寸:4.3
前面我们进行了LCD驱动移植,现在我们来移植触摸屏
触摸屏离不开AD转换,由我们产生的x,y方向的模拟信号进入到AD转换器,然后再出发相应的中断进行处理,在中断处理程序中上报数据。过多的原理这里不赘述,直接进入移植:
首先还是得修改文件:
添加头文件:
添加ADC和TS:
添加上面对应的结构体信息:
接下来修改下一个文件:
vim drivers/input/touchscreen/s3c2410_ts.c
这个的内核配置一般都配置好了,因此现在可以直接编译。并将编译以后的内核烧进开发板。
内核打印:
还有我们的event0设备文件:
我们的触摸屏已经移植成功,现在我们也可以写一个小程序测试测试:
#include <stdio.h> #include <linux/input.h> static int event0_fd = -1; struct input_event ev0[64]; static int handle_event0() { int button = 0, realx=0, realy=0, i, rd; rd = read(event0_fd, ev0, sizeof(struct input_event)* 64); if(rd < sizeof(struct input_event)) return 0; for(i=0;i<rd/sizeof(struct input_event); i++) { if(EV_ABS == ev0[i].type) { if(ev0[i].code == 0) { realx = ev0[i].value; } else if(ev0[i].code == 1) { realy = ev0[i].value; } } printf("event(%d):type:%d; code:%3d; value:%3d; realx:%3d; realy:%3d\n",i,ev0[i].type,ev0[i]. code,ev0[i].value,realx,realy); } return 1; } int main(void) { int done = 1; event0_fd = open("/dev/event0",02); if(event0_fd <0) { printf("open input device error\n"); return -1; } while (done) { printf("begin handle_event0...\n"); done = handle_event0(); printf("end handle_event0...\n"); } if(event0_fd > 0) { close(event0_fd); event0_fd = -1; } return 0; }
经交叉编译器编译以后烧进开发板,执行后触摸屏幕,看屏幕现象。
相关文章推荐
- fl2440 触摸屏驱动的移植
- fl2440内核移植(五)——USB驱动移植
- 内核linux-3.0移植到fl2440-----添加DM9000网卡驱动
- 2440上的触摸屏驱动移植
- linux-2.6.22.6中UDA1341驱动到FL2440-I移植
- QT4移植到FL2440开发板的详细过程
- 2440+2.6.33 触摸屏驱动 移植(十一)
- fl2440内核移植(一)——最小系统
- FL2440+ADS1.2+Jlink裸机移植bootloader
- 关于2440/6410移植自己到qt程序触摸屏不能用到解决办法
- 嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之触摸屏驱动
- linux2.6.32移植到fl2440 求助Cannot open /dev/ts0 (No such device) 问题
- 【uboot201607移植到FL2440】添加自己的板子并实现串口的打印
- fl2440 移植u-boot-2010.09全纪录4---------u-boot支持从nandflash启动
- 嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之触摸屏驱动
- linux-2.6.22.6中LCD驱动到FL2440-I移植
- fl2440内核移植(二)——RTC移植
- 内核linux-3.0移植到fl2440-----添加U盘,MMC和LCD驱动
- linux2.6.37.4内核在2440开发板上移植 触摸屏驱动移植
- 【uboot201607移植到FL2440】如果利用git版本管理工具下载最新的uboot源码