构建用户图形界面GUI开发环境.ppt

上传人:za****8 文档编号:16591833 上传时间:2020-10-17 格式:PPT 页数:45 大小:1.83MB
返回 下载 相关 举报
构建用户图形界面GUI开发环境.ppt_第1页
第1页 / 共45页
构建用户图形界面GUI开发环境.ppt_第2页
第2页 / 共45页
构建用户图形界面GUI开发环境.ppt_第3页
第3页 / 共45页
点击查看更多>>
资源描述
第九章 构建自己的嵌入式 Linux 用户图形界面开发环境 嵌入式系统及其软件工具 本章提要 1 嵌入式系统中的 GUI 2 典型的嵌入式 GUI系统 3 MiniGUI 4 MiniGUI应用程序开发 9.1 嵌入式系统中的 GUI 图形用户接口 GUI (Graphical User Interfaces)是指计算 机与其使用者之间的 对话接口,是计算机 系统的重要组成部分。 9.1.1 嵌入式系统需要独特的 GUI 需要高性能的、特殊显示要求的 GUI WAP手机、可视电话、 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, 小巧高效。占用 Flash300 500K。 Qt/embeded应用于高端产品,只支 持 Linux。占用 16MB Flash。 9.1.2 嵌入式 GUI解决方案( 4) 采用开放源代码的嵌入式 GUI。 特点:价钱便宜、功能强大。存在软件缺 陷和商业支持。 应用: MicroWindows、 OpenGUI等。 9.1.3 GUI体系结构 应 用 程 序 G U I OS 抽象层 嵌 入 式 操 作 系 统 驱 动 程 序 设备抽象层 M C U 存储设备 输入设备 输出设备 GUI 在 嵌 入 式 体 系 中 的 层 次 9.1.3 GUI体系结构 G U I 内 部 体 系 结 构 API编程接口 嵌入式 GUI核心 GAL层 IAL层 图形显示设备 输入设备 9.1.3 GUI体系结构 API编程接口 嵌入式 GUI核心 GAL层 IAL层 图形显示设备 输入设备 图形操作功能; 消息机制;字体、 窗体、桌面管理 等核心图形操作 功能 Graphic Abstrac t Layer Input Abstrac t Layer 各种 GUI对象 9.1.4 GUI主要技术 消息机制和事件驱动 消息过滤 ISR1 硬件设备 1 ISRn 硬件设备 n 消息过滤 应用程序 A消息队列 应用程序 B消息队列 系统消息 应用程序 B 系统消息 应用程序 A 应用程序 B 消息处理 窗 口 应用程序 A 消息处理 窗 口 9.1.4 GUI主要技术 屏幕管理技术 GUI由单窗口向多窗口发展。对于屏幕中 的多个窗口的管理称为“屏幕管理技术”。 屏幕管理要解决: 窗口之间的位置关系; 窗口单元之间的显示顺序; 当窗口位置和显示顺序发生变化时候窗口单 元之间的变化关系等。 另外,除了窗口单元,屏幕还要管理大量资源: 字库、图标 ICON,位图 bitmap、输入法等。 每个可见的,具有独立功 能的矩形区域称为一个 “ 窗口单元 ” 。 9.1.4 GUI主要技术 屏幕管理技术 窗口单元 2 ( 150, 20) 窗口单元 3 ( 100, 85) 窗口单元 n ( 40, 168) ( 0, 0) 窗口单元 1 ( 319, 239) 窗口单元位置关系图 窗口单元 2 窗口单元 3 Z序 窗口单元 n 窗口单元 Z序关系图 颜色平滑的过渡算法 对两种位图的每个颜色值按比例进行混合 9.1.4 GUI主要技术 Alpha混合技术 渐变效果 9.2 典型的嵌入式 GUI系统 1、 MicroWindows MicroWindows是一个较早出现的开放源码的嵌 入 式 GUI软件。目前由 Century软件公司维护。 类似 Windows的 的 API 类似 X Window的客户 /服务器结构 提供三层结构:驱动 - - 窗口管理 - -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.3 MiniGUI MiniGUI 是一个 基于 SVGALib 、 Framebuffer和 LinuxThread 库的多窗 口图形用户界面支持系统,可以应用在 电视顶置盒、实时控制系统、掌上型电 脑等诸多场合, 可定制、小巧,开放源 代码 。 多线程和多窗口, 使用消息驱动作为 应用程序的构架 MiniGUI 中的窗 口分为四类:主 窗口、对话框、 控件和主窗口中 的子窗口。 9.3.1 MiniGUI主要特点 MiniGUI 还支持 一些常见的 GUI 元素 弹出式菜单、 插入符、定时 器、光标、快 捷键等。 9.3.1 MiniGUI主要特点 多字体和多字符集支持 9.3.1 MiniGUI主要特点 MiniGUI采用分层结构,引入的图形抽象层和 输入抽象层,大大提高了 MiniGUI 的可移植性 API编程接口 Core GAL层 IAL层 图形显示设备 输入设备 系统硬件驱动 9.3.1 MiniGUI主要特点 MiniGUI需要多线程支持 MiniGUI的许多模块都以单独的线程运 行。 利用线程来支持多窗口 MiniGUI利用线程之间的同步操作实现了 客户线程和服务器线程之间的微客户 /服务 器机制 9.3.1 MiniGUI主要特点 如何获取 MiniGUI 目前, MiniGUI可免费下载的稳定版本是 1.3.3。可以从北京飞漫软件技术有限公司 的网站下载 MiniGUI源代码、开发文档及示 例程序。免费下载的 MiniGUI只能用于开发 GPL或其他公开源码的应用软件,如果您 要利用 MiniGUI开发专有或商业软件,则必 须从北京飞漫软件技术有限公司购买商业 授权。 模式 1 MiniGUI-thread 可以在不同的线程中建立多个窗口,但所有的窗 口都在一个进程空间 特点:占用资源少,控制简单 对系统可靠性有影响 9.3.2 MiniGUI的三种模式 模式 2 MiniGUI-lite 每个程序都是单独的进程,每个进程可以建立多 个窗口,进程之间、窗口之间互不影响。 特点:占用资源多,较好解决了进程间窗口管理 9.3.2 MiniGUI的三种模式 9.3.2 MiniGUI的三种模式 模式 3 MiniGUI-Standalone MiniGUI以独立进程方式运行,当其它进程有 需要时候,每次只能以最大化的方式显示一个 窗体。 特点:几乎可以运行在所有操作系统上,应用 最广的模式。 9.3.3 MiniGUI配置和交叉编译 Step1. 宿主机上配置 Framebuffer 需要激活 VESA Frame Buffer驱动程序 修改 /boot/grub/menu.lst文件, Title Red Hat Linux(2.4.x, framebuffer) Root(hd0,0) Kernel /boot/vmlinux-2.4.x ro root=/dev/hda1 vga=0 x0317 initrd /boot/initrd-2.4.x.img Framebuffer是 linux内核的一种驱动程序接口,这种接口将显示设备抽象为帧缓冲区。 Framebuffer通过缓冲区提供了使用显示设备的一 般接口 9.3.3 MiniGUI配置和交叉编译 Step2. 下载 MiniGUI源代码 从网上免费得到 MiniGUI的资源文件压缩包 MiniGUI函数库源代码; libminigui-1.6.x.tar.gz MiniGUI所使用的资源,包括基本字体、图标、位图、输入法 等; minigui-res-1.6.tar.gz MiniGUI的综合演示程序。 mg-samples-1.6.x.tar.gz 9.3.3 MiniGUI配置和交叉编译 Step3. 在 PC机上编译并安装 libminigui rootvm-dev /#tar jxvf libminigui-1.6.x.tar.gz rootvm-dev /#cd libminigui-1.6.x rootvm-dev libminigui-1.6.x#./configure rootvm-dev libminigui-1.6.x#make rootvm-dev libminigui-1.6.x#su c make install 9.3.3 MiniGUI配置和交叉编译 Step4. 把 libminigui加入库搜索路径 默认情况下 MiniGUI的函数库被安装在 /usr/local/lib目录中,所 以应该确保此目录已经在 /etc/ld.so. conf.d中 rootvm-dev /# cd /etc/ld.so.conf.d rootvm-dev ld.so.conf.d#vi minigui.conf 写上 /usr/local/lib 运行 ldconfig命令刷新系统共享资源库缓存 rootvm-dev ld.so.conf.d#su c /sbin/ldconfig 9.3.3 MiniGUI配置和交叉编译 Step5. 在 pc机上安装 MiniGUI的资源 rootvm-dev /#tar jxvf minigui-res-1.6.tar.gz rootvm-dev /#cd minigui-res-1.6 rootvm-dev minigui-res-1.6#su c make install 9.3.3 MiniGUI配置和交叉编译 Step6. 在 pc机上编译应用程序的例子 rootvm-dev /#tar jxvf mg-samples-1.6.x.tar.gz rootvm-dev /#cd mg-samples-1.6.x rootvm-dev mg-samples-1.6.x#./configure rootvm-dev mg-samples-1.6.x#make 9.3.3 MiniGUI配置和交叉编译 Step7. 交叉编译 libminigui rootvm-dev /#tar jxvf libminigui-1.6.x.tar.gz rootvm-dev /#cd libminigui-1.6.x rootvm-dev libminigui-1.6.x#./autogen.sh rootvm-dev libminigui-1.6.x#./build/buildlib-smdk2410 rootvm-dev libminigui-1.6.x#make rootvm-dev libminigui-1.6.x#make install 9.3.3 MiniGUI配置和交叉编译 Step8. 交叉编译示例程序 rootvm-dev /#tar jxvf mg-samples-1.6.x.tar.gz rootvm-dev /#cd mg-samples-1.6.x rootvm-dev mg-samples-1.6.x#./autogen.sh rootvm-dev mg-samples-1.6.x#./build-smdk2410 rootvm-dev mg-samples-1.6.x#make 9.4 MiniGUI应用程序开发 详细代码及过程参考 05 实验指导书
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!