




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九章构建自己的嵌入式Linux用户图形界面开发环境,嵌入式系统及其软件工具,本章提要,9.1嵌入式系统中的GUI,图形用户接口GUI(GraphicalUserInterfaces)是指计算机与其使用者之间的对话接口,是计算机系统的重要组成部分。,9.1.1嵌入式系统需要独特的GUI,需要高性能的、特殊显示要求的GUIWAP手机、可视电话、PDA等要求在尺寸小的显示屏上显示更多的信息。轻量级GUI的要求工业实时控制系统实时性要求比较高,不希望建立在累赘、庞大的GUI上。,9.1.1嵌入式系统需要独特的GUI,嵌入式对GUI的基本要求包括:轻型、高效、高可靠性、可配制、有内存意识等。GUI是类似于OS的基础软件。从二次开发的角度看,GUI应能提供友好的开发环境,开发者可直观开发。,9.1.2嵌入式GUI解决方案(1),不将GUI作为一个软件层从应用程序中剥离出来,GUI的支持逻辑由应用程序自己负责。针对特定的图形设备开发图形相关的功能函数。特点:显示逻辑和功能逻辑不分、程序结构差、可移植性能差,有大量重复代码。应用于:简单、单色的LCD输出屏的低端嵌入式产品。,9.1.2嵌入式GUI解决方案(2),购买针对特定嵌入式操作系统的图形中间件软件包。特点:GUI和OS配合良好,可以直接使用。价钱昂贵。应用:uC/OS-II的uC/GUI包、Nucleus的GRAFLX包、VxWorks的WinML包。,9.1.2嵌入式GUI解决方案(3),采用独立软件开发商提供比较成熟的GUI产品。特点:采用双授权模式。应用:MiniGUI应用于中低端产品、跨OS,小巧高效。占用Flash300500K。Qt/embeded应用于高端产品,只支持Linux。占用16MBFlash。,9.1.2嵌入式GUI解决方案(4),采用开放源代码的嵌入式GUI。特点:价钱便宜、功能强大。存在软件缺陷和商业支持。应用:MicroWindows、OpenGUI等。,9.1.3GUI体系结构,GUI在嵌入式体系中的层次,9.1.3GUI体系结构,GUI内部体系结构,9.1.3GUI体系结构,图形操作功能;消息机制;字体、窗体、桌面管理等核心图形操作功能,GraphicAbstractLayer,InputAbstractLayer,各种GUI对象,9.1.4GUI主要技术,消息机制和事件驱动,9.1.4GUI主要技术,屏幕管理技术,GUI由单窗口向多窗口发展。对于屏幕中的多个窗口的管理称为“屏幕管理技术”。屏幕管理要解决:,窗口之间的位置关系;窗口单元之间的显示顺序;当窗口位置和显示顺序发生变化时候窗口单元之间的变化关系等。,另外,除了窗口单元,屏幕还要管理大量资源:字库、图标ICON,位图bitmap、输入法等。,9.1.4GUI主要技术,屏幕管理技术,颜色平滑的过渡算法,对两种位图的每个颜色值按比例进行混合,9.1.4GUI主要技术,Alpha混合技术,渐变效果,9.2典型的嵌入式GUI系统,1、MicroWindows,MicroWindows是一个较早出现的开放源码的嵌入式GUI软件。目前由Century软件公司维护。类似Windows的的API类似XWindow的客户/服务器结构提供三层结构:驱动-窗口管理-API接口更新速度较慢、图形引擎效率较低。,9.2典型的嵌入式GUI系统,1、MicroWindows,它的主要特色在于提供了比较完整的图形功能,支持多种外部设备输入,包括液晶显示器、鼠标和键盘等。MicroWindows能通过调色板技术将RGB格式的颜色空间转换成目标机器上最相近的颜色,然后显示出来,9.2典型的嵌入式GUI系统,2、MiniGUI,MiniGUI是一个面向实时嵌入式系统或者实时系统的轻量级图形用户界面支持系统,主要运行在Linux平台上。早期由魏永明先生和众多志愿者开发,是我国为数不多的在国际比较知名的自由软件之一,现在由北京飞漫软技术有限公司()进行维护和商业运作。,9.2典型的嵌入式GUI系统,2、MiniGUI,提供了完备的窗口机制,提供了多个线程中的多窗口机制;支持多种字体和字符集合;支持GIF、BMP、JPEG、PCX、TGA等图象文件。支持Windows的资源文件。小巧,包括全部功能的支持库大小为300K左右;可定制配置并编译高稳定性和高性能。,9.2典型的嵌入式GUI系统,3、Qt/embeded,Qt/Embedded是一个专门为嵌入式系统设计图形用户界面的工具包,Qt/Embedded兼容Qt的软件包,便于移植。采用C编程实现Qt是挪威Trolltech软件(被诺基亚收购)公司的产品,它为各种系统提供图形用户界面的工具包,Linux桌面系统的KDE就是基于Qt库开发的。,9.2典型的嵌入式GUI系统,3、Qt/embeded,功能强大、控件丰富。结构复杂,资源消耗较大,效率滴,适合于高端配置的硬件环境。,MiniGUI和Qt界面比较,9.2典型的嵌入式GUI系统,MiniGUI是一种面向嵌入式系统和实时系统的图形用户界面支持系统。它主要运行于Linux控制台,实际可以运行在任何一种具有线程支持的POSIX兼容系统上。MiniGUI同时也是国内最早出现的几个自由软件项目之一。与Microwindows相比,MiniGUI和MicroWindows均为自由软件,只是前者遵循LGPL条款,后者遵循MPL条款。这两个系统的技术路线也有所不同。MiniGUI的策略是首先建立在比较成熟的图形引擎之上,比如SVGALib和LibGGI,开发的重点在于窗口系统如图形接口;MicroWindows目前的开发重点则在底层的图形引擎,窗口系统和图形接口方面的功能还比较欠缺。举个例子来说,MiniGUI有一套用来支持多字符集和多编码的函数接口,可以支持各种常见的字符集,包括GB、Big5、Unicode等,而MicroWindows在多字符集的支持上尚没有统一接口。,9.3MiniGUI,MiniGUI是一个基于SVGALib、Framebuffer和LinuxThread库的多窗口图形用户界面支持系统,可以应用在电视顶置盒、实时控制系统、掌上型电脑等诸多场合,可定制、小巧,开放源代码。,多线程和多窗口,使用消息驱动作为应用程序的构架MiniGUI中的窗口分为四类:主窗口、对话框、控件和主窗口中的子窗口。,9.3.1MiniGUI主要特点,MiniGUI还支持一些常见的GUI元素弹出式菜单、插入符、定时器、光标、快捷键等。,9.3.1MiniGUI主要特点,多字体和多字符集支持,9.3.1MiniGUI主要特点,MiniGUI采用分层结构,引入的图形抽象层和输入抽象层,大大提高了MiniGUI的可移植性,9.3.1MiniGUI主要特点,MiniGUI需要多线程支持MiniGUI的许多模块都以单独的线程运行。利用线程来支持多窗口,MiniGUI利用线程之间的同步操作实现了客户线程和服务器线程之间的微客户/服务器机制,9.3.1MiniGUI主要特点,如何获取MiniGUI,目前,MiniGUI可免费下载的稳定版本是1.3.3。可以从北京飞漫软件技术有限公司的网站下载MiniGUI源代码、开发文档及示例程序。免费下载的MiniGUI只能用于开发GPL或其他公开源码的应用软件,如果您要利用MiniGUI开发专有或商业软件,则必须从北京飞漫软件技术有限公司购买商业授权。,模式1MiniGUI-thread可以在不同的线程中建立多个窗口,但所有的窗口都在一个进程空间特点:占用资源少,控制简单对系统可靠性有影响,9.3.2MiniGUI的三种模式,模式2MiniGUI-lite每个程序都是单独的进程,每个进程可以建立多个窗口,进程之间、窗口之间互不影响。特点:占用资源多,较好解决了进程间窗口管理,9.3.2MiniGUI的三种模式,9.3.2MiniGUI的三种模式,模式3MiniGUI-StandaloneMiniGUI以独立进程方式运行,当其它进程有需要时候,每次只能以最大化的方式显示一个窗体。特点:几乎可以运行在所有操作系统上,应用最广的模式。,9.3.3MiniGUI配置和交叉编译,Step1.宿主机上配置Framebuffer需要激活VESAFrameBuffer驱动程序修改/boot/grub/menu.lst文件,TitleRedHatLinux(2.4.x,framebuffer)Root(hd0,0)Kernel/boot/vmlinux-2.4.xroroot=/dev/hda1vga=0 x0317initrd/boot/initrd-2.4.x.img,Framebuffer是linux内核的一种驱动程序接口,这种接口将显示设备抽象为帧缓冲区。Framebuffer通过缓冲区提供了使用显示设备的一般接口,9.3.3MiniGUI配置和交叉编译,Step2.下载MiniGUI源代码从网上免费得到MiniGUI的资源文件压缩包MiniGUI函数库源代码;libminigui-1.6.x.tar.gzMiniGUI所使用的资源,包括基本字体、图标、位图、输入法等;minigui-res-1.6.tar.gzMiniGUI的综合演示程序。mg-samples-1.6.x.tar.gz,9.3.3MiniGUI配置和交叉编译,Step3.在PC机上编译并安装libminiguirootvm-dev/#tarjxvflibminigui-1.6.x.tar.gzrootvm-dev/#cdlibminigui-1.6.xrootvm-devlibminigui-1.6.x#./configurerootvm-devlibminigui-1.6.x#makerootvm-devlibminigui-1.6.x#sucmakeinstall,9.3.3MiniGUI配置和交叉编译,Step4.把libminigui加入库搜索路径默认情况下MiniGUI的函数库被安装在/usr/local/lib目录中,所以应该确保此目录已经在/etc/ld.so.conf.d中rootvm-dev/#cd/etc/ld.so.conf.drootvm-devld.so.conf.d#viminigui.conf写上/usr/local/lib运行ldconfig命令刷新系统共享资源库缓存rootvm-devld.so.conf.d#suc/sbin/ldconfig,9.3.3MiniGUI配置和交叉编译,Step5.在pc机上安装MiniGUI的资源rootvm-dev/#tarjxvfminigui-res-1.6.tar.gzrootvm-dev/#cdminigui-res-1.6rootvm-devminigui-res-1.6#sucmakeinstall,9.3.3MiniGUI配置和交叉编译,Step6.在pc机上编译应用程序的例子rootvm-dev/#tarjxvfmg-samples-1.6.x.tar.gzrootvm-dev/#cdmg-samples-1.6.xrootvm-devmg-samples-1.6.x#./configurerootvm-devmg-samples-1.6.x#make,9.3.3MiniGUI配置和交叉编译,Step7.交叉编译libminiguirootvm-dev/#tarjxvflibminigui-1.6.x.tar.gzrootvm-dev/#cdlibminigui-1.6.xrootvm-devlibminigui-1.6.x#./autogen.shrootvm-devlibminigui-1.6.x#./build/buildlib-smdk2410rootvm-devlibminigui-1.6.x#makerootvm-devlibminigui-1.6.x#makein
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家电网新质生产力的实践探索
- 2025年全国信息等级考试试题及答案
- 求铁盒容积题目及答案
- 扩大基础桥梁深基坑施工专项方案
- 2025年园艺工培训考试题及答案
- 高考阅读词汇题库及答案
- slump试验课件教学课件
- 广东省深圳市龙岗区2024-2025学年七年级上学期语文10月份学情诊断试卷(含答案)
- sccag鳞状细胞癌抗原课件
- 六年级上册数学期末考试卷及答案
- 2025年监察员笔试高频题彩票执法
- 2025广东中山大学附属第一医院惠亚医院事业编制人员招聘37人(第二批次)笔试备考试题及答案解析
- 校服专业知识培训内容课件
- 2025年生物制药靶点发现与验证技术临床试验监管政策报告
- 2025年全国质量月数智驱动筑基强链创新质量生态宣传
- 2025海航航空食品(北京)有限公司招聘260人笔试参考题库附答案解析
- 电路维修安全知识培训课件
- 2025年小学一年级新生家长会
- DG-T 076-2024 采茶机标准规范
- 电气照明系统课件
- 收纳整理PPT成品课件
评论
0/150
提交评论