首页 嵌入式报告

嵌入式报告

举报
开通vip

嵌入式报告《嵌入式 Linux课程设计》报告 《嵌入式Linux课程设计》报告 题目:嵌入式图形化窗口QT的移植与研究 专业年级:通信工程 10级 学号:100102021124 姓名:丁 观 亮 指导教师:张 翼 2013年10月28日 目 录 2一、前言 4二、概述 41.1 嵌入式平台概述 51.2 嵌入式Linux概述 61.3 嵌入式QT概述 7三、嵌入式图形界面QT的移植 13四、总结 一、前言 嵌入式系统的应用前景是非常广泛的,人们将会无时无处不接触到嵌入式产品...

嵌入式报告
《嵌入式 Linux课程设计》 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 《嵌入式Linux课程设计》报告 题目:嵌入式图形化窗口QT的移植与研究 专业年级:通信 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 10级 学号:100102021124 姓名:丁 观 亮 指导教师:张 翼 2013年10月28日 目 录 2一、前言 4二、概述 41.1 嵌入式平台概述 51.2 嵌入式Linux概述 61.3 嵌入式QT概述 7三、嵌入式图形界面QT的移植 13四、总结 一、前言 嵌入式系统的应用前景是非常广泛的,人们将会无时无处不接触到嵌入式产品,从家里的洗衣机、电冰箱,到作为交通工具的自行车、小汽车,到办公室里的远程会议系统等等。特别是以蓝牙为代表的小范围无线接入协议的出现,使嵌入式无线电的概念悄然兴起。当嵌入式的无线电芯片的价格可被接受时,它的应用可能会无所不在。在家中、办公室、公共场所,人们可能会使用数十片甚至更多这样的嵌入式无线电芯片,将一些电子信息设备甚至电气设备构成无线网络;在车上、旅途中,人们利用这样的嵌入式无线电芯片可以实现远程办公、远程遥控,真正实现把网络随身携带。下面介绍几种具体的应用。   (1)嵌入式移动数据库    所谓的移动数据库是支持移动计算的数据库,有两层含义:① 用户在移动的过程中可以联机访问数据库资源。② 用户可以带着数据库移动。典型的应用场合有在开着的救护车上查询最近的医院。该系统由前台移动终端、后台同步服务器组成,移动终端上有嵌入式实时操作系统和嵌入式数据库。中国人民大学正在开发该系统,他们和Hopen公司合作,开发了前台移动终端"小精灵"。   (2)嵌入式系统在智能家居网络中的应用    智能家居网络(E-Home)指在一个家居中建立一个通信网络,为家庭信息提供必要的通路;在家庭网络操作系统的控制下,通过相应的硬件和执行机构,实现对所有家庭网络上家电和设备的控制和监测。其网络结构的组成必然有家庭网关。家庭网关主要实现控制网络和信息网络的信号综合并与外界接口,以便作远程控制和信息交换。不论是网关还是各家电上的控制模块,都需有嵌入式操作系统。这些操作系统必须具有内嵌式、实时性好、多用户的特点。南京东大移动互联技术有限公司研制的智能多媒体家庭网关,就是以嵌入式Linux作为该嵌入式设备的操 作系统,设备之间的相互通信遵从蓝牙通信协议,可以支持多个设备同时接入到固定电话网、国际互联网等其它外部网络。   (3)嵌入式语音芯片    嵌入式语音芯片基于嵌入式操作系统,采用语音识别和语音合成、语音学层次结构体系和文本处理模型等技术;可以应用在手持设备、智能家电等多个领域,赋予这些设备人性化的交互方式和便利的使用方法;也可应用于玩具中,实现声控玩具、仿真宠物、与人对话的玩具;也能应用于车载通信设备实现人机交流。该芯片应用在移动通信设备中,比如,手机上短消息来时,我们不必费力地去看,而是可以听到声音。   (4)基于小范围无线通信协议的嵌入式产品    以蓝牙为代表的小范围无线接入协议与嵌入式系统的结合,必将推动嵌入式系统的广泛应用。近来,基于这些协议的嵌入式产品层出不穷,包括各种电话系统、无线公文包、各类数字电子设备以及在电子商务中的应用。这些产品以其微型化和低成本的特点为它们在家庭和办公室自动化、电子商务、工业控制、智能化建筑物和各种特殊场合的应用开辟了广阔的前景。    东南大学移动通信国家重点实验室以及依托实验室建立的南京东大移动互联技术有限公司,从1998年开始跟踪蓝牙技术,在香港特区政府创新科技基金、江苏省"十五"重大科技攻关以及国家"十五"科技攻关的资助下,先后设计和研制了多种基于蓝牙技术的嵌入式产品。其中包括符合Bluetooth V1.1标准的嵌入式PSTN网关和语音终端。它们基于蓝牙"三合一电话"应用模型,选用了中国科学院凯思昊鹏软件技术工程有限公司提供的Hopen OS作为嵌入式开发的软件平台,选用华邦的W90221作为硬件平台。语音终端能通过PSTN网关以无线的方式接入到PSTN网络中,实现和PSTN网用户的互通。还有符合Bluetooth V1.1标准的嵌入式局域网接入点,它基于蓝牙"局域网接入"应用模型,选用嵌入式Linux操作系统作为软件平台,选用Motorola公司的CodeFire 5272作为硬件平台。通过该接入点,终端用户可以自由地接入到Internet,可以同时支持多个终端用户连接到Internet。其它一些嵌入式产品包括智能多媒体家庭网关、远程抄表系统、信息家电等等。 二、概述 1.1 嵌入式平台概述 硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。 (1) 嵌入式微处理器 HYPERLINK "http://baike.baidu.com/picview/30741/30741/0/b3508d138801d3c66438db62.html" 嵌入式系统硬件层的核心是嵌入式微处理器,嵌入式微处理器与通用CPU最大的不同在于嵌入式微处理器大多工作在为特定用户群所专用设计的系统中,它将通用CPU许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。 嵌入式微处理器的体系结构可以采用冯·诺依曼体系或哈佛体系结构;指令系统可以选用精简指令系统(Reduced Instruction Set Computer,RISC)和复杂指令系统CISC(Complex Instruction Set Computer,CISC)。RISC计算机在通道中只包含最有用的指令,确保数据通道快速执行每一条指令,从而提高了执行效率并使CPU硬件结构设计变得更为简单。 嵌入式微处理器有各种不同的体系,即使在同一体系中也可能具有不同的时钟频率和数据总线宽度,或集成了不同的外设和接口。据不完全统计,全世界嵌入式微处理器已经超过1000多种,体系结构有30多个系列,其中主流的体系有ARM、MIPS、PowerPC、X86和SH等。但与全球PC市场不同的是,没有一种嵌入式微处理器可以主导市场,仅以32位的产品而言,就有100种以上的嵌入式微处理器。嵌入式微处理器的选择是根据具体的应用而决定的。 (2)存储器 嵌入式系统需要存储器来存放和执行代码。嵌入式系统的存储器包含Cache、主存和辅助存储器。 1>Cache Cache是一种容量小、速度快的存储器阵列它位于主存和嵌入式微处理器内核之间,存放的是一段时间微处理器使用最多的程序代码和数据。在需要进行数据读取操作时,微处理器尽可能的从Cache中读取数据,而不是从主存中读取,这样就大大改善了系统的性能,提高了微处理器和主存之间的数据传输速率。Cache的主要目标就是:减小存储器(如主存和辅助存储器)给微处理器内核造成的存储器访问瓶颈,使处理速度更快,实时性更强。 在嵌入式系统中Cache全部集成在嵌入式微处理器内,可分为数据Cache、指令Cache或混合Cache,Cache的大小依不同处理器而定。一般中高档的嵌入式微处理器才会把Cache集成进去。 2>主存 主存是嵌入式微处理器能直接访问的寄存器,用来存放系统和用户的程序及数据。它可以位于微处理器的内部或外部,其容量为256KB~1GB,根据具体的应用而定,一般片内存储器容量小,速度快,片外存储器容量大。 常用作主存的存储器有: ROM类 NOR Flash、EPROM和PROM等。 RAM类 SRAM、DRAM和SDRAM等。 其中NOR Flash 凭借其可擦写次数多、存储速度快、存储容量大、价格便宜等优点,在嵌入式领域内得到了广泛应用。 3>辅助存储器 辅助存储器用来存放大数据量的程序代码或信息,它的容量大、但读取速度与主存相比就慢的很多,用来长期保存用户的信息。 嵌入式系统中常用的外存有:硬盘、NAND Flash、CF卡、MMC和SD卡等。 (3)通用设备接口和I/O接口 嵌入式系统和外界交互需要一定形式的通用设备接口,如A/D、D/A、I/O等,外设通过和片外其他设备的或传感器的连接来实现微处理器的输入/输出功能。每个外设通常都只有单一的功能,它可以在芯片外也可以内置芯片中。外设的种类很多,可从一个简单的串行通信设备到非常复杂的802.11无线设备。 嵌入式系统中常用的通用设备接口有A/D(模/数转换接口)、D/A(数/模转换接口),I/O接口有RS-232接口(串行通信接口)、Ethernet(以太网接口)、USB(通用串行总线接口)、音频接口、VGA视频输出接口、I2C(现场总线)、SPI(串行外围设备接口)和IrDA(红外线接口)等。 1.2 嵌入式Linux概述 嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。嵌入式linux既继承了Internet上无限的开放源代码资源,又具有嵌入式操作系统的特性。嵌入式Linux的特点是版权费免费;购买费用媒介成本技术支持全世界的自由软件开发者提供支持网络特性免费,而且性能优异,软件移植容易,代码开放,有许多应用软件支持,应用产品开发周期短,新产品上市迅速,因为有许多公开的代码可以参考和移植,实时性能RT_Linux Hardhat Linux 等嵌入式Linux支持,实时性能稳定性好安全性好。 如果分别让10位工程师给出嵌入式系统的定义,将得到10个不同的答案。一般来说,大部分的嵌入式系统执行特定的任务。我们假定最简单的嵌入式系统包括输入/输出功能,以及一些控制逻辑,该系统基于它的配置执行某些类型的功能。按照这个标准,可以认为一个包含实现控制逻辑74123计数器以及一个状态是一个嵌入式系统。也许可以补充说,该系统必须可通过存储在固件中的软件进行编程。这个新的嵌入式系统定义包括输入/输出(I/O),以及存储在系统固件中的控制逻辑。一个带有鼠标、键盘、网络连接并运行图形用户界面(GUI,graphical user interface)多任务操作系统的桌面计算机显然满足这些要求,但我们能认为它是一个嵌入式系统吗? 如果桌面计算机不是一个嵌入式系统,那么手持设备呢?它们有I/O功能,可以运行存储在固件中的控制逻辑。有人说,桌面计算机和手持设备都有通用计算机设备,可以运行软件来执行许多不同的任务,与之不同的是,嵌入式系统(例如,洗碗机控制器或飞行导航系统)主要是为特定任务而设计的。这种特定的功能限定使嵌入式设备有功能上的唯一性。如果是这样,为什么一些嵌入式系统设计成具有附加的功能,如存储在非易失性存储器中的程序,并且具有运行可以完成原始设计范围之外的任务的多任务操作系统的能力呢? 在过去,区分嵌入式系统和通用计算机比简单得多。例如,可以很容易地区分出一个基于8051的T1分幅卡嵌入式系统和一台Sun UNIX工作站。从功能方面很难区分一台Sun工作站和一个包含PowerPC以及32MB内存和16MB闪存的机顶盒。这样的机顶盒可以运行带GUI的多任务操作系统,可现场升级,可以同时运行多个程序(如视频控制器、数字录像和Java虚拟机),还可以进行安全的因特网在线交易。很难判断这种机顶盒是否是一个嵌入式系统。显然,硬件性能的提升和价格的下降使通用计算机和嵌入式系统之间的界限变得很模糊,技术的进步使得我们很难定义什么是嵌入式。 嵌入式Linux的应用领域非常广泛,主要的应用领域有信息家电、PDA 、机顶盒、Digital Telephone、Answering Machine、Screen Phone 、数据网络、Ethernet Switches、Router、Bridge、Hub、Remote access servers、ATM、Frame relay 、远程通信、医疗电子、交通运输计算机外设、工业控制、航空航天领域等。 就是利用Linux其自身的许多特点,把它应用到嵌入式系统里。 Linux做嵌入式的优势,首先,Linux是开放源代码的,不存在黑箱技术,遍布全球的众多Linux爱好者又是Linux开发者的强大技术支持;其次,Linux的内核小、效率高,内核的更新速度很快,linux是可以定制的,其系统内核最小只有约134KB。第三,Linux是免费的OS,在价格上极具竞争力。 Linux还有着嵌入式操作系统所需要的很多特色,突出的就是Linux适应于多种CPU和多种硬件平台,是一个跨平台的系统。到目前为止,它可以支持二三十种CPU。而且性能稳定,裁剪性很好,开发和使用都很容易。很多CPU包括家电业芯片,都开始做Linux的平台移植工作。移植的速度远远超过Java的开发环境。也就是说,如果今天用Linux环境开发产品,那么将来换CPU就不会遇到困扰。同时,Linux内核的结构在网络方面是非常完整的,Linux对网络中最常用的TCP/IP协议有最完备的支持。提供了包括十兆、百兆、千兆的以太网络,以及无线网络,Toker ring(令牌环网)、光纤甚至卫星的支持。所以Linux很适于做信息家电的开发。 还有使用Linux为的是来开发无线连接产品的开发者越来越多。Linux在快速增长的无线连接应用主场中有一个非常重要的优势,就是有足够快的开发速度。这是因为LInux有很多工具,并且Linux为众多程序员所熟悉。因此,我们要在嵌入式系统中使用Linux操作系统。 Linux的大小适合嵌入式操作系统——Linux固有的模块性,适应性和可配置性,使得这很容易做到。另外,Linux源码的实用性和成千上万的程序员热切期望它用于无数的嵌入式应用软件中,导致很多嵌入式Linux的出现,包括:Embedix,ETLinux,LEM,Linux Router Project,LOAF,uCLinux,muLinux,ThinLinux,FirePlug,Linux和PizzaBox Linux 相比微软,Linux的图形界面发展很快,像GNOME,KDE,UTITY等都是很优秀的桌面管理器,并且其背后有着众多的社团支持,可定制性强,已经在Unix和Linux世界普及开来。 1.3 嵌入式QT概述 Qt是1991年奇趣科技开发的一个跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。Qt很容易扩展,并且允许真正地组件编程。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。 特性: 1.优良的跨平台特性: Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。 2.面向对象 Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。 3.丰富的API Qt 包括多达 250 个以上的 C++ 类,还提供基于模板的 collections, serialization, file, I/O device, directory management,date/time 类。甚至还包括正则表达式的处理 功能。 4.支持 2D/3D 图形渲染,支持OpenGL 5.大量的开发文档 6.XML支持 三、嵌入式图形界面QT的移植 0.编译环境 操作系统:Debian wheezy 32位 gcc版本:4.7.1 arm-linux-gcc:4.4.6 (for TQ210 EmbedSky Tech) 1.安装tslib 为什么要装tslib?主要是为了校准触摸屏以及去抖等功能,为了能更好的使用触摸屏还是装吧。 下载地址:http://sourceforge.net/projects/tslib.berlios/files/ 1 2 3 4 5 6 tar-xvjf tslib-1.0.tar.bz2 cdtslib-1.0 ./autogen.sh ./configure--prefix=/opt/tslib-1.0 --host=arm-linux ac_cv_func_malloc_0_nonnull=yes make makeinstall prefix后面是安装目录,自己随便定义,装好后修改/opt/tslib-1.0/etc/ts.conf,去掉module_raw input 前面的#号,然后把/opt/tslib-1.0里的文件都拷入开发板,比如我放在了/usr/local里。再配置开发板的环境变量,让tslib能正常工作。 1 2 3 4 5 exportsetTSLIB_FBDEVICE=/dev/fb0 exportsetTSLIB_TSDEVICE=/dev/event4 exportsetTSLIB_CONFFILE=/usr/local/etc/ts.conf exportsetTSLIB_CALIBFILE=/etc/pointerca exportsetTSLIB_PLUGINDIR=/usr/local/lib/ts 运行/usr/local/bin中的ts_calibrate进行校准,成功的话会出现界面,并让你点击十字符号,完成后会生成/etc/pointercal文件,这是触摸屏的校准配置文件。 遇到的问题: 1.在autogen时出错,提示 ./autogen.sh: 4: autoreconf: not found 这是因为系统没有安装automake,装上就行了。 1 aptitudeinstallautoconf automake libtool 2.在make时出错,提示 In function ‘open’, inlined from ‘main’ at ts_calibrate.c:229:11: /usr/include/bits/fcntl2.h:51:24: error: call to ‘__open_missing_mode’ declared with attribute error: open with O_CREAT in second argument needs 3 arguments make[2]: *** [ts_calibrate.o] Error 1 这是因为open函数的语法不符合最新的gcc,在/tests/ts_calibrate.c中加入open的第三个参数: 1 2 3 4 5 if((calfile =getenv("TSLIB_CALIBFILE")) != NULL) { cal_fd = open (calfile, O_CREAT | O_RDWR, 0777); }else{ cal_fd = open ("/etc/pointercal", O_CREAT | O_RDWR, 0777); } 2.安装Qt4.8.3 为了开发方便,我们一般在PC端写好程序,仿真,调试完成后再用arm-linux-gcc编译成arm版的程序,最后拷到开发板上运行。所以我们必须编译两套Qt库文件:PC端的和arm端的。 2.1 安装Linux/X11版Qt 下载页面:http://qt-project.org/downloads 选择Qt libraries 4.8.3 for Linux/X11得到qt-everywhere-opensource-src-4.8.3.tar.gz,这个和Qt libraries 4.8.3 for embedded Linux是同一个文件,配置不同就可以编译出不同的版本,所以我们下一个就行了,解压开,配置,make。 1 2 3 4 5 tar-xvzf qt-everywhere-opensource-src-4.8.3.tar.gz cdqt-everywhere-opensource-src-4.8.3 ./configure-prefix/opt/qt-4.8.3-x11 make makeinstall 因为库比较大,要编译好一段时间,完成后install,-prefix后面的是安装目录,根据需要修改。 在编译过程中出错,提示 g++: error: unrecognized command line option ‘-fuse-ld=gold’ 这是Qt的一个bug:https://bugs.webkit.org/show_bug.cgi?id=89312 在装有gold linker的系统里,编译脚本会加入-fuse-ld=gold选项,但这个选项gcc是不支持的。解决办法是移除该选项,找到文件src/3rdparty/webkit/Source/common.pri,屏蔽QMAKE_LFLAGS+=-fuse-ld=gold。 1 # QMAKE_LFLAGS+=-fuse-ld=gold 2.2 安装embedded版Qt 配置选项要根据自己的硬件选取,这样编译出来的库文件才会比较小。装好后把目录下的imports、lib、mkspecs 、plugin文件夹拷到开发板上的/opt/Qt目录下,目录随便,和环境变量里的一致就行。然后配置开发板的环境变量,让他能找到Qt。 1 2 3 4 5 6 7 8 9 10 11 exportsetQTDIR=/opt/Qt exportsetQPEDIR=/opt/Qt exportsetLD_LIBRARY_PATH=$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH exportsetQT_QWS_FONTDIR=$QTDIR/lib/fonts/ exportsetQWS_SIZE=800x480 exportsetQWS_DISPLAY="LinuxFb:mmWidth80:mmHeight120:0" exportsetQWS_DISPLAY="LinuxFB:/dev/fb0" exportsetQT_PLUGIN_PATH=$QTDIR/plugins/ exportsetQWS_KEYBOARD="TTY:/dev/tty1" exportsetQWS_MOUSE_PROTO="TSLIB:/dev/event4" exportPATH=$QTDIR/bin:$PATH 3.安装Qt Creator Qt Creator是一个开发Qt程序的IDE,当然也可以完全用命令行进行开发,个人习惯而已。下载地址还是http://qt-project.org/downloads,选择下面的Qt Creator 2.6.0 for Linux/X11 32-bit,如果是64位系统,选择64位版本。下载得到 qt-creator-linux-x86-opensource-2.6.0.bin,运行安装即可。 1 ./qt-creator-linux-x86-opensource-2.6.0.bin 装好后配置qmake,进入工具->选项->构建和运行->Qt 版本,添加上面装好的X11和arm版的qmake,qmake在各自的bin文件夹里,结果如下图。 添加交叉编译工具链GCCE。 确定,至此配置完成,接下来我们来测试一下。 4.Hello Qt 新建文件或工程->Qt Gui 应用->下一步,选上Embedded Linux,在详情里把x11的去掉(x11是PC上的),如下图。 后面的保持默认就行了。完成后打开界面文件,添加一个Hello Qt的Label,构建->运行。 在左下角切换到Embedded Linux版本,构建,复制编译好的Hello_Qt文件到开发板,运行./Hello_Qt出错: QWSSocket::connectToLocalFile could not connect:: Connection refused No Qt for Embedded Linux server appears to be running. If you want to run this program as a server, add the “-qws” command-line option. 按照提示添加-qws再次运行。 1 ./Hello_Qt-qws 成功,查了一下,原来Qt的运行需要有一个Qt的服务进程,添加-qws后就是把当前Qt程序当作server了。 至此,Qt移植全部完成了。 四、总结 Qt是一个跨平台的C++应用程序开发框架,广泛用于开发GUI程序。使用Qt开发的软件,相同的代码可以在任何支持的平台上编译与运行,而不需要修改源代码。会自动依平台的不同,表现平台特有的图形界面风格。 Qt在嵌入式开发中有着广泛的应用,使用Qt只需编写一次应用程序和UI,无须重新编写源代码,便可跨不同的桌面和嵌入式操作系统进行部署,既节省了时间又降低开发成本。 经过本次的课程设计,让我了解到了嵌入式系统底层的知识。这在我今后的工作中会有不少的帮助。同时也感谢张翼老师的悉心指导,在此表示深深的谢意。 嵌入式图形化窗口QT的移植与研究
本文档为【嵌入式报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_304204
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:13
分类:互联网
上传时间:2013-11-20
浏览量:48