微机原理实验1.doc
《微机原理实验1.doc》由会员分享,可在线阅读,更多相关《微机原理实验1.doc(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流微机原理实验1【精品文档】第 2 页成绩:课程设计大作业课程名称:嵌入式Linux程序设计案例与实验教程设计题目:触摸屏驱动程序姓 名:刘骐郡、闫佳瑞专 业:计算机科学与技术班 级:计算机13-9学 号:1304010910、1304010922计算机科学与技术学院实验教学中心2016年 11 月 24 日设计项目: 触摸屏驱动程序 一、 功能描述 以一个简单字符设备驱动程序为原型,剖析其基本结构。进行部分改写之后并编译实现其 相应功能。了解在 UP-NETARM2410-S 平台上实现触摸屏 Linux 驱动程序的基本原理。了解 Linux 驱动开发的
2、基本过程。二、触摸屏的工作原理 1硬件设计 SPI接口是Motorola推出的一种同步串行接口,采用全双工、四线通信系统,S3C2410X是三星推出的自带触摸屏触摸屏接口的ARM920T内核芯片,ADS7843为Burr-Brown生产的一款性能优异的触摸屏触摸屏控制器。ADS7843与S3C2410的硬件连接如图1所示,鉴于ADS7843差分工作模式的优点,在硬件电路中将其配置为差分模式。图1触摸屏输入系统示意图2嵌入式Linux系统下的驱动程序 设备驱动程序是Linux内核的重要组成部分,控制了操作系统和硬件设备之间的交互。Linux的设备管理是和文件系统紧密结合的,各种设备都以文件的形式
3、存放在/dev目录下,成为设备文件。应用程序可以打开、关闭、读写这些设备文件,对设备的操作就像操作普通的数据文件一样简便。为开发便利、提高效率,本设计采用可安装模块方式开发调试触摸屏驱动程序。设备驱动在加载时首先需要调用入口函数init_module(),该函数完成设备驱动的初始化工作。其中最重要的工作就是向内核注册该设备,对于字符设备调用register_chrdev()完成注册,对于块设备需要调用register_blkdev()完成注册。但是,应用程序却还不能“看见”它,因而还不能通过系统调用它。要使应用程序能“看见”这个模块或者它所驱动的设备,就要在文件系统中为其创建一个代表它的节点。
4、通过系统调用mknod()创建代表此项设备的文件节点设备入口点,就可使一项设备在系统中可见,成为应用程序可以访问的设备。另外,设备驱动在卸载时需要回收相应的资源,令设备的相应寄存器值复位并从系统中注销该设备。三、 内容和步骤 1.程序分析 剖析 UP-NETARM2410-S 平台上运行的触摸屏驱动程序(s3c2410-ts.c),该程序在 /arm2410s/kernel-2410s/drivers/char/s3c2410-ts.c,具体代码如下:#include #ifdef CONFIG_PM #include #endif /* debug macros */ #undef DEBU
5、G #ifdef DEBUG #define DPRINTK( x. ) printk(s3c2410-ts: #x) /*由于驱动主要是内核空间运行的,所以无法使用用户空间的相关库函数,这里不能用标准 C 库中的 ptintf 来打印调试信息,只能用内核支持的 printk 函数。*/ #else #define DPRINTK( x. ) #endif #define PEN_UP0/定义抬笔,即触摸屏不被压下。#define PEN_DOWN1/定义下笔,即触摸屏被压下。#define PEN_FLEETING2/定义拖动。#define MAX_TS_BUF16/定义缓冲区大小位 16
6、 字节。#define DEVICE_NAME s3c2410-ts/定义了设备名以后我们就根据它来寻找该设备。#define TSRAW_MINOR1/次设备号为 1。typedef struct unsigned int penStatus;/*触摸屏状态: PEN_UP, PEN_DOWN, PEN_SAMPLE */TS_RET bufMAX_TS_BUF;/* protect against overrun */unsigned int head, tail; /* head and tail for queued events */ wait_queue_head_t wq; /*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验
限制150内