华中农业大学本科毕业论文(或设计)
1 前言
1.1 课题研究背景和意义
随着嵌入式产品的发展,往往要求嵌入式操作系统有网络和图形的功能。利用源代码开放的Linux搭建的嵌入式操作系统,由于强大的网络功能和低成本,近来得到了越来越多的应用。其能够提供全功能的桌面计算,定制非常方便并且支持大多数嵌入式系统上使用的芯片,包括Strong ARM,MIPS和Power PC等。在嵌入式Linux操作系统上使用一个功能完备的轻量级、高性能、高可靠、可配置的GUI系统成为可行的解决方案(丁丁,2004)。
虽然市场上现在已经有了众多的优秀的GUI应用软件,但随着近年来计算机技术的迅速发展,当新硬件、新技术出现时,计算机的体系结构、指令系统和操作系统都可能发生相应的改变,这势必会导致一部分应用软件在新环境下无法正常运行。如果舍弃原有软件而重新开发,将会耗费大量的人力和资金,而且浪费了许多成熟的软件成果。
而Qt在源代码级上实现了跨平台特性,极大的支持了跨平台通用软件的开发。Qt可以用同一个源程序在不同平台上编译链接,生成目标代码,并取得相同的运行效果,称为“一次编写,随处编译”,利用这种方法充分实现了程序的跨平台运行。这种基于源代码的跨平台特性不仅解决了性能的问题,而且可以发挥各个平台的优势,充分利用每个平台自身的特点;并且即可以在新环境下实现原有软件的功能和特点,减少开发费用,还可以改进原有软件的不足,增加新的需求,从而提高软件的质量,延长软件生命期。
因此,利用Linux下基于Qt的嵌入式终端应用程序开发是一个非常有意义的课题,具有重要的研究和商业价值。
1.2 嵌入式软件技术发展现状与未来
1.2.1 标志性的嵌入式产品已露头角
全过程自动化产品制造、大范围电子商务活动、高度协同科学实验以及现代化家庭起居,为嵌入式产品造就了崭新而巨大的商机。除了沟通信息高速公路的交换机、路由器和Modem,构建CIMS所需的DCS和机器人以及规模较大的家用汽车电子系统。最有量产效益和时代特征的嵌入式产品应数因特网上的信息家电(Internet Appliances),如Web可视电话、Web游戏机、Web PDA(俗称电子商务、商务通)、WAP电话手机、以及多媒体产品,如STB(电视机顶盒)、DVD播放机、电子阅读机。
6
华中农业大学本科毕业论文(或设计)
1.2.2 嵌入式软件技术面临挑战
以信息家电为代表的互联网时代嵌入式产品,不仅为嵌入式市场展现了美好前景,注入了新的生命;同时也对嵌入式系统技术,特别是软件技术提出新的挑战。这主要包括:支持日趋增长的功能密度、灵活的网络联接、轻便的移动应用和多媒体的信息处理,此外,当然还需对付更加激烈的市场竞争。主要从以下几个方面体现出来:
(1) 嵌入式应用软件的开发需要强大的开发工具和操作系统的支持 随着因特网技术的成熟、带宽的提高,ICP和ASP在网上提供的信息内容日趋丰富、应用项目多种多样。像电话手机、电话座机及电冰箱、微波炉等嵌入式电子设备的功能不再单一,电气结构也更为复杂。为了满足应用功能的升级,设计师们一方面采用更强大的嵌入式处理器如32位、64位RISC芯片或信号处理器DSP增强处理能力;同时还采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期。
(2)联网成为必然趋势
为适应嵌入式分布处理结构和应用上网需求,面向21世纪的嵌入式系统要求配备标准的一种或多种网络通信接口。针对外部联网要求,嵌入设备必需配有通信接口,相应需要TCP/IP协议簇软件支持;由于家用电器相互关联(如防盗报警,灯光能源控制,影视设备和信息终端交换信息)及实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持应用软件的特定编程模式,如Web或无线Web编程模式,还需要相应的浏览器,如HTML、WML等。
(3)支持小型电子设备实现小尺寸、微功耗和低成本
为满足这种特性,要求嵌入式产品设计者相应降低处理器的性能,限制内存容量和复用接口芯片。这就相应提高了对嵌入式软件设计技术要求。如,选用最佳的编程模型和不断改进算法(孙琼,2004)。
(4)提供精巧的多媒体人机界面
嵌入式设备之所以为亿万用户乐于接受,重要因素之一是它们与使用者之间的亲和力,自然的人机交互界面,如司机操纵高度自动化的汽车主要还是通过习惯的方向盘、脚踏板和操纵杆。人们与信息终端交互要求以GUI屏幕为中心的多媒体界面。手写文字输入、语音拨号上网,收发电子邮件以及彩色图形、图像已取得初步成效。
1.2.3 影响未来的若干软件新技术
(1) 日趋流行的行业性开放系统和备受青睐的自由软件技术
7
华中农业大学本科毕业论文(或设计)
为了对付日趋激烈的国际市场竞争势态,设计技术共享和软件重用、构件兼容、维护方便和合作生产是增强行业性产品竞争能力的有效手段。走行业开放系统道路是加快嵌入式软件技术发展的捷径之一。国际上自由软件运动的顺利发展,GPL概念正对嵌入式软件产业深远影响。嵌入式Linux多种原型的提出,和GNU软件开发工具软件的实用化进展,正为我国加快发展嵌入式软件技术提供了极好机遇和条件。
(2) 无线网络操作系统初见端倪
未来移动通信网络不仅能够提供丰富的多媒体数据业务,而且能够支持更多功能和更强的移终端设备。为了有效地发挥第三代移动通信系统的优势,许多设备厂商针对未来移动设备的特点努力开发无线网络操作系统(M. Tim Jones, 2008)。
(3) IP构件库技术正在造就一个新兴的软件行业
嵌入式系统实现的最高形式是单一芯片系统(SOC,System On Chip),而SOC的核技术是IP核(即知识产权核Intellectual Property Kernels)构件。IP核有硬件核、软件核和固件核,硬件核主要指8/16/32/64位MPU核或DSP核。硬件提供商以数据软件库的形式,将其久经验证的处理器逻辑和芯片版图数据,供EDA工具调用在芯片上直接配置MPU/DSP功能单元;而软件核则是软件提供商将SOC所需的RTOS内核软件或其它功能软件,如通信协议软件,FAX功能软件等构件标准API方式和IP核构件形式供IDE和EDA工具调用制成FLASH或ROM可执行代码单元,加速SOC嵌入式系统定制或开发。目前一些嵌入式软件供应商纷纷把成熟的RTOS内核和功能扩展件,以软件IP核构件形式出售,如Microtec的VRTXoc for ARM就是典型例子。正在兴启的IP构件软件技术正为一大批高智小型软件公司提供发展机遇。
1.3 课题研究内容
针对嵌入式产品的高度个性化,其外观、与用户交互的界面千差万别的特点,故而系统的设计目标是意在打造一个能在嵌入式终端运行、通用的、可以方便的支持各种控件、各种图形格式,具有体积小、可裁剪、可移植的这样一个面向嵌入式的应用程序系统,使各种嵌入式设备也同样能具有美观的用户界面,相对比较丰富的功能,操作起来简单而又直观。
本文通过对嵌入式Linux和Qt的分析,在嵌入式Qt的基础上,开发了面向嵌入式终端的记事本和电子相册应用软件。记事本不仅支持英文输入和显示,而且支持中文和日文的显示,还支持记事本文件的浏览、编辑、删除等功能。电子相册不仅支持中、英、日文图片名字的显示,还支持如放大、缩小、旋转等各种方式下的图片浏览。它们体积小,移植方便,适用于掌上电脑、智能电话及一些高端的嵌入式设备中。此外它作为一种小型GUI解决方案,可用于那些对GUI
8
华中农业大学本科毕业论文(或设计)
大小要求苛刻的各种应用系统中。
2 Linux和Qt简介
2.1 Linux主要特性
Linux是个和Unix相似、以Unix核心为基础、完全内存保护、多任务多进程的操作系统。支持广发的计算机硬件,包括X86,Alpha,Sparc,MIPS,PPC,ARM,NEC等现有的大部分芯片。程式源码全部公开,任何人可以修改并在GNU通用公共许可证(GNU General Public License)下发行(陈英和梁建武,2008),这样,开发人员可以对操作系统进行定制,再也不必担心像MS windows操作系统中\后门\的威胁。同时由于有GPL的控制,大家开发的东西大都相互兼容,不会走向分裂之路。Linux用户遇到问题时可以通过Internet向网上成千上万的Linux开发者请教,这使最困难的问题也有办法解决。Linux带有Unix用户熟悉的完善的开发工具,几乎所有的Unix系统的应用软件都已移植到了Linux上。Linux还提供了强大的网络功能,有多种可选择窗口管理器(X windows)。其强大的语言编译器gcc、g++等也可以很容易得到。不但成熟完善、而且使用方便,为嵌入操作系统提供了一个极有吸引力的选择。
Linux已经被移植到多种硬件平台,这对受开销、时间限制的研究与开发项目是很有吸引力的。原型可以在标准平台上开发然后移植到具体的硬件上,加快了软件与硬件的开发过程。
Linux还有以下优点:
(1) Linux可以随意地配置,不需要任何的许可证或商家的合作关系。 (2) 它是免费的,源代码可以得到。这是最吸引人的。毫无疑问,这会节省大量的开发费用。
(3) 它本身内置网络支持。
(4) Linux的高度模块化使添加部件非常容易。
(5) Linux在台式机上的成功,使大家看到了linux在嵌入式系统中的辉煌前景。
嵌入式产品中选择什么样的操作系统极为重要,嵌入式Linux由于其开源特性、实时性好、可移植、内置网络支持等优点在嵌入式领域成为主力军。如今,业界已经达成共识:即嵌入式linux是大势所趋,其巨大的市场潜力与酝酿的无限商机必然会吸引众多的厂商进入这一领域。
2.2 Qt开发工具简介
2.2.1 Qt主要特性
Qt是一个跨平台的C++图形用户界面库,由挪威TrollTech公司开发,目前
9
华中农业大学本科毕业论文(或设计)
包括Qt/X11、基于Framebuffer的Qt/Embedded、快速开发工具Qt Designer以及国际化工具Qt Linguist等。人们所熟知的Linux下面的KDE环境就是基于Qt开发而成的。Qt支持Unix和Linux系统以及Windows系统。
Qt的主要特点有: 面向对象, 很容易扩展, 并且允许真正的组件编程; Qt对各个模块进行了良好的封装,使各模块可重用性较好;优良的跨平台特性, 使用Qt类编写的程序可以实现 “一次编码,到处编译”,极大的降低了跨平台开发的难度(丁丁等,2004);构件支持, 对于对象间通信,Qt没有采用函数回调的方法,而是采用了一种全新并且可选的被称为“信号与槽” 的对象间通信机制,通过一个对象信号的发射,另一个槽函数的响应,使各个对象之间的通信安全而且高效。 Qt的这些特点使它非常适合于真正的构件编程, 同时使各个组件之间的协同工作变得十分简单,并且 Qt是直接基于 Xlib的,不依赖 Motif 工具包, 所以它的执行效率比一般的基于平台的代码的执行效率要高。
2.2.2 Qt编程机制简介
(1) Qt系统的信号与槽机制简介
信号/槽机制是Qt的一个中心特征并且也许是Qt与其它工具包的最不相同的部分。在图形用户界面编程中,我们经常希望一个窗口部件的一个变化被通知给另一个窗口部件(张娟,张雪兰,2007)。更一般地,我们希望任何一类的对象可以和其它对象进行通讯。
较老的工具包使用一种被称作回调的通讯方式来实现同一目的。回调是指一个函数的指针,所以如果你希望一个处理函数通知你一些事件,你可以把另一个函数(回调)的指针传递给处理函数。处理函数在适当的时候调用回调(倪继利,2006)。回调有两个主要缺点。首先他们不是类型安全的。我们从来都不能确定处理函数使用了正确的参数来调用回调。因此容易造成进程崩溃,另外一个问题是,回调这种方式紧紧的绑定了图形用户接口的功能元素,因而很难把开发进行独立的分类。
Qt的信号与槽机制是不同的。Qt的信号与槽均以函数形式出现,Qt的窗口部件有很多预定义的信号,但我们也可以通过继承来加入我们自己的信号。槽就是一个可以被调用处理特定信号的函数。Qt的窗口部件有很多预定义的槽,但是通常的习惯是你可以加入自己的槽,这样你就可以处理你所感兴趣的信号。我们可以用connect()函数对需要的信号和槽进行连接。当对象的内部状态发生改变,信号就被发射。从某种意义上讲,它们也许对外面的世界感兴趣。这就是所有的对象通讯时所做的一切。它不知道也不注意无论有没有东西接收它所发射的信号。当一个信号被发射,它所连接的槽会被立即执行,就像一个普通函数调用一样(见图1)。信号/槽机制完全不依赖于任何一种图形用户界面的事件回路。当所有的槽都返回后发射的信号也将返回。信号与插槽机制并不要求类之间互相
10
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库毕业设计(论文)-基于QT的嵌入式终端应用程序开发--记事本和电(2)在线全文阅读。
相关推荐: