基于MiniGUI的嵌入式媒体播放器的设计与实现
基于MiniGUI的嵌入式显控系统的设计与实现
[ 中图分 类号]P 1[ T 3 1文献标 识码 ] 文章编 号]0 61 1 (0 1 402 —3 A[ 10 ・4X 2 1 )0・0 10
Em be de r phi sS t m s a c nd Applc to d dG a c ys e Re e r h a ia i n Ba e n M i G UI s d o ni
提 高 嵌 入 式应 用 的 开 发效 率 。嵌 入 式 系统 对 GU I 的基本 要 求包括 轻 型 、占用 资源少 、高性 能 、高可
靠 性 、高配 置等 特 点 。 在 航 电产 品任 务系 统 中 ,往 往采 用触 摸 显示 技
务器 完成 管理 窗 口的事件 派发 功能 ,客 户端 直接对
E edd mb d e .Mi o n o 、Mii U1 c Wid ws r nO ,其 中 Qt / E e d d由著 名 的 Qt 开发 商 Tol e 供 的面 mb d e 库 rleh提 t 向嵌 入式 系统 的开 发包 ,系统采 用 C S机 制 ,由服 /
生 成 、管理 以及 系统 与用 户之 间 信 息交 互 ,从 而
用、 高效 、 界面友好 的 G I U 系统成为许多航 电产
品开 发 的首 要 选 择 。
能够提 供 友好 的用 户界 面 ,另 一方 面要 为系 统 开发
人 员提 供 一种 编程 模式 ,负责 系统 的可 视化 界面 的
2 ・ 入式 GU 研 究 嵌 I
目前 , 比较流 行 的嵌 入 式 G UI系 统 有 Q / t
本 论文 实现 了基于 QE MU 虚 拟机 的 DT P全 系
统仿 真测试 环 境, 并通 过 了功 能测 试 。 下一 步将开 展
嵌入式流媒体播放器的设计与实现的开题报告
嵌入式流媒体播放器的设计与实现的开题报告一、选题背景随着互联网技术的迅速发展,流媒体的应用越来越广泛,人们已经习惯了通过网络观看视频和听音乐。
嵌入式设备也开始集成流媒体播放器,以让用户能够更方便地通过这些设备观看视频和听音乐,如智能电视,智能音响等。
因此,设计和实现一种高效、稳定、易用的嵌入式流媒体播放器对于提高用户体验和产品竞争力具有重要意义。
二、选题意义本项目的开发将有助于嵌入式设备制造商和电子商务公司推出更好的产品,并且将有助于提高用户的使用体验。
本项目还将有助于解决智能设备上流媒体播放器的一些典型问题,如观看视频时的卡顿,以及在连接不稳定的网络环境下播放流媒体时的问题。
此外,本项目将有助于促进嵌入式开发领域的技术创新和发展,提高国内软件工程师的技术素质和创新能力,推进嵌入式产业的发展和进步。
三、研究目标本项目的主要研究目标包括:1. 设计和实现一种高效、稳定、易用的嵌入式流媒体播放器,可以在不同的嵌入式设备上运行,并能支持多种不同格式的视频和音频文件。
2. 实现流媒体播放器的基本功能,包括文件上传、文件存储、文件解码、音视频同步播放等。
3. 解决在不同的设备上播放流媒体时遇到的问题,如多机型适配、网络环境变化、低功耗等问题。
4. 提供优秀的用户体验,包括良好的界面设计和用户友好的操作方式。
四、研究内容和方法本项目的研究内容包括:1. 流媒体文件格式、编码方式和传输协议的研究。
流媒体播放器需要支持多种不同的视频和音频文件格式,并能够解码这些文件,然后将它们编码为数据流进行传输到嵌入式设备。
2. 嵌入式设备的特性研究。
本项目需要对不同类型的嵌入式设备进行研究,以便设计能够在这些设备上运行的高效、稳定的流媒体播放器,同时也需要考虑到低功耗和环境适应性等问题。
3. 流媒体播放器的设计和实现。
本项目需要根据研究结果设计和实现一种高效、稳定、易用的流媒体播放器,其中包括文件上传、文件存储、文件解码、音视频同步播放等基本功能,并需要解决在不同设备上播放遇到的问题。
基于嵌入式的GUI设计分析
基于嵌入式的GUI设计分析摘要:目前,围绕着智能家用电器的嵌入式技术得到了迅速的发展,其在办公自动化、消费电子、通讯设备、智能仪器以及军用电子设备等方面得到了广泛的使用。
有些设备还采用了液晶显示屏,随着手持式设备的硬件条件的改善,嵌入式系统对良好GUI系统的要求会变得更加紧迫。
相比普通GUI,在嵌入式环境下,GUI具有重量轻、资源占用少、高性能、高可靠性和可配置等优点,而目前基于GUI的嵌入式GUI研究刚刚开始,还有很多技术难点需要突破。
基于此,我们给出了一种基于嵌入式的GUI软件架构的实现方法。
该方法所实现的GUI系统不但具有良好的普适性,而且还具有很强的灵活性。
关键词:嵌入式;GUI设计;有关分析前言笔者对多种可供选择的嵌入式GUI的方法进行了全面的对比,并将其与嵌入式系统的特性相联系,对嵌入GUI中的一些主要技术进行了深入的探讨,从而给出了一种具有一般意义的嵌入式GUI的设计思路和架构,该方案具有重量轻、占用资源少、可剪裁等优点。
不会给使用者的操作带来烦琐、不直观等问题,也将会让软件开发人员很困难,难以在此操作系统上快速、有效地设计出一个接口友好的应用软件。
1、嵌入式图形用户界的应用现状与发展前景嵌入式图形用户界面技术是一门新兴的学科,它是一门新兴的学科。
虽然Linux是目前应用最广泛的一种嵌入式操作系统,但是在很多嵌入式产品中也有使用 Linux操作系统,这为嵌入式图形用户界面的实现打下了良好的基础。
但是,受 Xfree86规范的制约,目前 Linux上所采用的图形用户界面设计方法过于繁重,效率不高,还不能应用于嵌入式系统。
虽然很多公司都或多或少地降低了 X的使用范围,但是整个嵌入式系统的能力还是太大了,大到让人难以接受。
为此,国内外学者提出了多种基于嵌入式 GUI的开发平台。
当前,以 Linux为基础的主要嵌入式图形用户界面开发平台有以下几种:1.1MicroWindowsMicrowindows是很早就推出的一款开放源码的嵌入式图形用户界面开发软件。
基于 MiniGUI 的嵌入式图形界面的研究与实现
收稿日期:2014-03-06 修回日期:2014-06-12 网络出版时间:2014-12-27基金项目:国家自然科学基金重点项目(61136002)作者简介:张 磊(1989-),男,硕士,研究方向为计算机系统结构㊁嵌入式GUI 与驱动开发;王亚刚,副教授,硕士生导师,研究方向为计算机系统结构㊁并行编译技术㊂网络出版地址: /kcms /detail /61.1450.TP.20141227.1343.025.html基于MiniGUI 的嵌入式图形界面的研究与实现张 磊,王亚刚(西安邮电大学计算机学院,陕西西安710061)摘 要:随着Linux 系统从服务器延伸到PC㊁嵌入式设备的快速发展,便携式智能设备的应用更加普遍㊂图形界面对于用户变得日益重要,轻量级图形用户界面的开发也日趋重要,成为当前研究的一个热门领域并且拥有广阔的应用前景㊂文中对比了几种主流的嵌入式图形界面,分析了MiniGUI 体系结构及底层实现,详细介绍了MiniGUI 的库文件与资源文件的移植方法与运行环境的配置,提出了MiniGUI V3.0.12移植的一般方法,并实现了MiniGUI 到基于ARM-Linux 系统的开发板S3C6410的移植,完成了嵌入式图形界面的构建㊂关键词:图形界面;嵌入式系统;MiniGUI;Linux中图分类号:TP316.2 文献标识码:A 文章编号:1673-629X (2015)02-0194-05doi:10.3969/j.issn.1673-629X.2015.02.044Research and Implementation of Embedded GUI Based on MiniGUIZHANG Lei ,WANG Ya -gang(College of Computer ,Xi 'an University of Posts &Telecommunications ,Xi 'an 710061,China )Abstract :With the rapid development of embedded Linux system from server to PC and portable device ,the application of portable smart devices are more common.The development of embedded GUI (Graphical User Interface )based on Linux and the lightweight GUI are becoming increasingly important ,and have become a hot area of current research with wide application prospect.Based on the comparison of several mainstream embedded graphical interfaces and analysis of the architecture and underlying implementation ,the transplantation method and configuration of running environment for MiniGUI library files and resource files is introduced in detail ,a general process of MiniGUI V 3.0.12transplantation is proposed ,and a MiniGUI based on ARM -Linux systems development board S 3C 6410transplanting is implemented ,completing the construction of embedded graphical interface.Key words :graphical interface ;embedded -systems ;MiniGUI ;Linux0 引 言随着集成电路及手持设备的发展,嵌入式系统对轻量级GUI 的需求越来越迫切㊂近来的市场需求显示,越来越多的嵌入式系统,包括PDA ㊁机顶盒㊁手机等均要求有一个高性能㊁高可靠的GUI 的支持㊂另外,在工业实时控制系统中对GUI 的要求也越来越高㊂这些系统一般不希望建立在庞大累赘的㊁非常消耗系统资源的操作系统和GUI 之上,比如Windows 或X Windows ㊂由于工业控制实时系统的发展对轻型GUI 的需求更加突出,所以轻型㊁占用资源少㊁高性能㊁高可靠性和可配置的GUI 在嵌入式系统或者实时系统中的地位将越来越重要,在Linux 上实现GUI 嵌入式图形软件系统的重要性也显现出来㊂1 嵌入式GUI 的对比GUI 的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用㊂人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口㊁菜单㊁按键等方式来方便地进行操作㊂常见的几种主流的嵌入式GUI [1]有OpenGUI㊁Qt /Embedded㊁MiniGUI [2]㊂OpenGUI 基于一个用汇编实现的x86图形内核,提供了一个高层的C /C ++图形/窗口接口㊂它的运行速度非常快,能够在MS-DOS,QNX 和Linux 下运行,但是可移植性不理想㊂Qt /Embedded 是一个第25卷 第2期2015年2月 计算机技术与发展COMPUTER TECHNOLOGY AND DEVELOPMENTVol.25 No.2Feb. 2015专门为小型设备及高端设备提供图形用户界面的应用框架和窗口系统㊂它运行稳定并且速度非常快,但是它的结构过于复杂,很难进行底层的扩充㊁定制并且资源消耗较大㊂MiniGUI是基于实时嵌入式或实时系统的轻量级GUI[3]㊂它的图像抽象层对顶层API基本没有影响,但大大方便了MiniGUI应用程序的移植㊁调试等工作,能够在基于ARM㊁MIPS㊁StrongARM以及Pow-erPC等嵌入式系统上流畅运行,并且支持多字体和多字符集㊂表1是对它们的比较㊂表1 嵌入式GUI对比OpenGUI QT/Embedded MiniGUI API是否完备是是是可配置和可定制性一般一般较好函数库大小300K 1.5M500K可移植性一般较好很好授权条款LGPL QPL/GPL GPL稳定性较好较好较好效率最好一般较好目前,MiniGUI已经被各大嵌入式设备运营商广泛应用于他们的产品中[4-5]㊂中科院某开发组已经成功地将MiniGUI移植到了他们的POSIX兼容系统上㊂并且MiniGUI能够在CPU主频为30MHz,仅有4MB RAM的系统上正常运行,这是一些嵌入式产品的图形系统所无法达到的㊂2 MiniGUI的体系结构2.1 MiniGUI整体架构在软件体系上MiniGUI介于内核和应用之间,本质上是一个软件 中间件 ㊂MiniGUI具有良好的软件体系架构,通过自带的ANSIC库以及相关的API实现GUI系统所需的功能,然后通过可移植层的抽象封装,将与操作系统㊁底层硬件设备的交互实现细节隐藏起来,上层应用无需与底层硬件平台有直接的调用关系,所以有较好的可移植性与可配置性,也更利于后期设计开发上层应用软件㊂图1是MiniGUI的软件结构㊂图1 MiniGUI软件结构MiniGUI采用分层设计与传统的Client/Server消息管理模式,服务器负责窗口Z序管理㊁鼠标和键盘的输入事件截获和分发,客户通过发请求,要求服务器完成某个操作,服务器完成任务后将结果发送给客户㊂在最底层GAL(Graphics Abstract Layer)和IAL(Input Abstract Layer)提供底层图形接口以及鼠标和键盘的驱动,并为MiniGUI提供了底层的Linux控制台或者X Windows上的图形接口以及输入接口;中间层是MiniGUI的核心层,其中包括了窗口系统必不可少的各个模块;顶层是API,即编程接口㊂其中抽象层GAL 与IAL是整个MiniGUI的图形库的核心㊂2.2 GAL与IAL实现MiniGUI的GAL与IAL层的底层代码称为 图形引擎 或 输入引擎 ,类似操作系统中的驱动程序㊂利用GAL和IAL,MiniGUI可以在许多已有的图形函数库上运行,比如SVGALib和LibGGI㊂并且可以非常方便地将MiniGUI移植到其他POSIX系统上,只需要根据抽象层接口实现新的图形引擎即可㊂相比图形来讲,将MiniGUI的底层输入与上层相隔显得更为重要㊂在基于Linux的嵌入式系统中,图形引擎可以通过FrameBuffer而获得,而输入设备的处理却没有统一的接口㊂MiniGUI系统维护一个已注册图形引擎数组,保存每个图形引擎数据结构的指针㊂系统利用一个指针保存当前使用的图形引擎㊂每个图形引擎的数据结构定义了该图形引擎的一些信息,比如标识符㊁属性等,更重要的是,它实现了GAL所定义的各个接口,包括初始化和终止㊁图形上下文管理㊁画点处理函数㊁画线处理函数㊁矩形框填充函数㊁调色板函数等等㊂如果在某个实际项目中所使用的图形硬件比较特殊,现有的图形引擎均不支持㊂这时,可以按照GAL所定义的接口实现自己的图形引擎,并指定MiniGUI使用这种私有的图形引擎即可㊂在GAL层实现中有软件/硬件surface操作,即简单的赋值操作与色块的传送㊂同时有些硬件还支持一些像素混合的加速功能,如alpha㊁colorkey等㊂不管是软件还是硬件的surface,屏幕的图像数据就是内存中的那些RGB数值,所以直接修改它们,就能立即显示到屏幕上[6-7]㊂2.3 MiniGUI的APIMiniGUI顶层的API函数接口通过调用GDI (Graphic Device Interface)进行基本的图元绘制操作而不去关心底层的操作[8]㊂MiniGUI提供一些基本的绘图函数[9],如FillBox(HDC hdc,int x,int y,int w,int h)㊂它的基本实现流程如图2所示㊂在MiniGUI中,每个绘图函数在绘图的时候都要去调用设备上下文DC㊂FillBox的作用是使用DC的㊃591㊃第2期张磊等:基于MiniGUI的嵌入式图形界面的研究与实现画刷颜色来填充DC中的指定矩形区域㊂根据DC的剪切域来填充矩形;根据DC中surface的类型选用填充函数;填充函数完成图像数据填充;on-screen数据被修改直接表现在屏幕上㊂图2 实现流程3 MiniGUI的移植尽管MiniGUI支持多种不同的平台体系结构,但由于嵌入式硬件系统的千差万别,因此在特定的目标开发板上正确地运行MiniGUI还要做适当的移植修改[10-11]㊂一般来说,系统的差异主要在以下几个方面:用户定制的硬件或者所使用的图形引擎没有被MiniGUI支持;缺少与MiniGUI匹配的驱动;用户需要添加新的图形引擎硬件加速功能㊂3.1 移植方法与环境一般的移植首先要选择合适的宿主机并在主机上建立交叉编译环境,其次修改与平台相关的配置文件并交叉编译相关资源文件,然后将编译好的动态链接库和资源文件拷贝到事先移植好的目标板的文件系统中,最后就可以在目标板上独立运行相应的测试程序㊂其中串行终端作为移植及调试过程中目标板系统信息输出的主要途径,可以使用Windows中的超级终端或者Linux下的minicom等终端程序㊂对于MiniGUI的移植方法大概分为两种:一种是首先在模拟器上运行MiniGUI,编写测试用例进行测试,最后以模拟器为参考进行相应的硬件平台的移植;另一种是在PC机上安装MiniGUI图形库,并编写测试用例进行相应的调试作为嵌入式平台移植的有效参考㊂为特定的开发板或者系统移植安装MiniGUI及相类似的图形库可以参考其他已经移植成功的开发板的程序跟配置文件,这样可以大大减少移植的工作量,缩短开发周期㊂MiniGUI在移植[12-13]前首先要准备好相应的目标板,支持的Linux内核,BootLoader引导程序[14],支持的文件系统及相应的驱动程序㊂MiniGUI的移植一般包括以下几个步骤:获取MiniGUI源码包;建立GNU 交叉编译开发环境;根据移植目标板的配置对MiniGUI源代码进行配置修改;在目标板与开发主机间建立连接进行调试㊂其中目标开发板的选择与源码包的选择尤为重要㊂在移植过程中MiniGUI的移植环境如图3所示㊂图3 移植环境结合以上分析,文中移植MiniGUI一般需要注意的事项为:(1)明确目标硬件板的配置,满足MiniGUI图形库所需的最低硬件资源条件㊂对于S3C6410开发板来说,它采用ARM11的处理器,支持Linux操作系统,有JACG调试接口与480*273的LCD㊂(2)宿主机的选择根据已有的资源情况进行选择,交叉编译工具要尽量选择功能齐全的㊁高版本的㊂(3)要选择合适的源码包㊂对于不同版本的源码包,编译过程中会出现互不兼容的情况,所以选择合适的源码包很有必要,大大减少移植过程中会出现的错误㊂3.2 移植的一般过程结合以上对MiniGUI移植一般过程的介绍,文中搭建的开发环境主要有四方面㊂主机系统:centos6. 0,Linux的Kernel版本为2.6.32-358;交叉编译工具为:arm-linux-gcc-4.5.1;软件资源:MiniGUIV3.0.12相关源码包;硬件平台:友善之臂ARM6410㊂3.2.1 交叉编译工具链的搭建GUI的编译通常在PC机上执行,这要求编译器本身能够在PC机上执行,同时编译链接源代码生成的二进制文件必须能在目标机上执行㊂将交叉编译工具解压到指定目录下,并修改home目录下的环境变量配置文件,添加交叉编译工具的路径㊂例如,添加export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/ bin㊂3.2.2 交叉编译与安装移植首先,获取MiniGUI源码包,libminigui-gpl-3.0. 12:核心库,minigui-res-be-3.0.12:资源库,zlib-1.2. 6:zlib资源库,libpng-1.2.37:png资源库,jpeg-8c:㊃691㊃计算机技术与发展第25卷jpeg资源库,freetype-2.3.9-fm20100818:字体库,lib-mgplus-1.2.4:图形桌面中间生成库,mg-samples-3.0.12:图形桌面㊂其次,按顺序交叉编译zlib㊁png㊁jpeg㊁freetype㊁lib-minigui-gpl㊁minigui-res-be和libmgplus库㊂最后,编译mg-samples库㊂所有的库的交叉编译大体相似,以下用libminigui -gpl-3.0.12核心库和mg-samples-3.0.12为例说明编译过程㊂交叉编译时首先进到相应资源库的文件中,进行相应的编译配置,然后进行安装㊂在编译时首先使用所需的交叉编译工具,并添加所依赖的头文件及库文件并使用--prefix=/usr/local/ minigui将所有的库编译到指定的目录下,其次添加在配置文件中要启用的选项㊂将编译选项配置完成后,最后运行安装㊂编译过程中要确保各个图形库都要配置成功,否则后面的编译将不会通过㊂在整个交叉编译过程中所要修改的平台相关的配置为: (1)MiniGUI根据不同硬件平台的需求提供三种不同的运行模式:第一个为MiniGUI-Thread多线程模式;第二个为MiniGUI-Processes多进程模式[15];第三个为MiniGUI-Standalone独立任务模式㊂文中在编译时采用多进程模式,在编译多进程核心库的时候要启用--enable-procs多进程模式㊂(2)如果所选择移植的硬件平台没有MiniGUI支持的图形引擎,可以在MiniGUI的GAL层按照其所支持的其他图形引擎的结构添加适合目标平台的图形引擎,正是由于MiniGUI结构灵活,所以具有很好的可移植性㊂(3)编译好所有的资源库文件后会在prefix指定的目录文件下生成平台相关的MiniGUI.cfg资源配置文件㊂此时根据不同硬件平台资源特性进行相应的配置㊂其中有引擎㊁字体㊁所支持的图像资源等层㊂特别重要的是GAL层引擎与IAL层引擎的配置,并根据实际的显示器大小进行显示分辨率配置,指定所需资源文件的路径㊂文中将图形抽象层引擎GAL engine配置成基于Framebuffer的图形引擎fbcon,将输入抽象层引擎IAL engine配置成默认的输入引擎console㊂设置所使用的fbcon的屏幕分辨率为480*272㊂①交叉编译MiniGUI核心库配置如下所示:CC=arm-linux-gccCFLAGS="-I/usr/local/minigui/include"LIBS="-L/usr/local/minigui/lib"./configure--prefix=/usr/local/minigui--build=i386-linux--host=arm-linux--target=arm-linux--with-osname=linux--with-style=classic--with-targetname=fbcon--enable-autoial--enable-procs②交叉编译mg-samples库如下所示:CC=arm-linux-gccCFLAGS="-I/usr/local/minigui/include"LIBS="-L/usr/local/minigui/lib"./configure--prefix=/usr/local/minigui--build=i386-linux--host=arm-linux--target=arm-linux相关资源库都交叉编译成功之后,再交叉编译mg -sample库㊂③将交叉编译好的资源拷贝到开发板㊂首先,把在宿主机上编译好的位于/usr/local/ minigui下的三个文件夹中的相关资源etc㊁lib㊁share拷贝到目标开发板相应的位置㊂其中,把宿主机中编译好的MiniGUI动态链接库拷贝到目标开发板的连接库/lib下;将配置好的MiniGUI.cfg文件拷贝到开发板的根目录下的/etc中;根据MiniGUI.cfg文件里面的资源路径,在目标开发板上建立相应的路径并放入编译好的资源㊂由于在系统初始化的时候会自动寻找/etc下的MiniGUI.cfg配置文件,并根据配置加载资源,并且应用程序在运行的时候会从动态链接库中加载需要的库㊂最后,修改开发板上图形界面的启动项,并添加编译好的MiniGUI的图形界面应用程序㊂3.3 移植结果重新启动ARM开发板,将会在开发板上的LCD 界面上看到基于MiniGUI的图形界面,此图形界面运行流畅,完全满足嵌入式图形界面的要求㊂MiniGUI 的图形界面如图4所示㊂图4 MiniGUI的图形界面所有的移植工作完成之后可以在宿主机上开发自己的应用实例㊂交叉编译自己开发的应用程序,将生成可执行文件并放到指定路径,并修改桌面客户程序的配置文件mginit.rc,就可以在开发板上运行㊂图5㊃791㊃第2期张磊等:基于MiniGUI的嵌入式图形界面的研究与实现为对第2节MiniGUI 的API 实例结构FillBox 的一个验证示例㊂图5 FillBox 验证示例4 结束语MiniGUI 现在已发展成为一个比较成熟的图形用户界面支持系统,在嵌入式Linux 系统下采用MiniGUI 可以比较快捷地完成相应的图形用户信息交互界面的开发㊂通过文中分析与实践,成功将MiniGUI 移植到ARMS3C6410开发板上,并通过大量绘图测试验证MiniGUI 的稳定性与流畅性,为嵌入式图形界面的移植提供了一个成功的范例,同时也为移植到其他开发板积累了经验㊂参考文献:[1] 孙少华,徐立中.面向嵌入式Linux 系统的图形用户界面设计[J].微机发展(现更名:计算机技术与发展),2005,15(10):123-125.[2] 魏永明,钟书毅,潘为国.嵌入式系统开发原理㊁工具及过程[M].北京:北京飞漫科技技术有限公司,2005.[3] 于秀霞.嵌入式监控系统中MiniGUI 的编程与实现[J].长春大学学报,2009,19(12):58-60.[4] 张仁斌,朱 飞,吴燎原.基于MiniGUI 的POS 机图形界面设汁与实现[J].计算机工程与应用,2008,44(专刊):249-251.[5] 陈文智.嵌入式系统开发原理与实践[M].北京:清华大学出版社,2005.[6] AlexBuell.FrameBuferHowTo [EB /OL].2000-02-27.ht-tp:// /html /newbie /20040328/21521.html.[7] Daniel P B,Marco C.Understanding the Linux kernel[M].2nd ed.[s.l.]:O.Reilly,2002.[8] 周立功.ARM 嵌入式MiniGUI 初步与应用开发范例[M].北京:北京航空航天大学出版社,2006.[9] 刘峥嵘,张智超,许振山.嵌入式Linux 应用开发详解[M].北京:机械工业出版社,2005.[10]北京飞漫软件.MiniGUI 编程手册V1.3[EB /OL].2005-10-28..[11]刘昌盛,郭 勇,谢习华.嵌入式Linux 环境下MiniGUI 的研究与移植[J].微计算机信息,2008,24(20):103-105.[12]郑端建,郭磊,魏世民.MiniGUI 图形库在嵌入式Linux 平台上的移植与实现[J].仪表技术,2008(10):10-11.[13]Tanenbaum A S.Modern operating system[M].北京:机械工业出版社,2002.[14]Denk W.The DENX U-Boot and Linux Guide (DULG)forTQM8xxL[EB /OL].2004-11-18.http://www.denx.de /wi-ki /bin /view /DULG /Manual.[15]王文启,韩秀玲,孙 波.基于MiniGUI 的多进程图形用户界面的研究[J].微计算机信息,2007,23(3-2):78-80.(上接第193页)[4] 曹树金,马利霞.论本体与本体语言及其在信息检索领域的应用[J].情报理论与实践,2004,27(6):632-637.[5] Hebeler J,Fisher M,Blace R,et al.Web 3.0与Semantic Web 编程[M].北京:清华大学出版社,2010.[6] Horrocks L,Patel-Schneider P F,Boley H.SWRL:a semanticweb rule language combining OWL and RuleML [EB /OL].2004. /Submission /SWRL /.[7] 李 景,孟宪学,苏晓路.领域本体的构建方法与应用研究[M].北京:中国农业科学技术出版社,2009.[8] 张 梅,郝 佳,阎 艳,等.基于本体的知识建模技术[J].北京理工大学学报,2010,30(12):1405-1408.[9] 陈述彭.遥感大辞典[M].北京:科学出版社,1990.[10]陆登槐.农业遥感的应用效益及在我国的发展战略[J].农业工程学报,1998,14(3):64-70.[11]和海霞,范一大,杨思全,等.航天光学遥感在自然灾害管理中应用能力评述[J].航天器工程,2012,21(4):117-122.[12]张 薇,杨思全,王 磊,等.合成孔径雷达数据减灾应用潜力研究综述[J].遥感技术与应用,2012,27(6):904-911.[13]北京宇视蓝图信息技术有限公司.北京一号小卫星数据特征及应用前景展望[EB /OL].2008. /document /lunwen.pdf.[14]中国资源卫星应用中心.资源02B 卫星介绍[EB /OL].2009-05-08. /n16/n1130/n1567/8370.html.[15]中国资源卫星应用中心.HJ-1-A㊁B 卫星介绍[EB /OL].2009-05-08. /n16/n1130/n1582/8384.html.[16]中国资源卫星应用中心.HJ-C 卫星[EB /OL].2010-01-05. /n16/n1130/n1597/49620.ht-ml.㊃891㊃ 计算机技术与发展 第25卷基于MiniGUI的嵌入式图形界面的研究与实现作者:张磊, 王亚刚, ZHANG Lei, WANG Ya-gang作者单位:西安邮电大学 计算机学院,陕西 西安,710061刊名:计算机技术与发展英文刊名:Computer Technology and Development年,卷(期):2015(2)引用本文格式:张磊.王亚刚.ZHANG Lei.WANG Ya-gang基于MiniGUI的嵌入式图形界面的研究与实现[期刊论文]-计算机技术与发展 2015(2)。
基于嵌入式的播放器的设计与实现
本设计需要围绕核心板进行外设电路设计。本设计中需要使用到的外设有LCD显示屏和触摸屏,并且作为一个应用平台,外设电路不再包括有调试用的COM接口和网络接口。因为软件的调试可以先在HHARM9-EDU-R3平台上测试好后,再把核心板放到外设电路板上进行实测。
1)LCD显示屏模块接口。基于电路设计的模块化,我们把LCD显示屏与外设板分开,使用40针的数据线进行联接,因为LCD屏及其外围电路通常可以整块地进行购买,这样设计也即省下了不必要的电路设计的麻烦。LCD屏我们选用HHARM9-LCD-R4模块,屏幕的大小为240x320象素。
4.2Mplayer的移植过程
MPlayer是Linux上的电影播放器。播放大多数MPEG,VOB,AVI等诸多格式的视频文件。
1)下载并安装交叉编译工具及解压源代码。2)编译Mplayer。首先是对Mplayer进行配置,接着开始跨平台编译。3)调试。利用配置好的NFS对编译通过的可执行文件进行调试,将整个PC机mount到开发板,并且安装音频驱动程序源码。
2)触摸屏电路。触摸屏控制器选用ADS7846,由于触摸屏与LCD显示屏是贴在一起的,所以ADS7846的采集信号输入也是通过LCD显示屏模块接口的四路引线接出来。通过对这四路输入信息的转换,即可把触摸屏上响应的电压信息转换成相应的坐标信息。
3基于嵌入式的播放器的软件设计
本文设计的播放器是基于嵌入式Linux操作系统进行设计。嵌入式Linux是按照嵌入式操作系统的要求而设计的一种小型操作系统。具有源码开放、易移植、模块化、资源丰富等优势。本系统包含了系统所需的模块支持ext2\jffs2等文件系统;内存驱动模块提供内存管理功能;网络接口模块支持以太网接口;GPIO驱动模块主要是提供给键盘和触摸屏使用;图形驱动模块是图形用户界面(GUI)和图像显示的底层支撑模块;音频设备输出驱动模块支持音频数据的数模转换。步骤如下:
基于嵌入式Linux和MiniGUI的车载信息系统软件平台的设计的开题报告
基于嵌入式Linux和MiniGUI的车载信息系统软件平台的设计的开题报告一、研究背景及意义随着汽车产业的不断发展,车载信息系统越来越成为车辆的必备装备。
这些系统用于提供导航、娱乐、通信及车辆控制等功能,进一步提高了驾驶体验和行车安全。
车载信息系统软件平台作为其核心,对整个系统的设计和开发至关重要。
目前市面上的车载信息系统软件平台大多基于嵌入式Linux系统和相关的GUI框架,如Qt、MiniGUI等。
在这些平台上,开发人员可以快速构建出各种车载功能模块,并通过统一的界面和交互方式呈现给用户。
本文将研究基于嵌入式Linux和MiniGUI的车载信息系统软件平台的设计,主要包括以下内容:1. 嵌入式Linux系统的构建和配置:介绍如何搭建嵌入式Linux系统并进行相关的配置,包括内核编译、系统初始化、网络设置等。
2. 车载信息系统的功能模块设计:根据车载信息系统的需求,设计系统内置的各种功能模块,例如导航、音频播放、电话通讯等。
3. 基于MiniGUI的UI框架搭建:使用MiniGUI框架搭建车载信息系统的UI界面,设计系统的交互方式,并实现各个模块之间的数据交换和通信。
4. 系统性能优化和稳定性测试:针对系统的性能问题和稳定性问题进行优化和测试,提高系统的性能和稳定性。
通过本文的研究,将为车载信息系统软件平台的设计和开发提供一种新的思路和方法。
在实践中,将能够为车载信息系统的开发提供更好的技术支持和保障,推动车载信息系统的应用和发展。
二、研究内容及方案本文主要研究基于嵌入式Linux和MiniGUI的车载信息系统软件平台的设计,具体研究内容如下:1. 嵌入式Linux系统的构建和配置(1)嵌入式Linux系统的介绍和应用场景分析(2)嵌入式Linux系统的构建和配置方法(3)嵌入式Linux系统的初始化和网络配置2. 车载信息系统的功能模块设计(1)系统需求分析和功能模块设计(2)导航模块的设计和实现(3)媒体播放模块的设计和实现(4)蓝牙通讯模块的设计和实现3. 基于MiniGUI的UI框架搭建(1)MiniGUI框架介绍和应用分析(2)UI界面设计和交互方式的确定(3)模块之间数据交换和通信的实现4. 系统性能优化和稳定性测试(1)系统性能的评估和优化方法(2)系统稳定性测试和问题分析根据以上研究内容,提出本研究的方案如下:1. 建立实验环境:搭建嵌入式Linux系统开发环境和MiniGUI开发环境,配置开发板等硬件环境。
基于嵌入式技术的视频媒体播放器的设计
本科毕业论文题目:基于嵌入式技术的视频媒体播放器的设计学院:班级:姓名:**指导教师:李怀繁职称:副教授完成日期:2014 年6月 5 日基于嵌入式技术的视频媒体播放器的设计摘要:随着用户需求的日趋多样化,单一功能的视频媒体播放器功能已经渐渐强大起来。
嵌入式设备以其强大的功能、低廉的价格等优点成为了开发视频媒体播放器首选设备。
本文设计的播放器将视频媒体技术与嵌入式技术完美结合起来,不仅实现了音视频的播放,而且采用mini2440开发板,搭载Linux内核,使其具有强大的潜力,可开发实现多种功能,满足用户多变的需求。
该视频媒体播放器支持多种格式的音、视频文件的播放,可实现媒体文件播放的暂停、音量调节等播放功能,并且由于其应用于Linux 内核之上,比其他播放器有更广阔的发展空间。
关键词:mini2440开发板;视频媒体播放器;Linux内核;嵌入式技术;目录1.引言 (1)1.1 研究背景与目的 (1)1.2 研究方法 (2)2. 系统分析 (3)2.1 概要分析 (3)2.2 开发环境 (3)3. 系统设计 (4)3.1 构建基本环境 (4)3.2 配置相关服务器 (5)3.3 移植应用程序 (6)4. 系统实现 (8)4.1 运行流程 (8)5 系统测试 (9)5.1 测试流程 (9)5.2 功能测试 (10)结论 (13)参考文献 (14)附录 (16)1引言1.1 研究背景与目的在现代信息化社会,视频媒体在信息产业和媒体技术的发展和在人类社会的应用等方面产生的影响和作用越来越明显,且越来越重要[1]。
视频媒体技术的发展和应用,使得文化教育、科技、娱乐等诸多行业的飞速发展与相互渗透,同时,正在逐步改变着整个人类社会的生活方式与工作结构。
不言而喻,媒体产业的产生和发展,不仅会引发计算机工业的革命,而且也将会推动人类社会发生巨大变革。
嵌入式操作系统是计算机技术发展到一定阶段的中间产物,它无法与功能全面的计算机操作系统相比,但却凭借自身体积小、功能专用、稳定性高、价格低廉等优点正迅猛发展。
嵌入式多媒体播放器的设计与实现
嵌入式多媒体播放器的设计与实现浏览Loading... 次1、引言随着音频解码技术、存储器技术、MP3高质量压缩技术等相关技术不断的发展以及人们对消费电子产品需求的增加,MP3新产品层出不穷,成为时尚潮流前沿的一个最佳载体。
人们可以用它休闲娱乐 ,也可以用它工作和学习。
设计一款性价比优良的MP3 播放器具有实际的应用价值[1]。
随着 C语言的发展和嵌入式系统技术的推广 ,在嵌入式系统低端应用中 ,存在着大量的小型嵌入式应用系统。
MP3 播放器的设计 ,就是典型的嵌入式系统应用。
MP3具有最基本的播放、选曲、音量控制、音效控制功能。
当连接到计算机的 USB接口时,MP3变成 U盘,可以向 U盘复制文件,文件包括 MP3歌曲文件和普通文件 [2,3]。
系统的功能结构图如图 1所示:2、系统设计相关技术2.1 MP3文件格式 [4]MP3 文件是由帧(frame)构成的,帧是 MP3文件最小的组成单位。
MP3的全称应为 MPEG1 Layer-3音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG 音频文件是 MPEG1标准中的声音部分,也叫 MPEG音频层,它根据压缩质量和编码复杂程度划分为三层,即 Layer-1、Layer2、Layer3,且分别对应MP1、MP2、MP3这三种声音文件,并根据不同的用途,使用不同层次的编码。
MPEG音频编码的层次越高,编码器越复杂,压缩率也越高,MP1和 MP2的压缩率分别为4:1 和 6:1-8:1,而 MP3的压缩率则高达10:1-12:1,也就是说,一分钟 CD音质的音乐,未经压缩需要 10MB的存储空间,而经过 MP3压缩编码后只有 1MB左右。
MP3文件大体分为三部分:TAG_V2(ID3V2),Frame, TAG_V1(ID3V1)。
ID3是一个标记MPEG的标准,具体的讲,这些标记是用来指明歌曲的作者、演唱者,年月、所属专辑等信息,这样,播放器在播放时可以读出并显示这些信息。
基于MiniGUI的嵌入式媒体播放器设计与实现
基于MiniGUI的嵌入式媒体播放器设计与实现随着嵌入式系统的不断发展,处理器性能的不断提升,存储系统容量的不断扩大,各种多媒体应用程序被移植到嵌入式系统中,多媒体组件成为其不可或缺的重要组成部分。
本文在比较如今流行的几种嵌入式图形系统的基础上,提出了基于MiniGUI 的嵌入式媒体播放器的设计与实现方法。
1引言随着嵌入式系统的不断发展,处理器性能的不断提升,存储系统容量的不断扩大,各种多媒体应用程序被移植到嵌入式系统中,多媒体组件成为其不可或缺的重要组成部分。
嵌入式多媒体播放器的开发是当前IT 产业的热点之一,呈现了巨大的市场需求。
与些同时,播放器功能复杂化和普及化对产品的交互界面提出了更高的要求。
现在许多高端手机和PDA 产品上已经有了多媒体播放器,可是和PC 机上的播放器相比现有的这些播放器的功能都有待进一步增强。
将现代窗口和图形技术带入到嵌入式设备的MiniGUI,是一个非常适合于实时嵌入式设备的高效、可靠、可定制、小巧灵活的跨操作系统的图形用户界面支持系统。
它采用类Win32 的API 接口,是一个多窗口GUI 支持系统。
本文首先比较各种嵌入式图形系统,然后提出基于MiniGUI 的嵌入式媒体播放器的设计与实现方法。
2各种嵌入式图形系统之比较目前,流行的面向嵌入式系统的图形系统有MicoroWindows/NanoX、Qt/Embedded、MiniGUI、DirectFB、PicoGUI 以及GTK /FB 等。
它们中的大多数遵循LGPL 条款发布,而MicoroWindows/NanoX 遵循的是MGPL,Qt/Embedded 采用QGPL 条款发布。
MicroWindows/NanoX 能够在没有任何操作系统或其他图形系统的支持下运行,它能对裸显示设备进行直接操作。
这样,MicroWindows 就显得十分小巧,便于移植到各种硬件和软件系统上。
然而MicroWindows/NanoX 的免费版本开发进展慢,而且缺乏全。
基于嵌入式媒体播放器的设计与开发
基于嵌入式媒体播放器的设计与开发摘要:在嵌入式系统中,多媒体的应用变得越来越广泛,因此,开发一款功能齐全、便于跨平台使用的媒体播放器得非常迫切。
本文以嵌入式ARM9 开发平台为基础,利用开源Linux 系统和跨平台Qt 开发工具。
在音频开发中采用Qt 提供的Phonon 多媒体框架,让应用程序更易于开发了;在视频开发中利用MPlayer 作为其后端程序,加快了对媒体的处理速度。
该播发器是以一个集音频,视频播放于一体的一款多媒体影音娱乐软件。
该软件可以移植在汽车、飞机以及个人手持设备上使用。
关键词:嵌入式;媒体播放器;ARM9 ;Linux ;Qt 中图分类号:TP311 文献标识码:AThe Research and Development of Media Player Based on Embedded SystemWANG Dongcai ,LIANG Longkai ,HAN Gaining ,WANG Fan,WANG Yang( Information Engineering Department Xianyang Normal Universty ,Xianyang 712000 ,China)Abstract :In embedded systems,the application of multimedia is becoming more and more widely ,therefore,developing a complete function ,easy to use cross-platform media player is very urgent.In this paper ,based on embedded ARM9 development platform ,using open source Linux system and Qt cross-platform development tools.In audio development program ,using Phonon multimedia framework ,in order to make applications easier to develop,and using MPlayer ,in the video development,to accelerate the processing speed of the media.This is a collection of audio ,video play in the integration of a multimedia entertainment software.The software can be transplanted in cars,planes,handheld devices,and personal to use.Keywords :embedded;media player;ARM9 ;Linux ;Qt1 引言( Introduction ) 随着计算机技术、媒体编码技术和嵌入式技术的不断发展,用户对媒体娱乐终端需求的不断提高,嵌入式设备的不断功能强大和逐渐成熟的市场,嵌入式软件的开发与设计越来越受到专业技术人员的重视。
嵌入式GUI的设计与实现
现 计算 21. o 代 机 o05 0
素 结 构 、 扫 描 线 的 字 节宽 度 ) 以及 伪 彩 色 模 式 下 的 每 ,
生 . 有 某 个 事 件发 生 时 . 根 据 当 前 事 件 的类 型来 产 当 会 生一 个 消 息 , 发 送 给指 定 对 象 处 理 。 并 消息 分 为 系 统消
G I 象 间 的通 信 . 通 过 输 入 设 备 向 G I 象 通 信 . U 对 人 U 对 例 如 键 盘 向 G I 信 : 操 作 系 统 与 G I 象 间 的 通 U 通 U 对
收 稿 日 期 :0 0 0 —2 21— 3 3 修 稿 日期 : 0 0 4 3 2 1 ~0 —2
自主 开 发 适 合 多 媒 体 平 台 的 G 系 统 应 用 很 广 UI
1 GUI 块 的 组 织 结 构 模
GU 模 块 一 共 分 为 3个 子 系 统 : 形 子 系 统 f 现 I 图 实
J ,
对 象 子 系统
绘 图 功 能 )、 件 子 系 统 f 现 消 息 事 件 驱 动 功 能) 对 事 实 和
象 子 系统 f 现 窗 口管 理 功 能)这 些 子 系 统 之 间 相 对 独 实 . 立 又彼 此 联 系 下 面介 绍 每 个 功 能 子 系 统 主 要 完 成 的 操 作 l 3 1 。
/
图形 子 系统
l
事件 子 系统
丁
J r 输 出设备
{
输 入 设备
图形 子 系统 功 能 : G I 象 提 供 图形 输 出 功 能 向 U对 主要 包 括 : 本 绘 图 操 作 , 如 点 、 线 、 形 等 ; 本 基 例 直 矩 文 和 字 体 支 持 .例 如 多 字 体 多字 符 集 的文 本 输 出和 解 析 等; 图像 格 式 支 持 , 如 B 、 I 例 MP G F和 JE 等 图像 格 式 PG
MP3播放器的设计与实现(Linux下MiniGUI用户界面与播放功能的开发)(软件工程课程设计)
《基于S3C2410的嵌入式硬盘MP3播放器的设计与实现(Linux下MiniGUI用户界面与播放功能的开发)》软件工程课程设计目录第一章引言 (1)第二章嵌入式系统概述 (2)2.1 嵌入式系统定义 (2)2.2 嵌入式系统发展 (2)2.3 嵌入式系统开发流程 (3)2.4 嵌入式开发流程的特点 (4)2.5 课题背景 (6)2.5.1 HHARM9-EDU 平台硬件模块与接口 (6)2.5.1 市面常见的MP3播放器 (7)2.5.2 本文开发的硬盘MP3播放器 (9)第三章嵌入式Linux操作系统 (12)3.1 嵌入式操作系统分类与相关产品 (12)3.2 嵌入式Linux的优势 (12)3.3 Linux 在HHARM9-EDU平台上的移植 (13)3.4 系统开发环境 (14)3.4.1 宿主机 Linux 系统安装 (14)3.4.2 交叉编译环境的建立 (15)第四章嵌入式Linux平台下的MiniGUI程序设计 (16)4.1 嵌入式系统GUI的实现方法 (16)4.1.1 MiniGUI (16)4.1.2 MicroWindows (16)4.1.3 Qt/Embedded (16)4.2 各种嵌入式GUI系统的比较 (16)4.3 MiniGUI 在嵌入式Linux平台下的移植 (17)4.3.1 MiniGUI 库在HHARM9-EDU平台的移植 (18)4.3.2 MiniGUI 宿主机模拟平台qvfb的建立 (18)第五章嵌入式MP3播放器的设计与实现 (20)5.1 MP3概述 (20)5.1.1 MPEG LAYER III音频压缩算法介绍 (20)5.1.2 MP3文件结构分析 (20)5.2 MP3播放器的详细设计 (22)5.2.1使用硬件设备 (22)5.2.1.1 触控屏 (22)5.2.1.2 LCD 彩色液晶显示屏幕 (23)5.2.1.3 小键盘 (23)5.2.1.4 硬盘IDE接口 (24)5.2.1.5 音频输入/输出 (24)5.2.2 MiniGUI图形开发 (24)5.2.2.1 程序结构图 (24)5.2.2.2 主窗体界面建立 (25)5.2.2.3 MP3 文件列表读取与显示 (30)5.2.2.4 触控屏菜单与按键实现 (34)5.2.2.5 仿LED七段数码管显示的实现 (36)5.2.2.6 小键盘操作的实现 (38)5.2.2.7 使用IPC与播放进程通信 (41)5.2.2.8 录音放音功能的实现 (42)5.2.3 应用程序移植 (44)5.2.3.1 启动shell 脚本编写 (44)5.2.3.2 引导代码及文件系统烧录 (45)第六章结束语 (47)致谢 (48)参考文献 (49)第一章引言随着后PC时代的到来,嵌入式产品已不再是一个新的概念,嵌入式产品遍布于人们的日常生活,从移动电话,PDA到家用洗衣机,空调,冰箱,机床控制,武器制导系统。
嵌入式Linux下基于MiniGUI的多媒体实验系统的软件实现
配 置。
3 1 入引擎配置 .输
Mi i nGUI I 的 AL实现了对于各类不同输入设备的控制操
作 ,提 供统一的调用接 口。Mi i 通过 I n GUI NPuT结构来表示 输 入引擎 , r/a . 中有数组 s t N UT ip t 】 sc i1C t i I P n us【 ac ,初 始 存放 了所有输 入引擎名称 ,每 个输入 引擎在 初始时定义 了三 个I NPUT结构成 员: i 引擎名 称 ,用作 标示 符 ; d: ii ip t输入 引擎的初始化 函数 ,该 函数 负责对 I nt n u : ~ NPUT 结 构 的其 它成 员赋值 ; t m i p t 输入 引擎的终止清 除函数 。 er nu: 针 对 该 系 统 , 我 们 添 加 了 触 摸 屏 输 入 引 擎 S MDK2 l _AL,类似 PC上 的鼠标 ,但只能区分左键 : 4 OI
— ~
系统提出了特殊的需求; 可配置,可移植 ,开销小。根据以 上特 点 ,该实 验 系统 是 采 用 了 Li 操 作 系统 ,并 基 于 nux
Mi i n GUI 开发的人机 交互 界面 建立起来 的。
2定 制 L u操作 系统 . ix n 对于嵌 入式 的 Li X操 作系统而 言 ,由于硬 件条 件的限 nU 制 ,其程序代码和数据的存储空 间是有限的 , 通常的 LI x操作 iu 1 系统 的 尺寸 太大 ,不能 适 合本 系统 的 要求 ,控 制 系统 运行 开 销, 选用小而高效的 Ln x内核是将其移植到系统硬件 平台的关 iu 键 ,因此必须对 Ln x进行定制。对 Ln x的定制 分为以 下几 iu iu 个部 分 :重 新编 译 内核 ,根据 系统 功 能要 求 , 内核 配置需 要
基于MiniGUI的嵌入式浏览器研究与设计
S oW i o 函数 将 所创 建 的窗 口显 示 在 屏幕 上 。 毁 主窗 口则 hw n w d 销 要 词 用 D soMa Widw 函数 。另 外 , 常一 个 MiiU 应用 et y i n o r n 通 nG I 程 序 的 入 口点 为 Mi G J i. n [Ma 函数 原 型 为 : t nG I ani i I n i iU M i(t n Mi n
是 程序 会一 直处 于一 个 循 环状 态 。 这个 循 环 当中 , 序从 外 部 在 程 输入 设 备 获取 某 些事 件 . 比如 用户 的 按键 或者 鼠标 的移 动 , 后 然 根据 这 些 事件 作 出 某种 响应 , 完 成一 定 的功 能 。 并 在 发生 事 件 之后 . l i U 将 事 件转 换为 一 个 消 息 , 将 消 1 G I V n i 并 息放 人 目标 程 序 的 消 息 队列 之 中 . 主要 是 通 过填 充 一 个 MS G消 息结 构 。 把它 复 制 到 消息 队列 中 。 再 应 用 程 序是 在 M.G 珊 an函数 中 通 过一 个 消 息 循环 来 处 m U j i 理 消息 队列 中的 消息 。 消息 循 环就 是 一个 循环 体 , 结 构如 下 : 其
维普资讯
2 6
福
建
电
脑
20 0 8年第 8 期
基 于 MiiU 的嵌入式浏览器研究与设计 nG I
谢 新 华 ,唐 四薪
(衡 阳 师 范 学院 计 算机 科 学 系 湖 南 衡 阳 4 10 20 8)
【 摘
要】 MiiU 是一个非常适合 于实时嵌入式 系统的图形用户界 面支持 系统。 : nG I 本文分析 了Mi G I n U 的特点、 i 结构及
嵌入式GUI开发设计——基于MiniGUI
编辑推荐基于处于快速发展阶段的MiniGUI系统,由权威培训机构为读者解读MiniGUI3.0新技术的应用。
结合了GUI理论和MiniGUI系统的实现,让读者同时从广度和深度上对嵌入式GUI乃至嵌入式系统有深入的了解。
提供了详尽的配套光盘,包含大量的源代码和应用,可使读者具备快速搭建系统的能力,并能快速上手,搭建自己的系统。
书中包含众多事例,可操作性、可扩展性强,能充分发挥读者的想象力。
本书简介《嵌入式GUI开发设计——基于MiniGUI》是一本嵌入式图形用户系统应用开发方面的教程,由作者韩超结合飞漫官方授权资料编著。
本书通过介绍MiniGUI系统的开发,给读者一个学习嵌入式GUI程序设计和实现的平台。
MiniGUI系统是一个由中国人实现、目前广泛在应用的优秀嵌入式GUI系统,通过这个系统的学习,可以了解嵌入式GUI开发的思想和方法,也可以加深对嵌入式系统开发的理解。
本书结合嵌入式GUI系统的通用知识对MiniGUI系统进行了充分的介绍,篇幅控制详略得当,配合光盘使用,可以达到事半功倍的效果。
本书主体分成三个层次:MiniGUI的架构、MiniGUI的各种功能、基于MiniGUI构建应用程序,这是学习嵌入式GUI系统较为便捷和高效的方式。
它既适合需要进入MiniGUI应用程序开发领域的人员,也适合需要对通用的GUI技术学习的人员。
目录第1章 嵌入式GUI系统概述 1.1 嵌入式GUI系统 1.1.1 嵌入式GUI系统的作用 1.1.2 嵌入式GUI系统的层级结构 1.2 嵌入式GUI系统的设计原则 1.3 嵌入式GUI系统发展状况 1.3.1 QT/Embedded 1.3.2 Microwindows 1.3.3 MiniGUI第2章 MiniGUI的特点和发展 2.1 MiniGUI与嵌入式GUI系统 2.1.1 MiniGUI的设计理念 2.1.2 MiniGUI与其他嵌入式GUI 2.1.2 系统的比较 2.2 MiniGUI的发布版本 2.2.1 MiniGUI 1.6 2.2.2 MiniGUI 2.02.3 MiniGUI3.0 2.3.1 MiniGUI 3.0核心库的新功能 2.3.2 MiniGUI 3.0的新组件 2.4 MiniGUI的展望 2.4.1 MiniGUI的集成开发环境mStudio 2.4.2 MiniGUI 4.0 2.5 MiniGUI的发展和应用 2.5.1 MiniGUI的发展 2.5.2 MiniGUI的应用领域第3章 MiniGUI的体系结构 3.1 MiniGUI的结构概述 3.2 MiniGUI的系统需求 3.2.1 MiniGUI所支持的操作系统 3.2.2 MiniGUI所支持的硬件平台 3.2.3 MiniGUI对系统资源的占用情况 3.3 MiniGUI的层次结构 3.3.1 MiniGUI的移植层 3.3.2 MiniGUI的核心实现 3.3.3 MiniGUI的API 3.4 MiniGUI的运行模式 3.4.1 MiniGUI-Threads模式 3.4.2 MiniGUI-Processes模式 3.4.3 MiniGUI-Standalone模式第4章 MiniGUI的程序框架 4.1 GUI程序设计的基本方式 4.1.1 程序中的消息机制 4.1.2 回调函数的使用 4.2 程序示例与分析 4.2.1 MiniGUI的HelloWorld程序示例 4.2.2 程序分析第5章 MiniGUI的窗口与消息机制 5.1 MiniGUI的窗口系统 5.1.1 窗口系统的概念 5.1.2 MiniGUI窗口系统 5.2 MiniGUI的消息处理机制 5.2.1 消息机制的概念 5.2.2 MiniGUI的消息机制 5.2.3 MiniGUI的消息机制类型 5.3 主窗口及其消息处理编程 5.3.1 主窗口的信息隐藏和对象编程 5.3.2 在主窗口中使用的附加信息 5.3.3 消息处理的方式与自定义消息 5.3.4 较完整的消息处理 5.3.5 主窗口及其消息处理的设计思想和编程内容总结第6章 MiniGUI的对话框编程 6.1 MiniGUI中的对话框 6.1.1 对话框的概念 6.1.2 MiniGUI的对话框的使用方式 6.2 MiniGUI对话框编程 6.2.1 使用对话框模版编程 6.2.2 非模式对话框的使用 6.2.3 主窗口和对话框的结合使用 6.2.4 对话框的设计思想和编程内容总结第7章 MiniGUI的控件编程 7.1 MiniGUI中的控件 7.1.1 控件的概念 7.1.2 MiniGUI的控件的使用方式 7.2 MiniGUI中的控件基本编程 7.2.1 使用控件的简单示例Hello World 7.2.2 多控件的使用 7.2.3 控件通知函数使用 7.2.4 控件的设计思想和编程内容总结 7.3 MiniGUI中的控件高级编程 7.3.1 自定义控件的编程 7.3.2 控件子类化 7.3.3 MiniGUI中的控件高级编程内容总结第8章 MiniGUI的菜单 8.1 MiniGUI中的菜单 8.1.1 菜单的概念 8.1.2 MiniGUI中菜单的概念 8.2 MiniGUI中的编程 8.2.1 菜单的编程示例 8.2.2 菜单的设计思想和要点第9章 MiniGUI的键盘和鼠标 9.1 MiniGUI中的输入设备的概念 9.1.1 输入的基本概念 9.1.2 MiniGUI的输入 9.2 MiniGUI中的键盘编程 9.2.1 键盘输入的过程 9.2.2 键盘的消息 9.2.3 键盘的状态和输入焦点的信息 9.2.4 键盘示例程序 9.2.5 键盘编程要点总结 9.3 MiniGUI中的鼠标 9.3.1 鼠标输入的过程 9.3.2 鼠标消息 9.3.3 鼠标捕获问题 9.3.4 鼠标编程示例 9.2.5 鼠标编程要点总结第10章 MiniGUI的GDI编程 10.1 GUI系统中的图形设备 10.1.1 图形设备在GUI中的作用 10.1.2 MiniGUI中的GDI概念 10.2 MiniGUI中窗口绘制和刷新 10.2.1 何时进行绘制 10.2.2 MSG_PAINT消息 10.2.3 有效区域和无效区域 10.3 图形设备上下文 10.3.1 图形设备的抽象 10.3.2 设备上下文句柄的获取和释放 10.3.3 设备上下文句柄的保存和恢复 10.3.4 系统内存中的设备上下文 10.3.5 屏幕设备上下文 10.3 映射模式和坐标空间 10.3.1 映射模式 10.3.2 视口和窗口 10.3.3 设备坐标的转换 10.3.4 坐标系的偏移和缩放 10.4 颜色与调色板 10.4.1 颜色与调色板的概念 10.4.2 有关颜色的接口 10.4.3 颜色处理的示例程序 10.5 在图形设备的绘制基本图形 10.5.1 矩形操作 10.5.2 基本绘图属性 10.5.3 基本绘图函数 10.5.3 基本绘图程序示例 10.6 位图的使用 10.6.1 位图的概念 10.6.2 位图的装载 10.6.3 位图的绘制 10.6.4 位图程序示例 10.7 文本的处理和显示 10.7.1 字符集和编码 10.7.2 设备字体 10.7.3 逻辑字体 10.7.4 文本输出 10.7.5 文本程序示例第11章 MiniGUI其他方面的编程 11.1 图标编程 11.1.1 图标的文件接口 11.1.2 图标的创建 11.1.3 系统图标的使用 11.1.4 图标的示例程序 11.1.5 图标编程要点总结 11.2 光标编程 11.2.1 光标的文件接口 11.2.2 光标限定 11.2.3 光标的创建 11.2.4 系统光标的使用 11.2.5 光标的示例程序 11.2.6 光标编程要点总结 11.3 定时器的使用 11.3.1 定时器的作用 11.3.2 MiniGUI中的定时器编程 11.3.3 定时器的程序示例 11.3.4 定时器编程的要点总结第12章 MiniGUI扩展库的相关内容 12.1 MiniGUI扩展库概述 12.2 扩展库的初始化和卸载函数 12.3 扩展库提供的控件 12.3.1 扩展控件的概念 12.3.2 扩展控件的示例程序 12.4 扩展库提供的对话框 12.4.1 mywins库提供的功能 12.4.2 文件对话框、新文件对 12.4.2 话框和颜色选择对话框 12.5 皮肤界面功能 12.5.1 MiniGUI提供的皮肤界 12.5.1 面功能概述 12.5.2 皮肤的组成 12.5.3 皮肤窗口、回调函数和 12.5.3 设置 12.5.4 各种皮肤元素相关功能 12.5.4 函数 12.5.5 皮肤使用示例第13章 MiniGUI的GDI演示 13.1 GDI演示概述 13.1.1 GDI演示的目的 13.1.2 实现结果 13.2 GDI演示程序设计 13.2.1 GDI演示程序功能划分 13.2.2 程序的结构 13.3 GDI演示程序的重点细节 13.3 分析 13.3.1 程序的入口和框架 13.3.2 各种GDI演示部分第14章 MiniGUI的对话框演示 14.1 对话框演示的功能描述 14.1.1 对话框演示的目的 14.1.2 实现结果 14.2 对话框演示的设计 14.2.1 对话框演示程序功能划分 14.2.2 程序的结构 14.3 对话框演示的重点细节分析 14.3.1 程序的入口和框架 14.3.2 各个对话框的实现第15章 MiniGUI实现的图像查看器 15.1 图像查看器的功能和需求 15.1.1 功能和需求 15.1.2 实现结果 15.2 图像查看器的设计 15.2.1 功能模块的划分 15.2.2 程序框架的组织及依赖 15.2.2 部分 15.3 图像查看器的重点细节分析 15.3.1 主要函数和数据结构 15.3.2 程序的其他功能 15.4 设计思想总结第16章 MiniGUI实现记事本 16.1 记事本的功能描述 16.1.1 功能和需求 16.1.2 实现结果 16.2 记事本的设计 16.2.1 功能模块的划分 16.2.2 程序框架的组织及依赖 16.2.2 部分 16.3 记事本的重点细节分析 16.3.1 主要函数和数据结构 16.3.2 程序中的其他内容 16.4 设计思想总结第17章 MiniGUI3.0的新特性 17.1 MiniGUI 3.0的新功能 17.1.1 外观渲染器 17.1.2 双向文本的显示与输入 17.1.3 不规则窗口 17.1.4 字体增强 17.1.5 其他增强功能 17.2 MiniGUI 3.0的基本示例 17.2.1 类似Windows的桌面 17.2.2 使用外观渲染器 17.2.3 窗口元素的属性 17.2.4 不规则窗口区域 17.2.5 双缓冲特性 17.3 MiniGUI 3.0新功能总结附录A MiniGUI的基本控件附录B MiniGUI的扩展控件下载后 点击此处查看更多内容。
基于嵌入式ARM-Linux的播放器的设计与实现
基于嵌入式ARM-Linux的播放器的设计与实现摘要随着21世纪的到来,人类进入了PC时代。
在这一阶段,嵌入式技术得到了飞速发展和广泛应用。
由此,本文提出了一种基于嵌入式ARM-Linux的播放器设计与实现的方案。
本文首先详细分析了ARM体系结构,研究了嵌入式Linux操作系统在ARM9微处理器的移植技术,包括交叉编译环境的建立、引导装载程序应用、移植嵌入式Linux内核及建立根文件系统,并且实现了嵌入式Linux到S3C2410开发板的移植。
由于嵌入式系统本身硬件条件的限制,常用在PC机的图形用户界面GUI系统不适合在其上运行。
为此,本文选择了Minigui作为研究对象,在对其体系结构等方面进行研究基础上,实现了Minigui到S3C2410开发板的移植,完成了嵌入式图形用户界面开发,使得系统拥有良好的操作界面。
对于播放器,本文实现了Linux系统下的通用媒体播放器—Mplayer到S3C2410开发板的移植。
通过对音频数据输出的研究,解决了Mp1ayer播放声音不正常的问题,实现了一个集音乐和视频播放于一体的嵌入式多媒体播放系统。
最后,总结了论文所做的工作,指出了嵌入式播放器所需要进一步解决和完善的问题。
关键词:嵌入式ARM-Linux; S3C2410; Mplayer; GUI界面; MiniguiPlayer Designing and Implement Based On Embedded ARM-LinuxAbstractAlong with the 21st century arrivals, the humanity enters the post PC time. In this stage, embedded technology gets rapidly developed and widely used. So, this paper aims to design a player based on embedded ARM-Linux.First, in this paper, ARM architecture and the characteristic are analyzed in detail. The emphasis of the study is put on the porting techniques of embedded Linux operation system based on the ARM9 micro-processor, which include setting cross complier、transplanting Bootloader、transplanting embedded Linux kernel and setting root file system; Furthermore, implement the technique of transplanting Embedded Linux to S3C2410 board.GUI (Graphical User Interfaces) systems which are supported by normal PCs cannot run well on the embedded systems, just because of the restriction of the hardware of embedded devices. So, this paper selects Minigui as research object. Based on the Minigui architecture and its other aspects, the technique of transplanting Minigui to S3C2410 board is given in detail, and then an embedded GUI system is established and it also makes the handle interface friendly.About the player, this paper implements transplanting the universal player on Linux-Mplayer to S3C2410 board. By learning of audio data, it solves the problem of sound abnormality, and achieves an embedded multimedia system which could play audio and video files.Key words: Embedded ARM-Linux; S3C2410; Mplayer; GUI interface; Minigui目录摘要 (I)Abstract ........................................................... I I 目录.............................................................. I II 第一章绪论.. (1)1.1系统研究背景 (1)1.1.1 多媒体播放器与嵌入式系统 (1)1.1.2 嵌入式多媒体播放器国内外发展现状 (1)1.2 嵌入式处理器 (3)1.3 嵌入式系统 (4)1.3.1嵌入式系统的概述 (4)1.3.2 嵌入式系统的选择 (5)1.4 本文的意义和主要工作 (7)第二章系统软硬件平台的搭建 (8)2.1 硬件开发平台的介绍 (8)2.1.1 核心板 (8)2.1.2 外设板 (8)2.1.3 设计所用硬件介绍 (9)2.2 硬件平台的设计方案 (9)2.2.1 核心板设计 (9)2.2.2 外设电路设计 (14)2.3 嵌入式软件开发环境 (15)2.3.1 引导装载程序 (16)2.3.2 宿主机开发环境配置 (17)2.3.3 交叉开发环境的建立 (18)2.3.4 内核的编译 (18)2.3.5 烧制内核映像和文件系统 (20)2.4 嵌入式图形用户界面的实现 (20)2.4.1 图形用户界面minigui的简介 (20)2.4.2 MiniGUI在S3C2410开发板上的移植过程 (21)第三章 Mplayer的移植 (25)3.1 Mplayer的简介 (25)3.2 Mplayer的移植 (25)3.2.1 安装交叉编译工具及解压源代码 (25)3.2.2 编译Mplayer (25)3.3 调试 (27)第四章嵌入式播放器Mplayer的设计 (31)4.1 播放器的工作流程 (31)4.2 播放器的逻辑结构 (31)4.3 Mplayer播放器的目录文件组织结构 (32)4.4 播放器对解码器和输出设备的管理方式 (34)第五章总结与展望 (36)5.1 本文主要完成的工作及结论 (36)5.2 完善与展望 (36)致谢 (37)参考文献: (38)第一章绪论1.1系统研究背景从上世纪末开始,随着计算机和电子技术的发展走上快车道,便携式电子设备,诸如智能手机,个人电子助理(PDA)的运算存储能力和通信能力都得到了长足的进步,便携式设备的用户界面也变的越来越友好,从早期的只能显示单色文字的LED,发展到现在大尺寸6万色彩色液晶屏幕。
基于ARM-Linux的MiniGUI的仿真与移植
基于ARM-Linux的MiniGUI的仿真与移植近几年,随着嵌入式系统的日益发展和32位嵌入式处理器以及图形显示设备的广泛应用,目标产品对GUI(图形用户界面)的需求越来越多。
由于嵌入式系统一般实时性要求很高,所以嵌入式系统下的GUI需要具有轻量级型、占用资源少、高性能等特点。
此外,嵌入式系统往往是一种定制设备,它对GUI的需求各不相同,因此,GUI必须也可以定制。
而MiniGUI是一个非常适合实时嵌入式产品的高效、可靠、可定制、小巧灵活的图形用户界面支持系统,被广泛的应用于高端科技产品中。
利用MiniGUI开发出良好的人机交互界面已成为嵌入式开发中的迫切需求。
本文实现了在ARM-Linux环境下进行基于QVFB的MiniGUI的模拟开发、调试,通过在PC机上的仿真模拟,将应用程序完成之后,利用交叉编译工具编译产生在目标机上运行的代码,然后把MiniGUI和可执行应用程序移植到S3C2410目标板上,这样既节省了开发时间,又提高了开发效率和质量。
1 MiniGUI的特点和体系结构MiniGUI项目的最初目标是为基于Linux的实时嵌入式操作系统提供一个轻量级的图像用户界面支持系统。
作为操作系统和应用程序之间的中间件,MiniGUI将底层操作系统与硬件平台之间的差别隐藏起来,并对上层应用程序提供了一致的功能特性。
1.1MiniGUI的特点(1)占用资源少:MiniGUI本身占用的空间非常小,整个MiniGUI系统占用空间在2~4MB,在某些系统上,MiniGUI系统本身所占用的空间可进一步缩小到1MB以内。
(2)高性能、高可靠性:MiniGUI良好的体系结构及优化的图形接口,可确保最快的图形绘制速度。
(3)可定制配置:和Linux内核类似,MiniGUI也具有大量的编译配置选项,通过这些选项可指定MiniGUI库中包括哪些用户所需要的功能。
(4)跨操作系统支持:MiniGUI支持Linux/uClinux、eCos、uC/OS-II、VxWorks等嵌入式操作系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于MiniGUI的嵌入式媒体播放器的设计与实现
1引言
随着嵌入式系统的不断发展,处理器性能的不断提升,存储系统容量的不断扩大,各种多媒体应用程序被移植到嵌入式系统中,多媒体组件成为其不可或缺的重要组成部分。
嵌入式多媒体播放器的开发是当前IT产业的热点之一,呈现了巨大的市场需求。
与些同时,播放器功能复杂化和普及化对产品的交互界面提出了更高的要求。
现在许多高端手机和PDA 产品上已经有了多媒体播放器,可是和PC 机上的播放器相比现有的这些播放器的功能都有待进一步增强。
将现代窗口和图形技术带入到嵌入式设备的MiniGUI,是一个非常适合于实时嵌入式设备的高效、可靠、可定制、小巧灵活的跨操作系统的图形用户界面支持系统。
它采用类Win32的API接口,是一个多窗口GUI支持系统。
本文首先比较各种嵌入式图形系统,然后提出基于MiniGUI的嵌入式媒体播放器的设计与实现方法。
2各种嵌入式图形系统之比较
目前,流行的面向嵌入式系统的图形系统有MicoroWindows/NanoX、Qt/Embedded、MiniGUI、DirectFB、PicoG UI以及GTK+/FB等。
它们中的大多数遵循LGPL条款发布,而MicoroWindows/NanoX遵循的是MGPL,Qt/Embedd ed采用QGPL条款发布。
MicroWindows/NanoX能够在没有任何操作系统或其他图形系统的支持下运行,它能对裸显示设备进行直接操作。
这样,MicroWindows就显得十分小巧,便于移植到各种硬件和软件系统上。
然而MicroWindows/NanoX的免费版本开发进展慢,而且缺乏全面专业的技术支持。
Qt/Embedded功能强大,但是,由于它是基于C++类库的,所以和其他GUI相比系统消耗资源较大,一般应用于手持式高端信息产品。
GTK+/FB与Qt/Embedded类似,跳过X层直接与FrameBuffer沟通,也具有Qt/Embedded的几项优点,但发展速度缓慢。
DirectFB是专注于Linux FrameBuffer加速的一个图形库,并试图建立一个兼容GTK的嵌入式GUI系统。
PicoGUI是一种新型的小巧的嵌入式图形系统。
同X Windows系统一样具有一个弹性的客户服务端架构。
PicoGU I将字体,位图,窗口小部件,以及其他应用程序需要的东西都直接建立在服务器上,与X Windows相比,虽然灵活性有所降低,但速度显著提升、体积大大缩小。
MiniGUI为实时嵌入式操作系统提供了非常完善的图形及用户界面支持。
MiniGUI本身的可移植性设计,使得不论在哪个硬件平台,哪种操作系统上运行,MiniGUI均能为上层应用程序提供一致的应用程序编程接口(API)。
MiniGUI 小巧、灵活且对中文的支持性最好。
3设计与实现
3.1播放器总体结构
本文中的播放器采用MiniGUI作为底层图形库,用于生成用户界面以及读写FrameBuffer。
基于MiniGUI的嵌入式系统总体架构如图1所示。
图1 基于MiniGUI的嵌入式系统总体架构
播放器软件总体结构如图2所示,它主要由三部分组成,分别是图形用户界面模块、系统管理主控模块和音/视频解码器。
三部分功能设计如下面所述:
图形用户界面模块通过事件/消息机制和系统管理主控模块交互。
音/视频解码器模块可以看作是系统管理主控模块的插件(plug-in),从系统管理主控模块获得编码的音/视频数据并对其解码后发送己解码的音/视频数据给系统管理主控模块。
系统管理主控模块则负责网络数据的接收和解析、图形用户界面模块和音/视频解码器模块的工作协调和音/视频数据的输出。
这个模块是播放器软件中非常重要的一个模块。
图2 播放器应用程序结构图
3.2 用户图形界面设计
MiniGUI提供了丰富的GUI元素,如常见的控件类、对话框与消息框以及菜单等,此外,MiniGUI支持界面皮肤。
因此,利用MiniGUI可以非常方便地设计出漂亮的用户图形界面。
播放器的人机交互界面主要包括播放控制与文件列表管理两大部分。
播放控制用来实现对所选择的媒体文件作播放/暂停、停止及进度控制等;文件列表管理则用来实现向播放列表添加、删除媒体文件以及对列表中文件排序等功能。
4结束语
随着嵌入式系统硬件性能的不断提升,用户对应用程序界面的友好性和功能的完备性提出了更高的要求。
本文介绍的基于MiniGUI的嵌入式媒体播放器具有设计简单,占用系统资源少等特点,可作为开发基于嵌入式图形界面系统的应用软件的参考。