毕业设计(论文)-基于嵌入式系统的电子阅读器.doc_第1页
毕业设计(论文)-基于嵌入式系统的电子阅读器.doc_第2页
毕业设计(论文)-基于嵌入式系统的电子阅读器.doc_第3页
毕业设计(论文)-基于嵌入式系统的电子阅读器.doc_第4页
毕业设计(论文)-基于嵌入式系统的电子阅读器.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京林业大学本科毕业论文(设计) 基于嵌入式系统的电子阅读器 全套设计加扣3012250582 摘要 随着科技的快速发展,嵌入式系统以其速度快、专用性强、系统精简和高实时性的特点被越来越多的技术开发人员所喜爱。特别是与网络通信技术、信号处理技术等不同技术领域的相互融合,嵌入式技术已经成为一种集自动控制、网络控制、信号处理、人机互动等功能为一体的综合性技术,其应用范围非常广泛,无论工业、通信、家居、医疗还是办公,处处可见嵌入式系统的身影。嵌入式电子阅读器是在Linux下一个集TXT、PDF等多种文本格式于一体的文本阅读软件,出于满足人们对阅读方式便捷的追求,现已成为人们生活中必不可少的一部分。 本文将采用硬件平台以S3C2410为内核的ARM9博创嵌入式开发板,通过开发板的串行接口获取参数,再由嵌入式Linux操作系统负责底层硬件的初始化、运行管理和系统的整体调度与控制。利用C、C+语言编写应用程序,通过诺基亚开发的Qt界面进行实时操作。 关键词:嵌入式,Linux,ARM9,LED,Qt II Electronic reader based on embedded systemAbstract With the rapid development of science and technology, the embedded system to streamline its fast speed, strong specificity, system and the characteristics of high real time capability is enjoyed by more and more technology developers. Especially with different technology such as network communication technology, signal processing technology in the field of mutual integration, embedded technology has become a set of automatic control, network control, signal processing, human-computer interaction, and other functions of an integrated technology, its application range is very wide, regardless of industry, communication, household, medical or office, everywhere the figure of the embedded system. Electronic reader is embedded in the Linux next integrating TXT, PDF and other text format text reading software, for satisfy people pursuit of reading is convenient, has now become an indispensable part of people life.Hardware platform is adopted in this paper with ARM9 S3C2410 as the kernel bo gen embedded development board, through the serial interface to get parameters of development board, and the embedded Linux operating system is responsible for the initialization of the underlying hardware, operation management and the overall scheduling and control system. Written using C, C + + language application, through the development of Nokia Qt interface in real-time operation.Key words:Embedded Linux, ARM9, LED, Qt目录第1章 绪论1 1.1课题研究的背景1 1.1.1 产业背景1 1.1.2 技术背景1 1.2嵌入式电子阅读器2 1.3项目意义3 1.4研究的主要内容3第2章 嵌入式电子阅读器的设计方案4 2.1 嵌入式操作系统的选型4 2.2嵌入式硬件平台4 2.2.1嵌入式开发平台介绍4 2.2.2处理器的选择6 2.2.3 LCD显示模块9 2.2.4触摸屏显示模块11 2.3嵌入式电子阅读器的设计流程13第3章 嵌入式电子阅读器图形界面平台的搭建14 3.1 Qt的选择14 3.2安装与建立Qt桌面运行环境14 3.3 Qt Designer简介15 3.4移植QT/E到ARM设备16 3.4.1编译QT/E环境16 3.4.2编译QT/E程序到ARM设备上运行17第4章 嵌入式电子阅读器程序的测试与运行18 4.1 Qt环境的测试与运行18 4.1.1 Qt环境的搭建18 4.1.2 Qt Designer的使用19 4.2 Qt的信号与槽机制介绍21 4.2.1信号介绍22 4.2.2槽介绍22 4.2.3信号与槽的连接23 4.2.4编写自定义信号与槽23 4.3 电子阅读器效果的测试与运行24 4.3.1 图片翻页效果的测试与运行24 4.3.2文档翻页效果的测试与运行25第5章 结论与展望29 5.1 结论29 5.2展望29 5.3心得29致谢31参考文献32IV第1章 绪论 目前各种各样的嵌入式系统大量应用到各个领域,从国防武器设备、网络通信设备到智能仪器、日常消费电子设备,再到生物微电子技术,嵌入式产品已经渗透到人类生活的各个领域。1.1课题研究的背景1.1.1 产业背景 曾在2009年,电子书阅读器成为当下一个热门的话题。以亚马逊的电子书阅读器Kindle为代表的阅读器产品走向市场并成为市场上抢手的产品。电子书阅读器产业的发展带动了真正的电子图书个人消费的增长,使得电子图书从B2B市场开始走向B2C市场,从而也推动了整个出版产业的数字化进程。此后,国内电子书行业发展增速日益迅猛,据相关调研机构显示,仅2011年,我国电子书阅读器销量将从2010年的80万台增加到300万台,达到全球市场的20%左右。1良好的市场前景吸引了众多厂商加入其中,群雄逐鹿的竞争愈演愈烈,日本的索尼、中国的汉王等。 因此,研究和设计一款功能齐全、扩展丰富、价格低廉的电子阅读器,已成为嵌入式技术领域的一项热门课题。1.1.2 技术背景(1)嵌入式系统概述嵌入式系统被描述为:以应用为中心,以计算机技术为基础,软硬件可裁剪的,适用于对功能、可靠性、成本、体积等方面有特殊要求的专用计算机系统。嵌入式系统与通用计算机系统的本质区别在于系统应用不同,嵌入式系统是将一个计算机系统嵌入到对象系统中,这个对象可能是庞大的机器,也可能是小巧的手持设备,用户并不关心这个计算机系统的存在。 在计算机后 PC 技术时代,嵌入式系统将拥有最大的市场。计算机和网络已经全面渗透到日常生活的每一个角落。各种各样的新型嵌入式系统设备在应用数量上已经远远超过通用计算机,任何一个普通人可能拥有从大到小的各种使用嵌入式技术的电子产品,小到 MP3、PDA 等微型数字化产品,大到网络家电、智能家电、车载电子设备。而在工业和服务领域中,使用嵌入式技术的数字机床、智能工具、工业机器人、服务机器人也将逐渐改变传统的工业和服务方式2。 美国著名的未来学家尼葛洛庞帝在 1999 年访华时曾预言,45 年后嵌入式系统将是继PC 和 Internet 之后最伟大的发明。这个预言已经成为现实,现在的嵌入式系统正处于高速发展阶段。(2)嵌入式系统的定义3根据美国电气和电子工程师协会(IEEE)的定义,嵌入式系统是用来控制、监视或辅助设备、机械或工厂操作的装置。中国计算机学会微机专业委员会的定义是,嵌入式是以嵌入式应用为目的的计算机系统,可以分为系统级、板级和片级。(3)嵌入式系统的体系结构 嵌入式系统的硬件平台是以嵌入式处理器为核心,由存储器、I/O单元电路、通信模块、外部设备等必要的辅助接口组成的,如图1.1所示。 电源模块 Flash 外围电路 微处理器 ROM 时钟 MPU RAM 复位 外设 USB 其他 键盘LCD触摸屏图1.1 嵌入式系统的体系结构Fig1.1 The architecture of embedded system 不同的应用通常有不同的硬件环境,硬件平台的多样性是嵌入式系统的一个主要特点。在实际应用中,除了微处理器和基本的外围电路以外,其余的电路都可以根据需要和成本进行裁剪和定制。 (4)嵌入式系统的设计过程 嵌入式系统的设计可以分为3个阶段:分析、设计和实现。 分析阶段是确定要解决的问题及需要完成的目标,也常常称为需求阶段。 设计阶段主要是解决如何在给定的约束条件下完成用户的要求。 实现阶段主要是解决如何在所选择的硬件与软件的基础上进行整个软、硬件系统的协调实现。 在分析阶段结束后,设计者所面临的重要问题就是硬件平台和软件平台的选择,因为它的好坏直接影响着实现阶段的任务完成。 1.2嵌入式电子阅读器 电子阅读器,即Electronic Reader,是能够存储并显示各种格式的电子读物,具有阅读管理以及操作界面,以阅读为主要功能的专用显示设备,是电子书的一种新型显示介质和阅读载体。 嵌入式系统是以应用为中心,软硬件可裁减的系统。该系统集系统的应用软件与硬件于一体,具有软件代码小,高度自动化,响应速度快等特点,并因为这些显著的特点在当今社会中得到了日益广泛的应用。因此,以嵌入式系统为核心进行电子阅读器设计,不但可以充分利用嵌入式系统本身软硬件可裁减的特点,获得体积小、成本低、便于携带的电子阅读器产品,又因为嵌入式系统开发本身的技术成熟性,可以让开发者在设计的过程中不会有很大的工作量。1.3项目意义 电子阅读器是一种新兴产物,相比于传统的纸质书籍具有存储容量大、利用环保、便于携带等优点,它给人们的阅读方式、阅读习惯、甚至阅读文化带来一次新的变革,具有巨大的市场潜力。4 研究和设计一款功能齐全、扩展丰富、价格低廉的电子阅读器,已成为嵌入式技术领域的一项热门课题。 所以,嵌入式电子阅读器以其实用、方便的特点已成为大多数人们生活工作中理想的阅读伴侣。本设计将实现阅读器的图片以及文档的触摸翻页的功能。随着人们生活水平的不断提高,人们对阅读方式多样性的需求不断提升,这也需要文本阅读软件开发人员紧随时代的步伐,不断完善和丰富文本阅读软件的功能,极具潜在商业价值。 1.4研究的主要内容本文的嵌入式电子阅读器是基于Qt4.5 for Embedded Linux 电子阅读器,采用开源的Linux和免费的嵌入式Qt软件资源,基于博创S3C2410开发平台。利用文件判别及解析技术,实现PDF,HTML,TXT等文件格式以及JPG,GIF,PNG等图片格式支持和文本编辑功能。模块化的设计,充分考虑了软件系统自身所占的存储空间以及可扩展性;Qt界面的使用,使图形用户界面汉化、美观,易于使用;触摸屏的设计,实现了人机交互,符合电子产品的发展趋势和人们的使用习惯。 第2章 嵌入式电子阅读器的设计方案 2.1 嵌入式操作系统的选型 据调查,目前全世界的嵌入式操作系统已经有两百多种。有很多商业的嵌入式操作系统,也有大量开放源码的嵌入式操作系统,其中著名的嵌入式操作系统有C/OS、VxWorks、Neculeus、Linux和Windows CE等。 在所有的操作系统中,Linux是一个发展最快、应用最广泛的操作系统。Linux本身的种种特性使其成为嵌入式开发者的首选,无论是在传统的计算机行业,还是在智能手机等领域。 相比于其他操作系统,从软件开发者的角度看,Linux操作系统有以下几个基本特点5:源代码开放,成本低,并且有着丰富的软件资源。由于嵌入式系统的硬件千差万别,往往需要针对应用系统进行定制,因此源代码对于开发者来说是非常重要的。由于有丰富的软件资源,开发基于Linux的程序往往可以借鉴已有的类似的自由软件,而不需要从头做起,节省了开发时间。Linux的源代码开放,无需版权税,在产品成本上有很大的优势。裁剪性。由于Linux系统高度的模块化,非常灵活,可以根据需要进行定制,以适应产品的需要。完善的通信、图形和文件管理功能。Linux提供完善的网络通信机制。有Qt、Mini GUI等嵌入式的GUI,支持ext2、FAT、ROMFS等多种文件系统。驱动程序丰富。Linux支持如x86、ARM、MIPS、ALPHA等体系结构,目前Linux系统已经被移植到各种平台上。所以,基于它属于自由软件以及它具有Unix的全部功能,我们的嵌入式电子阅读器采用Linux操作系统。2.2嵌入式硬件平台2.2.1嵌入式开发平台介绍 我们所介绍的硬件平台是基于ARM体系结构,由北京博创兴业科技有限公司开发的UP-NetARM3000系列的实验仪器UP-TECH S2410,内部结构如图2.1所示:图2.1 开发板外观结构图Fig2.1 Development board exterior structure开发平台主板资源6: 8寸640*480TFT真彩LCD 触摸屏 PS2鼠标键盘接口(MEGA8扩展) IDE接口17键数字键盘(MEGA8扩展)4个主USB口、1个从USB口 2位LED数码管(CPLD驱动)一个100M网卡,另预留一个100M网卡 实时时钟 2个RS232标准串口 IC卡接口 1个RS485接口 CAN总线接口 SD/MMC 接口 32位总线和可复用资源168Pin扩展接口 CF卡接口(PC Card模式) 板载UP-LINK JTAG调试器,另有20Pin标准仿真器接口 AD电位器 VGA接口和视频信号输出 DA接口直流电机模块(闭环测速功能) IIC接口IIC存储器2片 SPI接口 PWM DA输出 IIS音频CODEC / AC97 音频CODEC 88矩阵LED显示模块(CPLD驱动) 立体声耳机、线路、MIC接口 1个可产生中断的按键 红外通信IrDA 3个IO控制的LED 8通道10位AD转换 /AC97 AD输入2.2.2处理器的选择 目前微处理器一般采用的是8位MCS51单片机,此类单片机应用广泛,价格相对较低,发展也较成熟,是低端方案的首选。低端方案虽然能够实现系统的基本功能,但是却不能保证系统对实时性、大量数据的处理能力、扩展接口等各方面的要求,故考虑采用高端方案32位RISC处理器,嵌入式处理器ARM7。(1)ARM处理器 ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。ARM 处理器是一种低功耗高性能的 32 位RISC 处理器,ARM 处理器是一个综合体。ARM处理器以低功耗、低成本、实用性强为特点,并以优异的产品性能著称于世,是目前32位、64位嵌入式微处理器中应用最广泛的一个系列。 ARM处理器目前包括以下几个系列:ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、SecurCore系列、Intel的StrongARM和Intel的Xscale。其中,ARM7系列、ARM9系列、ARM9E系列和ARM10E系列是4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不用应用领域的需求,如表2.1所示8。系列架构特点ARM7ARMv4T3级流水线,ARM7EJ采用ARMv5TE架构ARM9ARMv4T5级整数流水线ARM9EARMv5TE支持DSP指令集,适合于高速数字信号处理的场合,5级整数流水线ARM10EARMv5TE支持DSP指令集,适合于高速数字信号处理的场合,5级整数流水线ARM11ARMv68级整数流水线,单指令发射,分支预测,非阻塞和缺失命中操作,并行流水线处理,乱序执行,局部使用64位结构SecurCoreARMv7Thumb-2技术,采用NEON技术,支持改良的浮点运算XscaleARMv5TEIntel,支持DSP指令集表2.1 ARM系列Table2.1 ARM series (2)ARM9处理器 ARM9系列处理器在高性能和低功耗特性方面提供最佳的性能,具有以下特点9:5级整数流水线,指令执行效率更高;提供1.1MIPS/MHz的哈佛结构;支持32位ARM指令集合16位Thumb指令集;支持32位的高速AMBA总线接口;全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统;MPU支持实时操作系统;支持数据Cache和指令Cache,具有更高的指令和数据处理能力。 ARM9系列处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄影机等。我们可以选择ARM9微处理器系列来设置显示接口,实现系统状态在液晶屏上的数字、图形化显示。(3)三星ARM9系列处理器 三星的ARM9系列处理器速度从200MHz到533MNz,是目前世界上最快的移动处理芯片,也是世界上唯一集NAND FLASH以及MSDRAM于一身的芯片。下表2.2中列出了三星公司的ARM控制器产品10。器件型号ARM核工作频率S3C2450ARM926EJ400/533MHzS3C2416ARM926EJ266/400MHzS3C6410ARM1176533/667MHzS3C6400ARM1176533/634MHzS3C2443ARM920T400/533MHzS3C2442ARM920T300/400MHzS3C2440ARM920T300/400MHzS3C2413ARM926EJ266MHzS3C2412ARM926EJ200/266MHzS3C2410ARM920T200/266MHzS3C44B0ARM7TDMI66MHzS3C3410ARM7TDMI40MHz表2.2 ARM控制器产品系列Table2.2 ARM controller product line(4) S3C2410处理器 S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,采用FBGA封装、0.18um制造工艺的32位微控制器。S3C2410处理器最高可运行在203MHz。S3C2410处理器拥有独立的16KB指令Cache和16KB数据Cache,MMU,支持TFT的LCD控制器,NAND闪存控制器,3路UART,4路DMA,4路带PWM的Timer ,I/O口,RTC,8路10位ADC,Touch Screen接口,IIC-BUS 接口,IIS-BUS 接口,2个USB主机,1个USB设备,SD主机和MMC接口,2路SPI。其片上功能如下11: 内核工作电压为 1.8/2.0V、存储器供电电压 3.3V、外部 I/O 设备的供电电压 3.3V; 16KB 的指令 Cache 和 16KB 的数据 Cache; LCD 控制器,最大可支持 4K 色 STN 和 256 色 TFT; 4 通道的 DMA 请求; 3 通道的 UART(IrDA1.0、16 字节 TxFIFO、16 字节 RxFIFO),2 通道的 SPI 接口; 2 通道的 USB(Host/Slave); 4 路 PWM 和 1 个内部时钟控制器; 117 个通用 I/O,24 路外部中断; 272Pin FBGA 封装; 16 位的看门狗定时器; 1 通道的 IIC/IIS 控制器; 带有 PLL 片上时钟发生器。 所以,S3C2410为手持设备和一般类型的应用提供了低价格、低功耗、高性能微控制器的解决方案。其内容结构如图2.2所示:图2.2:S3C2410内部结构图Fig2.2:S3C2410 internal structure2.2.3 LCD显示模块 LCD显示屏能够显示大量的信息。例如各种数据、文字、曲线、图形等,显示的自由度大,可以处理多种的视频和图片信息,比传统的数码管显示界面有了本质上的提高。本设计采用开发板上自带的TFT型4.3寸LCD显示屏。(1) 系统结构框图 如图2.3所示: SDRAM 显示缓存 电源 数据线DATA31:OTFT LCD 地址线 S3C2410 LCD驱动器 数据线 LCD控制器 控制线 时钟线 图2.3:系统结构框图Fig2.3:System structure diagram(2) LCD控制器 LCD控制器由REGBANK、LCDCDMA、VIDPRCS、TIMEGEN和LPC3600组成12 如图2.4所示。图2.4:LCD控制器的组成结构Fig2.4:The composition of the LCD controller structure REGBANK有17个可编程寄存器和25616的调色板存储器,用来设定LCD控制器。LCDCDMA是一个专用DMA,自动从帧存储器传输视频数据到LCD控制器,用这个特殊的DMA,视频数据可不经过CPU干涉就显示在屏幕上。VIDPRCS接受从LCDCDMA来的视频数据并在将其改变到合适数据格式后经VD23:0将之送到LCD驱动器,如4/8单扫描或4双扫描显示模式。TIMEGEN由可编程逻辑组成,以支持不同LCD驱动器的接口时序和速率的不同要求。TIMEGEN产生VFRAME、VLINE、VCLK、VM信号等。(3) LCD工作的硬件需求 一块LCD 屏显示图像,不但需要LCD 驱动器,还需要有相应的LCD 控制器。通常LCD 驱动器会以COF/COG 的形式与LCD 玻璃基板制做在一起,而LCD 控制器则有外部电路来实现。而S3C2410 内部已经集成了LCD 控制器,因此可以很方便地去控制各种类型的LCD 屏,例如:STN 和TFT 屏13。STN 屏:支持3 种扫描方式:4bit 单扫、4 位双扫和8 位单扫支持单色、4 级灰度和16 级灰度屏支持256 色和4096 色彩色STN 屏(CSTN)支持分辩率为640*480、320*240、160*160 以及其它规格的多种LCDTFT 屏:支持单色、4 级灰度、256 色的调色板显示模式支持64K 和16M 色非调色板显示模式支持分辩率为640*480,320*240 及其它多种规格的LCD由于TFT 屏将是今后应用的主流,因此接下来,重点围绕TFT 屏的控制来进行。2.2.4触摸屏显示模块 触摸屏技术是一种新型的人机交互方式,与传统的键盘和鼠标输入方式相比,触摸屏输入更直观。触摸屏由安装在LCD屏幕前面的检测部件和触摸屏控制器组成。当手指或其他物体触摸安装在显示器前端的触摸屏时,所触摸的位置由触摸屏控制器检测,并通过借口送到主机。其主要功能是传达指示信息。触摸屏的(X,Y)坐标与LCD屏上的(X,Y)坐标有一定的关系,这样触摸屏一旦被触摸,便可在LCD屏上显示出所要的信息。 我们把触摸屏分为四种,它们分别为电阻式、红外线式、电容感应式以及表面声波式,因为实验中将用到电阻式触摸屏,下面仅就电阻式触摸屏进行简要介绍14:(1)电阻式触摸屏 电阻触摸屏的屏体部分是一块与显示器表面非常配合的多层复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的导电层(OTI,氧化铟),上面再盖有一层外表面硬化处理、光滑防刮的塑料层,它的内表面也涂有一层OTI,在两层导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔开绝缘。当手指接触屏幕,两层OTI导电层出现一个接触点,因其中一面导电层接通Y轴方向的5V均匀电压场,使得侦测层的电压由零变为非零,控制器侦测到这个接通后,进行A/D转换,并将得到的电压值与5V相比,即可得触摸点的Y轴坐标,同理得出X轴的坐标,这就是电阻技术触摸屏共同的最基本原理。(2)绝对坐标系统 我们传统的鼠标是一种相对定位系统,只和前一次鼠标的位置坐标有关。而触摸屏则是一种绝对坐标系统,要选哪就直接点哪,与相对定位系统有着本质的区别。绝对坐标系统的特点是每一次定位坐标与上一次定位坐标没有关系,每次触摸的数据通过校准转为屏幕上的坐标,不管在什么情况下,触摸屏这套坐标在同一点的输出数据是稳定的。不过由于技术原理的原因,并不能保证同一点触摸每一次采样数据相同的,不能保证绝对坐标定位,点不准,这就是触摸屏最怕的问题:漂移。对于性能质量好的触摸屏来说,漂移的情况出现的并不是很严重。(3)接口电路 触摸屏与S3C2410的接口电路原理如图2.5所示。四线电阻式触摸屏提供XP,XM,YP,YM四个接口,其中XP,YP分别为触摸屏被按下时X,Y的坐标模拟量输入,该输入通过AIN7与AIN5传递给S3C2410o XM,YM可以被设置为接地或高阻,适应不同的工作模式。XP,XM,YP,YM山外部晶体管控制寄存器通过控制图中的4个MOS晶体管完成工作模式的选择15。图2.5 触摸屏与S3C2410的接口电路原理图Fig2.5 Touch screen and S3C2410 interface circuit principle diagram 本文的触摸屏采用是电阻式触摸屏,当手指按下去时,电阻发生变化,而加在这些电阻上的电压即发生变化,通过AD转换即可捕捉电压的变化。2.3嵌入式电子阅读器的设计流程 本文的最终设计方案为:硬件平台采用以S3C2410为内核的AMR9开发板,通过开发板的串行接口获取数据。由嵌入式Linux操作系统负责底层硬件的初始化、运行管理以及系统的真题调度与控制,同时利用系统接口函数编写应用程序,在TFT液晶显示屏上显示。如图2.6所示: LCD 应用程序 嵌入式Linux操作系统以S3C2410为核心嵌入式处理器平台 移动存储设备图2.6 电子阅读器设计流程图Fig2.6 Electronic reader design flow chart 第3章 嵌入式电子阅读器图形界面平台的搭建3.1 Qt的选择 Qt是基于C+的一种语言。Qt的好处就在于Qt本身可以称作是一种C+的延伸,Qt中有数百个class都是用C+写出来的,这也就是说,Qt本身就具备了C+的快速、简易等优点。 Qt具有非常好的可移植性。Qt不只是可以在Linux中运作,也同样可以在Microsoft Windows中,这也意味着,利用Qt编写出来的程序,在几乎不用修改的情况下,就可以同时在Linux和Microsoft Windows中运行,Qt的应用很广泛。 简而言之,Qt是一个跨平台的C+图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,和容易扩展,并且允许真正的自检编程16。 Qt是诺基亚公司的产品。Qt分为商业版和开源版,在本实验中我们所使用的是Qt开源4.4.0版本。3.2安装与建立Qt桌面运行环境 在Trolltech公司的网站上可以下载该公司所提供的Qt/Embedded的免费版本,在安装产品光盘后,本次实验目录下已有要下载的文件,在arm2410cl/gui/src下。在做实验前把本次实验用到的qt-x11-opensource-src-4.4.0.tar.gz文件拷贝到/home/sprife/qt4/for_pc目录下。# cp /arm2410cl/gui/Qt/src/qt-x11-opensource-src-4.4.0.tar.gz./#tar xzvf qt-x11-opensource-src-4.4.0.tar.gz#cd qt-x11-opensource-src-4.4.0.tar.gz#./configure -prefix /user/local/Trolltech/Qt-x11-4.4.0#gmake#gmake install出现安装提示时选择yes注意大小写,我们选择小写./configure是对Qt进行配置,它包括很多选项,如果想进一步了解可以通过输入命令./configure-help来获得更多的帮助信息。gmake与gmake install命令分别是编译和安装Qt环境。编译工具qmake可以采用全路径的方法,也可以把qmake的路径添加到PATH环境变量中来使用,这样比较方便,无需敲出很繁琐的路径。 如果上面各步骤都能够成功的编译通过,那么就可以通过运行Qt/Embedded自带的demo来查看运行结果。 3.3 Qt Designer简介 Qt提供了非常强大的GUI编辑工具Qt设计器,Qt Designer,它的操作界面类似于windows下的visual studio,而且它还提供了相当多的部件资源。Qt允许程序员不通过任何设计工具,以纯粹的C+代码来设计一个程序。以Qt设计器生成的界面组件最终被变成C+代码,因此Qt设计器可以被用在一个传统的工具链中,并且它是与编译器无关的17。 我们通过图3.1所示,来了解Qt Designer的基本界面情况。图3.1 Qt Designer的基本界面Fig3.1 Qt Designers basic interface控制拖住窗口:分为八组类别,每组里面的控件(如我们将用到的按钮、框架等)可以直接拖拽到中间的窗口编辑区。对象关系结构窗口:显示的是从属结构。对象属性窗口:显示的是某个部件的属性。信号与槽编辑窗口:信号与槽的编辑方式有4种,拖拽、在编辑窗口自行添加,右键“转到槽”和在C+代码中用connect函数。在具体情形下自主进行选择。3.4移植QT/E到ARM设备3.4.1编译QT/E环境(1) 拷贝并解压QT/E库及触摸屏库到实验目录for_arm#cp /arm2410cl/gui/Qt/src/qt-embedded-linux-opensource-src-4.4.0.tar.bz2./#cp /arm2410cl/gui/Qt/src/tslib-1.4.tar.bz2./#tar xjvf qt-embedded-linux-opensource-src-4.4.0.tar.bz2#tar xjvf tslib-1.4.tar.bz2(2) 编译tslib.4触摸屏库#vi build.sh#./build.sh(3) 编译QT/E库#cp -a tslib.4-install/lib/* qt-embedded-linux-opensource-src-4.4.0/lib/#cp -a tslib.4-install/include/ts* qt-embedded-linux-opensource-src-4.4.0/include/#./configure -embedded arm -xplatform qws/linux-arm-g+ -depths 16-little-endian -qt-mouse-linuxtp -qt-mouse-tslib -I/home/sprife/qt4/for_arm/tslib.4-install/include-L/home/sprife/qt4/for_arm/tslib.4-install/lib -prefix/mnt/nfs/Trolltech/qt-embedded-4.4.0#make#make install(4) 测试触摸屏及QT/E程序建立NFS共享目录#cp /home/sprife/qt4/for_arm/qt-embedded-linux-opensource-src-4.4.0/lib ./-arf#cp /home/sprife/qt4/for_arm/tslib.4-install/etc/ ./-arf#cp /home/sprife/qt4/for_arm/tslib.4-install/bin/ ./-arfARM端挂载NFS共享目录#mount -o nolock,rsize=4096,wsize=4096 192.168.1.111:/arm2410cl /mnt/nfs具体Linux主机IP需要具体配置设置环境变量#export#insmod /mnt/yaffs/touchscreen/ts-uptech.o执行触摸屏校准程序#./bin/ts_calibrate执行QT/E带触摸屏的例子程序#./digitalclock -qws如果想让QT/E在ARM端支持USB鼠标,可以在ARM端配置环境变量#export QWS_MOUSE_PROTO=MouseMan:/dev/input/mouse0实验中具体用到的触摸屏及鼠标设备要根据具体设备而定义。3.4.2编译QT/E程序到ARM设备上运行在arm端设置ip地址ifconfig eth0 192.168.1.13在arm端mountmount -t nfs -o nolock -o tcp 192.168.1.12:/arm2410cl /mnt/nfs/如果mount不成功,需要在虚拟机端输入以下命令:/etc/init.d/nfs restart/etc/init.d/portmap restart/etc/init.d/nfslock restartroute del defaultmount成功后,在arm端/mnt/nfs目录下可以看到Qt的架构文件在虚拟机端将交叉编译过的wiggly拷贝到/arm2410cl/Trolltech/qt-embedded-4.4.0/在arm端/mnt/nfs/Trolltech/qt-embedded-4.4.0/可以看到wiggly在arm端,设置环境变量:#cd /mnt/nfs/Trolltech/qt-embedded-4.4.0#export QTDIR=$PWD#export LD_LIBRARY_PATH=$PWD/lib#export TSLIB_TSDEVICE=/dev/input/event0在arm端/mnt/nfs/Trolltech/qt-embedded-4.4.0/目录下,运行./wiggly -qws以上操作均运行正确后,便可在ARM设备的LCD屏上看到效果。第4章 嵌入式电子阅读器程序的测试与运行4.1 Qt环境的测试与运行4.1.1 Qt环境的搭建#include #include int main (int argc,char *argv);QApplication app(argc,argv);QLabel *label=new QLabel (“Hello Qt!”);Label-show();Return app.exec();注意事项:对于每一个Qt类,都会有一个同名的头文件,有文件包含了这个类的定义。所以,你如果在程序中使用了一个类的对象,那么在程序忠就必须包括这个头文件。几乎在使用Qt的所有情况下,main()函数只需要在把控制权转交给Qt库之前执行一些初始化,然后Qt库通过事件来向程序告知用户的行为。QApplication管理了各种各样的应用程序的广泛资源,比如默认的字体和光标,在每一个使用Qt的应用程序中都必须使用一个QApplication对象,并且在任何Qt的窗口系统部件被使用之前创建此对象是必须的。当窗口部件(widget)被创建的时候,它总是隐藏的,必须调用show()来使他它可见。通过这个特点我们可以在显示这些窗口部件之间前定制它们呢,这样就不会出现闪烁的情况。为了简单起见,我们没有在main()函数的结尾处调用delete来删除QLabel对象,这种内存泄露是无害的,因为类似于这样的小程序,在结束时操作系统将会释放程序占用的内存堆。 下面我们来编译这个程序,建立一个名为hello的目录,在目录下建立一个名为hello.cpp的c+源文件。#mkdir hello#vi hello.c#qmake-project#qmake#make运行程序,结果如图4.1所示,此时Qt环境已经在Linux操作系统上搭建好。图4.1 “你好,Qt!”Fig4.1 “hello,Qt!”4.1.2 Qt Designer的使用 默认情况下,Qt Designer的用户界面是有几个顶级的窗口共同组成的。如果你更习惯于一个MDI-style(由一个顶级窗口和几个字窗口组成的界面),可以在菜单Edit-User Interface Mode中选择Docked Window来切换界面。 不管我们是使用Qt Designer还是编码来实现一个对话框,都包括以下相同的步骤:创建并初始化子窗口部件。将子窗口部件放置到布局当中。对Tab的顺序进行设置。放置信号和槽的连接。完成对话框的通用槽的功能。 首先在目录qt4/for_pc/qt-x11-opensource-src-4.4.0/bin下找到designer文件,执行将弹出图4.2所示的designer界面。图4.2 Qt Designer布局框图Fig4.2 Qt Designer layout diagram 首先选择一个窗口布局Widge 点击-创建,拖拽几个简单的控件(TextEdit、PushBotton、TextLabel)进行界面设计,接下来建立信号与槽之间的两组连接:clicked-clear,clicked-close,最后退出界面编辑保存为UI格式。 我们在Linux系统上运行Qt Designer并按照上述步骤进行文本框的部署:#/home/spr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论