欢迎来到天天文库
浏览记录
ID:21957380
大小:37.50 KB
页数:8页
时间:2018-10-25
《基于s3c2410和linux触摸屏驱动》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于S3C2410和LINUX的触摸屏驱动【摘要】linux设备驱动程序属于linux内核的一部分,并在linux内核中扮演着十分重要的角色。本文以一个触摸屏字符设备驱动程序为原型,剖析其基本结构并通过改写、编译实现其相应功能。最后通过在驱动程序中加入自己的滤波算法,并编译实现,查看屏幕矫正效果。【关键词】s3c2410;linux;触摸屏;驱动linux设备驱动程序属于linux内核的一部分,并在linux内核中扮演着十分重要的角色。它们像一个个“黑盒子”使某个特定的硬件响应一个定义良好的内部编程接口,同时完全隐蔽了设备的工作细节。用户通过一组标准化的调用
2、来完成相关操作,这些标准化的调用是和具体设备驱动无关的,而驱动程序的任务就是把这些调用映射到具体设备对于实际硬件的特定操作上。可以把设备驱动作为内核的一部分,直接编译到内核中,即静态编译,也可以单独作为一个模块编译,在需要它的时候再动态的把它插入到内核中。在不需要时也可把它从内核中删除,即动态连接。显然动态连接比静态连接有更多的好处,但在嵌入式开发领域往往要求进行静态连接,尤其是像s3c44b0这种不带mmu的芯片。但在s3c2410等带mm基于S3C2410和LINUX的触摸屏驱动【摘要】linux设备驱动程序属于linux内核的一部分,并在linux内核
3、中扮演着十分重要的角色。本文以一个触摸屏字符设备驱动程序为原型,剖析其基本结构并通过改写、编译实现其相应功能。最后通过在驱动程序中加入自己的滤波算法,并编译实现,查看屏幕矫正效果。【关键词】s3c2410;linux;触摸屏;驱动linux设备驱动程序属于linux内核的一部分,并在linux内核中扮演着十分重要的角色。它们像一个个“黑盒子”使某个特定的硬件响应一个定义良好的内部编程接口,同时完全隐蔽了设备的工作细节。用户通过一组标准化的调用来完成相关操作,这些标准化的调用是和具体设备驱动无关的,而驱动程序的任务就是把这些调用映射到具体设备对于实际硬件的特定
4、操作上。可以把设备驱动作为内核的一部分,直接编译到内核中,即静态编译,也可以单独作为一个模块编译,在需要它的时候再动态的把它插入到内核中。在不需要时也可把它从内核中删除,即动态连接。显然动态连接比静态连接有更多的好处,但在嵌入式开发领域往往要求进行静态连接,尤其是像s3c44b0这种不带mmu的芯片。但在s3c2410等带mmu的arm芯片中我们依然可以使用动态连接。一、linux设备分类目前linux支持的设备驱动可分为三种:字符设备,块设备,网络接口设备。当然它们之间的也并不是要严格的加以区分。1.字符设备:所有能够像字节流一样访问的设备比如文件等在li
5、nux中都通过字符设备驱动程序来实现。在linux中它们也被映射为文件系统的一个节点,常在/dev目录下。字符设备驱动程序一般要包含open,close,read,write等几个系统调用。2.块设备:linux的块设备通常是指诸如磁盘,内存,flash等可以容纳文件系统的存储设备。与字符设备类似,块设备也是通过文件系统来进行访问,它们之间的区别仅仅在于内核内部管理数据的方式不同。它也允许像字符设备一样的访问,可以一次传递任意多的字节。linux中的块设备包含整数个块,每个块包含2的几次幂的字节。3.网络接口设备:网络接口设备是linux中比较复杂的一种设备
6、,通常它们指的是硬件设备,但有时也可是一个软件设备。它们由内核中网络子系统驱动,负责发送和接收数据包,而且它并不需要了解每一项事务是如何映射到实际传送的数据包的。它们的数据传送往往并不是面向流的,所以不容易把它们映射到一个文件系统的节点上。在linux中采用给网络接口设备分配一个唯一名字的方法来访问该设备。二、linux关于字符设备的管理驱动程序在linux内核中往往是以模块形式出现的。与应用程序的执行过程不同,模块通常只是预先向内核注册自己,当内核需要时响应请求。模块中包含两个重要的函数:init_module和cleanup_module。前者是模块的入
7、口,它为模块调用做好准备工作,而后者则是在模块即将卸载时被调用,做一些清扫工作。驱动程序模块通过函数:intregister_chrdev(unsignedintmajor,constchar*name,structfile_operations*fops);来完成向内核注册的。其中unsi-gnedintmajor为主设备号,constchar*name为设备名,结构指针structfile_operations*fops内核就是通过这个结构来访问驱动程序的。在linux中字符设备是通过文件系统中的设备名来进行访问的。这些名称通常放在/dev目录下,通过命
8、令ls-l/dev我们可以看到该目录下的一大堆设备文
此文档下载收益归作者所有