关 闭

新闻中心

EEPW首页>工控自动化>设计应用> 基于TQ2440和Linux的触摸屏的驱动研究

基于TQ2440和Linux的触摸屏的驱动研究

作者: 时间:2012-03-16 来源:网络 收藏

2程序

2.1 建立嵌入式系统开发环境

建立此开发环境的步骤为:

(1)在Windows XP SP3系统下安装虚拟机vmware5.5.3,在虚拟机里安装Redhat9.0系统。在Redhat9.0系统下编译开发板所需的镜像和文件,使用虚拟机工具实现了Windows和Redhat的文件共享,在Windows系统下可以直接下载镜像和文件到开发板上。

(2)使用Windows XP SP3自带的超级终端,并使用串口线连接PC和开发板。这样就可以在PC上对开发板进行相关的操作。

(3)本次实验开发板使用的是2.6.30.4内核,而Redhat9.0系统是2.4.20.8内核,所以需要下载适合开发板的编译器。下载最新版本的支持EABI技术的交叉编译器(本次实验使用的是EABI_4.3.3_2009版本),复制到Redhat9.0系统目录/opt/EABI_4.3.3_2009/下,打开系统文件/etc/profile(可在终端使用命令vim /etc/profile),添加相应语句(本次实验使用vim命令打开profile文件,在第20行添加语句pathmunge/opt/EABI_4.3.3_2009/4.3.3/bin)让编译器生效,这样就可以在PC上交叉编译开发板所需要的文件。至此开发环境已经建立。

2.2内核的移植

本次实验使用的boatload是天嵌公司自己开发的u-boot,用J-TAG烧写方式写入NOR Flash,然后便可以使用u-boot自带的USB下载(需要在Windows下安装USB下载程序)功能下载开发板上需要的Linux内核镜像了,这样方便而且高效。下载Linux2.6.30.4内核源代码,复制到Redhat9.0系统目录/opt下,并解压。在目录/opt/linux2.6.30.4/目录下便可以进行修改和编译开发板上需要的内核镜像。在移植之前,需要移植板载256 MB NAND Flash的驱动、yaffs文件系统,这样便完善了串口驱动程序,最后移植LCD屏的驱动。

2.3驱动程序

Linux系统将存储器和外设分为字符设备、块设备、网络设备三大类。触摸屏属于字符设备,以串行顺序依次进行访问。在Linux系统中,以文件名的形式在/dev目录下建立触摸屏设备文件, 应用程序可以通过系统调用函数open()打开此文件,建立起与设备的连接,然后通过函数read()、write()、release()、ioctl()等常规的文件操作对目标设备进行操作。Linux为了把所有的设备当作文件系统进行管理,为所有的文件及设备文件定义了统一的操作函数接口file_operations,每个文件都通过指向file_operations结构的指针字段与它自己的函数集相关联。file_operations中成员为一系列指向各操作函数的指针,这些操作函数主要负责系统调用的实现,不同类型的设备文件系统有不同类型的file_operations结构[4]。触摸屏的 file_operations 结构定义为:
static struct file_operation s3c2410_fops=
{
owner: THIS_MODULE,
open: s3c2410_ts_open,//打开
read: s3c2410_ts_read,//读坐标
release:
s3c2410_ts_release,
#ifdef USE_ASYNC
Fasync:s3c2410_ts_fasync,//fasync()函数
#endif
poll:s3c2410_ts_poll,//轮询
}

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭