嵌入式课程设计-基于ARM的嵌入式触摸屏的设计.doc

上传人:yyf 文档编号:5021893 上传时间:2020-01-29 格式:DOC 页数:26 大小:9.97MB
返回 下载 相关 举报
嵌入式课程设计-基于ARM的嵌入式触摸屏的设计.doc_第1页
第1页 / 共26页
嵌入式课程设计-基于ARM的嵌入式触摸屏的设计.doc_第2页
第2页 / 共26页
嵌入式课程设计-基于ARM的嵌入式触摸屏的设计.doc_第3页
第3页 / 共26页
嵌入式课程设计-基于ARM的嵌入式触摸屏的设计.doc_第4页
第4页 / 共26页
嵌入式课程设计-基于ARM的嵌入式触摸屏的设计.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《嵌入式课程设计-基于ARM的嵌入式触摸屏的设计.doc》由会员分享,可在线阅读,更多相关《嵌入式课程设计-基于ARM的嵌入式触摸屏的设计.doc(26页珍藏版)》请在三一文库上搜索。

1、 基于ARM的嵌入式触摸屏的设计 第26页 共26页1 引言使用S3C2410芯片设计的四线电阻式触摸屏在博创公司的UP NetARM2410S 嵌入式开发平台上得到了很好的效果,屏幕显示无闪烁,画面切换速度快,触摸屏响应迅速。设备驱动程序是Linux内核的重要组成部分,控制了操作系统和硬件设备之间的交互。Linux的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,成为设备文件。应用程序可以打开、关闭、读写这些设备文件,对设备的操作就像操作普通的数据文件一样简便。为开发便利、提高效率,本设计采用可安装模块方式开发调试触摸屏驱动程序【1】。本文介绍了基于三星S3C24

2、10X微处理器,采用SPI接口与ADS7843控制器芯片完成模块的设计。具体包括在嵌入式Linux操作系统中的软件驱动开发,采用内核定时器的下半部机制进行了硬件中断程序设计,采用16个时钟周期的坐标转换时序,实现触摸点数据采集的方法,给出了坐标采集的流程。设计完成的驱动程序在博创公司教学实验设备UP-NETARM2410-S平台上运行效果良好【2】。1.1 课题背景随着信息家电和通讯设备的普及,作为与用户交互的终端媒介,触摸屏在生活中得到广泛的应用。如何在系统中集成触摸屏模块以及在嵌入式操作系统中实现其驱动程序,都成为嵌入式系统设计者需要考虑的问题【3】。嵌入式系统触摸屏的应用越来广泛, 诸如

3、以PDA 为标志的数码产品逐渐选用LCD 触摸屏作为系统的输入设备. 触摸屏分为电阻、电容、表面声波、红外线扫描和矢量压力传感等, 其中用的最普遍的是四线或五线电阻触摸屏【4】。然而在日常使用的触摸产品中, 或多或少发现有些触摸屏对触摸动作响应不够灵敏, 甚者会引起死机, 是什么导致这些现象的产生? 换言之, 有没有更好触摸控制方式?围绕这个疑问, 本设计在介绍四线电阻式触摸屏工作原理的基础上,详细阐述了嵌入式微处理器( S3C2410) 与触摸屏模块之间的硬件接口与驱动实现,并利用S3C2410 的等待中断模式和自动 X/ Y 坐标转换模式, 实现了 X/ Y 坐标的确定,完成对触摸屏的控制

4、【5】。1.2 课程目的本课程设计基于Linux操作系统以及Emest III实验箱,利用触摸屏能正确返回触点坐标值及动作信息,坐标及动作的具体显示包括:触摸笔动作,触点X坐标值,触点Y坐标值。1.3 课程设计的内容本次课程设计成功地设计了基于ARM的嵌入式触摸屏。主要内容有:(1)Linux系统的正确移植和使用;(2)根文件系统的正确移植和使用;(3)驱动程序的编译与装载;(4)嵌入式系统下应用程序的交叉编译及下载与调试。2 触摸屏的工作原理触摸屏系统是一种人机交互设备, 其结构如图2.1,将触摸屏安装在LCD显示屏上, 配以相应的控制电路对触摸屏和LCD进行控制,用户通过触摸操作就可以实现

5、同触摸屏系统相连接的设备进行信息交互。设计采用四线电阻式触摸屏, 包含两层透平、均匀导电的ITO层,分别作为X电极和Y电极, 它们之间由细微绝缘点隔开。X电极和Y电极的正负端由导电条分别从两端引出,且X电极和Y电极导电条的位置相互垂直, 引出端 X-、X+、Y-、Y+ 共4条线【6】。图2.1 四线电阻式触摸屏结构图当有物体接触触摸屏表面并施以一定的压力时,上层的ITO导电层发生形变与下层 ITO发生接触,形成可等效为图2.2的分压电路。图2.2 电阻触屏分压电路图控制器通过下述方法即可确定触摸点位置:(1)在X+电极施加驱动电压, X-电极接地, Y+作为引出端测量得到接触点的电压, 触点电

6、压与驱动电压之比等于触点 X 坐标与屏宽度之比,得到X 坐标。(2) 在Y+电极施加驱动电压, Y-电极接地, X+作为引出端测量得到接触点的电压, 触点电压与驱动电压之比等于触点 Y 坐标与屏高度之比,得到Y 坐标。因此, 计算触摸点的坐标首先需要对触摸屏的引脚电平进行切换控制, 使其处于合适的状态。然后通过ADC转换采集到的接触点电压值, 进行相应的计算。触摸屏接口工作模式有以下几种:(1)普通转换模式 普通转换模式(AUTO_PST = 0,XY_PST = 0)是用作一般目的下的ADC转换。这个模式可以通过设置ADCCON和ADCTSC来进行对AD转换的初始化;而后读取ADCDAT0(

7、ADC数据寄存器0)的XPDATA域(普通ADC转换)的值来完成转换。 (2)分离的X/Y轴坐标转换模式:X轴坐标转换和Y轴坐标转换。 X轴坐标转换(AUTO_PST=0且XY_PST=1)将X轴坐标转换数值写入到ADCDAT0寄存器的XPDATA域。转换后,触摸屏接口将产生中断源(INT_ADC)到中断控制器。 Y轴坐标转换(AUTO_PST=0且XY_PST=2)将X轴坐标转换数值写入到ADCDAT1寄存器的YPDATA域。转换后,触摸屏接口将产生中断源(INT_ADC)到中断控制器。 (3)自动(连续)X/Y轴坐标转换模式。 自动(连续)X/Y轴坐标转换模式(AUTO_PST=1且XY_

8、PST= 0)以下面的步骤工作: 触摸屏控制器将自动地切换X轴坐标和Y轴坐标并读取两个坐标轴方向上的坐标。触摸屏控制器自动将测量得到的X轴数据写入到ADCDAT0寄存器的XPDATA域,然后将测量到的Y轴数据到ADCDAT1的YPDATA域。自动(连续)转换之后,触摸屏控制器产生中断源(INT_ADC)到中断控制器。 (4)等待中断模式 当触摸屏控制器处于等待中断模式下时,它实际上是在等待触摸笔的点击。在触摸笔点击到触摸屏上时,控制器产生中断信号(INC_TC)。中断产生后,就可以通过设置适当的转换模式(分离的X/Y轴坐标转换模式或自动X/Y轴坐标转换模式)来读取X和Y的位置。 (5)静态(S

9、tandby)模式 当ADCCON寄存器的STDBM位被设为1时,Standby模式被激活。在该模式下,A/D转换操作停止,ADCDAT0寄存器的XPDATA域和ADCDAT1寄存器的YPDATA(正常ADC)域保持着先前转换所得的值【7】。 3 总体设计3.1设计总体方案3.1.1 软件(1)Embest Online Flash Programmer For ARM: Embest Flash在线编程器,如图3.1所示。(2)HYPER TERMINAL(超级终端):传送vivi.nand如图3.2所示。 图3.1 Embest Flash在线编程器图3.2 传送vivi.nandvivi

10、 load flash kernel x 烧写更新内核,传送zImage文件; 等待传送内核文件,如图3.3所示。图3.3 等待传送内核文件传送内核,如图3.4所示。 图3.4传送内核viviload flash root j 烧写更新文件系统;烧写新的文件系统 load flash root j ,如图3.5所示。 图3.5烧写新的文件系统 load flash root j(3)EmbestIDE Pro for ARM: 应用于嵌入式软件开发的新一代集成开发环境,是一个高度集成的图形界面操作环境,包含编辑器、编译汇编链接器、调试器、工程管理、Flash 编程等工具;支持的开发语言包括标准

11、C和汇编语言。(4)cygwin:一个在windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,把gcc,gdb,gas等开发工具进行了改进,能够生成并解释win32的目标文件【8】。3.1.2 硬件S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,32位微控制器。该处理器拥有:独立的16KB指令Cache和16KB数据Cache,MMU,支持TFT的LCD控制器,NAND闪存控制器,3路UART,4路D

12、MA,4路带PWM的Timer ,I/O口,RTC,8路10位ADC,Touch Screen接口,IIC-BUS 接口,IIS-BUS 接口,2个USB主机,1个USB设备,SD主机和MMC接口,2路SPI。S3C2410处理器最高可运行在203MHz【9】。3.2 设计所需工具(1)软件: Embest Online Flash Programmer For ARM,HYPER TERMINAL(超级终端),EmbestIDE Pro for ARM,cygwin(2) 硬件:s3c2410开发板,Embest实验箱3.3 平台构建过程3.3.1硬件平台搭建硬件流程图如图3.6所示。图3.

13、6 硬件流程图(1) Vivi烧写过程1)首先把SW104断开,Flash Programmer的Program,在File选择Open打开要烧写的配置文件S3C2410&NandFLash_vivi.cfg,在Flash Programmer的Program页中选择要烧写的文件vivi.bon&load.bin。点击按钮 Progarm 开始烧写,直到烧写成功。2) 连接串口线到 PC 机 COM1,运行光盘中提供的 Windows 超级终端Hyper Terminal.ht 把开发板重新加电,程序运行后,在超级终端上可以看到串口输出Wating,表示正在等待用户从超级终端下载文件。这时,请

14、点击超级终端菜单传送选择 Xmodem 方式下载 vivi.nand 文件,点击 OK 后等待下载烧写结束即可。(2) 内核zImage烧写1) 首先SW104设为短接(从Nand Flash启动),并确定已经烧写vivi.nand,加电。2 ) 在vivi启动等待中,敲入空格键进入vivi界面环境,并输入以下命令:vivi load flash kernel x 烧写更新内核约1分钟即可烧写完毕。3 ) 点击超级终端菜单中的“传送”,选“发送文件”zImage” 并选择xModem方式传送)烧写结束,重起实验板,观测超级终端窗口提示信息就可以启动linux内核。(3)新文件系统的烧写1)首先

15、SW104设为短接(从Nand Flash启动),确定已经成功烧写vivi.nand,加电运行可以看到vivi启动信息,输入空格进入命令状态。2)双击运行Download.pjf(该文件在/tmp/edukit-2410/image/中)工程(将启动Embest IDE环境),点击连接Remote connect,程序应该正在运行(命令按钮STOP为红色);在串口输入help,看看有没有反应,如果没反应,点击IDE 按钮:Reset -Start(F5);再输入help测试,直到有反应为止。3)如果可以输出一些信息,再点击IDE中的Stop,配置Debug的Download地址为0x30000

16、000,并点击IDE菜单Project选择Settings项,在Download页下拉Category到Download项,在Download File选择root.cramfs文件,点击确定后,点击IDE菜单DEBUG选择Download下载文件系统映象(约1分钟),下载完毕后,点击Start(F5)。然后在超级终端里输入: load flash root j (烧写更新文件系统,约1分钟即可烧写完毕)。注意:只能在“vivi的烧写”操作完成后,才可以按以上方法正确烧写root映象到Nand Flash。重起实验板,观测超级终端窗口提示信息,引导整个系统启动到linux行命令输入状态【10】

17、。3.3.2 根文件系统的制作(1)根文件系统根文件系统是Linux系统的核心部分,包含系统使用的软件和库,以及所有用来为用户提供支持架构和用户使用的应用软件,并作为储存数据读写结果的区域。在Linux系统启动时,首先完成内核安装及环境初始化,最后会寻找一个文件系统作为根文件系统被加载。Linux系统中使用“/”来唯一表示根文件系统的安装路径。嵌入式系统中通常可以悬着的根文件系统有:Romfs、CRAMFS、RAMFS、JFFS2、EXT2等,甚至还可以使用NFS作为根文件系统。(2)cramfs文件系统Cramfs是Linux创始人Linux torvalds开发的一个适用于嵌入式系统的小文

18、件系统。Cramfs是一个只读文件系统,采用zlib压缩,压缩比一般可以达到1:2,但仍可以做到高效的随机读取。Linux系统中,通常把需要修改的目录压缩存放,并在系统引导的时候再将压缩文件解开。因为cramfs不会影响系统读取文件的速度,而且是一个高度压缩的文件系统,因此非常广泛应用于嵌入式系统中。(3)cygwin简介Cygwin是一个在windows平台上运行的unix/Linux模拟环境,是cygnus solutions公司开发的自由软件。Cygwin中,“/”表示根目录,即cygwin的安装目录。我们常用的set_env_linux.sh中定义的目录有:SOURCEDIR:/tmp

19、/edukit-2410存储了vivi、linux、fs等源代码和例程WORKDIR:/usr/local/src/edukit-2410工作区。一般情况下都要把已经规划好的目录结构转换成一个映象文件,即使用命令工具 mkcramfs(cygwin下为 mkcramfs.exe),把相应的 cramfs 目录树压缩为单一的映象文件。其命令格式为:mkcramfs -h -e edition -i file -n name dirname outfile 可以使用我们提供的 mkcramfs.exe 在 cygwin 下编译生成文件系统映象文件 root.cramfs,再固化到开发系统FLASH

20、 上运行。 (4)常用的Linux行命令1) cd 改变当前目录(文件夹)。例如下, cd/ 返回到根目录 cd. 退回到上级目录cd/tmp/edukit-2410/进入/tmp/edukit-2410/文件夹2) ls 列出当前目录中的内容。Ls 简单格式列表lsl 使用详细格式列表。3) pwd 显示当前所在的目录。(5)tar工具命令tar 程序用于储存或展开 tar 存档文件。命令格式:tar -参数 文件名路径-x :extract | -get 从存档展开文件;-v :-verbose 详细显示处理的文件;-j :-有 bz2 属性的必须包含;-f :-file HOSTNAME

21、:F 指定存档或设备(缺省为 /dev/rmt0)。(6)解压原文件系统(命令+解压目录的存放)。1)先将 root.cramfs.tar.bz2文件放在C:cygwin目录中;2)解压文件系统运行cygwin,执行以下命令解压安装:$ source /tmp/edukit-2410/set_env_linux.sh Linux编译环境变量设置$ cd / $ tar -xvjf root.cramfs.tar.bz2$ ls root root文件夹中就是我们想要的cramfs文件系统3) 如果在根目录中产生root文件夹,解压成功;4)在root目录中新建xx文件夹,用于存放应用程序进入该

22、目录后执行以下命令编译链接测试程序:$ cd root$mkdir xx(7)编译应用程序 ts.c (命令+生成文件格式+存放位置)将编写好的ts.c程序放在C:cygwin目录中。进入该目录后执行以下命令编译链接测试程序:$ cd /$ arm-linux-gcc -o ts ts.c (也可以编写Makefile来编译)生成文件: ts 如图3.7所示。图3.7 生成文件将ts文件放入root 下的xx文件夹中。(8)新文件系统的制作把刚才编译输出的ts文件拷贝到文件系统所在的工作目录root目录下,执行以下命令生成新的文件系统映象:$ cd / $ mkcramfs root root

23、.new刚刚编译生成的文件系统映象root.new中已经包含测试程序即生成文件【11】。解压文件系统,如图3.8所示。图3.8 解压文件系统解压成功如下,如图3.9所示。图3.9 解压成功在root目录中新建xx文件夹,用于存放应用程序,如图3.10所示。图3.10 在root目录中新建xx文件夹将编写好的ts.c程序放在C:cygwin目录中,如图3.11所示。图3.11 将编写好的ts.c程序放在C:cygwin目录中生成文件: ts 如下图所示3.12所示。图3.12 生成文件新文件系统的制作,如图3.13所示。图3.13 新文件系统的制作生成文件,如图3.14所示。图3.14 生成文件

24、4 详细设计4.1 接口电路设计微处理器采用基于ARM920T内核的RISC处理器S3C2410,主频203 MHz, 适用于低成本、低功耗和高性能手持设备和一般应用的单片微处理器解决方案。其适合做触摸屏系统MCU 的原因是该处理器内置了LCD控制器,并且集成了一个带有触摸屏接口的8通道10位AD转换器。该ADC能以500KB/ s的采样速率将外部的模拟信号转换为10位分辨率的数字量。因此, ADC能与触摸屏控制器协同工作。选用通道7和通道5连接触摸屏的模拟信号输入,其中,通道7(图4.1中A7 )作为触摸屏接口的X坐标输入,通道5(图4.1中A5)作为触摸屏接口的Y 坐标输入。图4.1 触摸

25、屏接口电路原理图S3C2410提供了nYPON、YMON、nXPON和XMON信号直接作为触摸屏的控制信号,通过其控制外部晶体管的打开与关闭实现触摸屏的引脚状态的切换,根据触摸屏工作原理,触摸屏引脚的状态应满足如下要求,见表4-1。表4-1 触摸屏引脚控制状态X+X-Y+Y-X坐标外部电压接地AIN5高阻Y坐标AIN7高阻外部电压接地在电路的具体实现中, 4个MOS管用2个FDC6321实现。并增加阻容式低通滤波电路滤除坐标信号噪声(见图4.2)。这里的滤波很重要,如果传递给S3C2410模拟输入接口的信号中干扰过大,不利于后续的软件处理。图4.2 触摸屏接口电路4.2 系统软件设计4.2.1

26、程序流程图程序流程图如图4.3所示。是打开触摸屏设备创建等待队列和缓冲区初始化队列头等待中断调用中断子程序更新X,Y显示一个触摸点或坐标值否图4.3 程序流程图4.2.2分析驱动触摸屏驱动在/kernel/drivers/char/s3c2410-ts.c 文件中。4.2.3 触摸屏设备驱动中数据结构(1)触摸屏的file_operationsstatic struct file_operations s3c2410_fops= owner: THIS_MODULE, open: s3c2410_ts_open, read: s3c2410_ts_read, release: s3c2410_

27、ts_release,#ifdef USE_ASYNC fasync: s3c2410_ts_fasync,/异步通知#endif poll: s3c2410_ts_poll,/轮询;(2)触摸屏设备结构体的成员与按键设备结构体的成员类似,也包含一个缓冲区,同时包括自旋锁、等待队列和fasync_struct指针。typedef struct unsigned int penStatus; /* PEN_UP, PEN_DOWN, PEN_SAMPLE */ TS_RET bufMAX_TS_BUF; /* protect against overrun(环形缓冲区) */ unsigned

28、int head, tail;/* head and tail for queued events(环形缓冲区的头尾)*/ wait_queue_head_t wq; /* 等待队列数据结构 spinlock_t lock; /* 自旋锁#ifdef USE_ASYNC struct fasync_struct *aq;#endif#ifdef CONFIG_PM struct pm_dev *pm_dev; /友善之臂专有的,我后面的代码删除了这段#endif TS_DEV;(3)触摸屏结构体中包含的TS_RET值的类型定义,包含X、Y坐标和状态(PEN_DOWN、PEN_UP)等信息,这个

29、信息会在用户读取触摸信息时复制到用户空间 。typedef struct unsigned short pressure; /* 压力,这里可定义为笔按下,笔抬起,笔拖曳 unsigned short x; /* 横坐标的采样值 unsigned short y; /* 纵坐标的采样值 unsigned short pad; /* 填充位 TS_RET;(4)在触摸屏设备驱动中,将实现open()、release()、read()、fasync()和poll()函数,因此,其文件操作结构体定义。触摸屏驱动文件操作结构体:static struct file_operations s3c2410

30、_fops=4.2.4 触摸屏驱动模块加载和卸载函数(1)在触摸屏设备驱动的模块加载函数中,要完成申请设备号、添加cdev、申请中断、设置触摸屏控制引脚(YPON、YMON、XPON、XMON)等多项工作,触摸屏设备驱动的模块加载函数: static int _init s3c2410_ts_init(void)触摸屏设备驱动模块卸载函数: static void _exit s3c2410_ts_exit(void)(2)可知触摸屏驱动中会产生两类中断,一类是触点中断(INT-TC),一类是X/Y位置转换中断(INT-ADC)。在前一类中断发生后,若之前处于PEN_UP状态,则应该启动X/Y

31、位置转换。另外,将抬起中断也放在INT-TC处理程序中,它会调用tsEvent()完成等待队列和信号的释放。触摸屏设备驱动的触点/抬起中断处理程序:static void s3c2410_isr_tc(int irq, void *dev_id, struct pt_regs *reg)当X/Y位置转换中断发生后,应读取X、Y的坐标值,填入缓冲区,触摸屏设备驱动X/Y位置转换中断处理程序:static void s3c2410_isr_adc(int irq, void *dev_id, struct pt_regs *reg)触摸屏设备驱动中获得X、Y坐标:static inline voi

32、d s3c2410_get_XY(void)(3)tsEvent最终为tsEvent_raw(),这个函数很关键,当处于PEN_DOWN状态时调用该函数,它会完成缓冲区的填充、等待队列的唤醒以及异步通知信号的释放;否则(处于PEN_UP状态),将缓冲区头清0,也唤醒等待队列并释放信号,触摸屏设备驱动的tsEvent_raw()函数:static void tsEvent_raw(void)(4)在包含了对拖动轨迹支持的情况下,定时器会被启用,周期为10ms,在每次定时器处理函数被引发时,调用start_ts_adc()开始X/Y位置转换过程,触摸屏设备驱动的定时器处理函数:static voi

33、d ts_timer_handler(unsigned long data)(5)在触摸屏设备驱动的打开函数中,应初始化缓冲区、penStatus和定期器、等待队列及tsEvent时间处理函数指针,触摸屏设备驱动的打开函数:static int s3c2410_ts_open(struct inode *inode, struct file *filp)(6)触摸屏设备驱动的释放函数非常简单,删除为用于拖动轨迹所使用的定时器即可,触摸屏设备驱动的释放函数: static int s3c2410_ts_release(struct inode *inode, struct file *filp)

34、4.2.5 触摸屏设备驱动的读函数触摸屏设备驱动的读函数实现缓冲区中信息向用户空间的复制,当缓冲区有内容时,直接复制;否则,如果用户阻塞访问触摸屏,则进程在等待队列上睡眠,否则,立即返回-EAGAIN,触摸屏设备驱动的读函数:static ssize_t s3c2410_ts_read(struct file *filp, char *buffer, size_t count, loff_t *ppos)4.2.6 触摸屏设备驱动的轮询与异步通知在触摸屏设备驱动中,通过s3c2410_ts_poll()函数实现了轮询接口,这个函数的实现非常简单。它将等待队列添加到poll_table,当缓冲区

35、有数据时,返回资源可读取标志,否则返回0,触摸屏设备驱动的poll()函数:static unsigned int s3c2410_ts_poll(struct file *filp, struct poll_table_struct *wait)而为了实现触摸屏设备驱动对应用程序的异步通知,设备驱动中要实现s3c2410_ts_fasync()函数,触摸屏设备驱动的fasync()函数:static int s3c2410_ts_fasync(int fd, struct file *filp, int mode)5 调试使用s3c2410_ts.c触摸屏驱动编写应用程序,读取触摸屏的触点坐

36、标值及动作信息(触点x坐标值,y坐标及是否有压力值press),并在串口中断打印出来。对触摸屏设别的操作有打开设备,关闭设备,读操作等。编写应用程序读取触摸屏的触点坐标值及动作信息时,只需利用触摸屏驱动程序便可实现,先打开触摸屏设备,然后调用读函数即可。其中,触摸笔动作取值如下:#define PEN_UP 0/* 触摸笔抬笔,即触摸屏不被压下 */#define PEN_DOWN1/* 触摸笔下笔,即触摸屏被压下 */#define PEN_FLEETING2/* 触摸笔拖动 */结构体定义如下:typedef struct unsigned short pressure;/* 触摸笔动作

37、*/unsigned short x;/* 触点x座标值 */unsigned short y;/* 触点y座标值 */unsigned short pad;TS_RET打开应用程序,如图5.1所示。图5.1 打开应用程序实验结果显示,如图5.2所示。图5.2 实验结果显示6 结束语为期几天的课程设计结束了,再次期间我积极亲自实验,用的目标板是s3c2410核心子板,用JTAG仿真器,用Cygwin模拟软件来学习触摸板的设计。我学会了很多,学会了很多。首先我扪主要了解整个设计过程,以及实验环境的建立,这次用的是交叉编译环境,通过这次课设我更清楚搭建嵌入式系统的开发平台,我们用的目标板是s3c2

38、410核心子板,用JTAG仿真器,用Cygwin模拟软件,课设的这几天我学会了熟练的使用Cygwin软件,掌握了一些常用的命令,加上研究生学长给我们的指导,知道了如何学习,如何思考,知道了运linux操作系统开发嵌入式与wince操作系统开发嵌入式的区别。其次是学会vivi,内核,根文件系统的编译与移植(烧写),通过这个过程我熟悉了怎么把软件固化到硬件上,知道了软件怎么控制硬件,这个步骤很重要,要烧写不成功,目标板系统就运行不起来,实验就失败了,这个过程我们练习了好多变呢,大家都很累哦!再次我们就开始写我们的应用程序,通过以上步骤实验系统搭建好了,只要调试好应用程序,然后再运行成功就行了,为此

39、我又把课本上讲得触摸屏原理那章认真看了,又看了实验指导书,查资料,上网搜索,终于编出应用程序,经过不断的调试才编译成功,这个过程太辛苦了,加上实验板不太好,真是对我们的挑战,不过看到运行的结果,大家都很高兴,也很有成就感啊!还看懂了一些s3c2410的驱动程序的源代码,了解了s3c2410一些控制器的使用,以及s3c2410A的一些接口原理与应用。我明白了只有不断的努力,不断的学习,才能在将来遇到的问题中能够游刃有余,才能够不会捉襟见肘。致 谢在这次课程设计的撰写过程中,我得到了许多人的帮助。首先我要感谢汤强老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因

40、,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。其次,我要感谢帮助过我的同学,他们也为我解决了不少我不太明白的设计商的难题。同时也感谢学院为我提供良好的做课程设计的环境。参考文献 1 谭爱国基于ARM单片机的触摸屏嵌入式系统设计 J 电脑开发与应用, 2005( 8) : 46-47 2 刘显荣基于S3C2410的触摸屏控制 J 微计算机信息, 2007( 5) : 184 3 孙天泽, 袁文菊, 张海峰嵌入式设计及Linux驱动开发指南M北京: 电子工业出版社, 2005. 4 程昌南,方强等

41、ARM Linux入门与实践 M 北京:北京航空航天大学出版社,2008.10 5 张晓林等嵌入式系统设计与实践 M 北京:北京航空航天大学出版社,20061 6 李俊等嵌入式Linux设备驱动开发详解 M 北京:北京人民邮电出版社,20083 7 黄智伟,邓月明,王彦 ARM9嵌入式系统设计基础教程 M 北京:北京航空航天大学出版社,20088 8 美Wayne Wolf嵌入式计算系统设计原理 M 孙玉芳, 梁彬 罗保国 等译. 北京: 机械工业出版社, 2002 9 李剑, 赵鹏程, 汤建彬32位ARM嵌入式处理器的调试技术 M 电子技术应用, 2003, (3) 10 钟汉如, 王创生嵌入式Linux的中断处理与实时调度的实现机制 M 计算机工程, 2002, 28(10) 11 Arnold Berger嵌入式系统设计 M 吕骏译北京: 电子工业出版社, 2002

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1