网站大量收购闲置独家精品文档,联系QQ:2885784924

嵌入式第10章案例分析.ppt

  1. 1、本文档共116页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
    10.1 Linux图形开发基础   本节简单介绍图形用户界面GUI的一般架构,主要讨论嵌入式Linux图形开发的基础知识,包括GUI的底层支持库和高级函数库,为后面的进一步叙述奠定基础。 10.1.1 GUI的一般架构   GUI是Graphical User Interface的简称,即图形用户界面。图形用户界面(GUI)是计算机系统中最为成熟的人机交换技术,是计算机与用户之间的对话接口。它是一个图形组成的用户界面。比如,Windows界面、OS2界面等都是GUI。   GUI系统在逻辑上一般可分为以下几层:   (1) 最底层I/O设备驱动:直接与输入硬件打交道,完成I/O设备的驱动,包括显示设备驱动、鼠标驱动、键盘驱动等,构成了GUI的硬件基础。   (2) 中间层图形引擎:直接和最底层I/O设备驱动打交道,主要完成一些图形操作和图形管理,如画点、画线、区域填充、画窗口及按钮等。   (3) 最上层GUI应用程序接口(API):是提供给程序员的编程接口,以快速开发GUI应用程序。   GUI是嵌入式系统中的一个重要问题,越来越多的嵌入式系统要求提供全功能的Web浏览器,而这就要求有一个高性能、高可靠的GUI支持。由于嵌入式系统本身的特殊性,嵌入式GUI要求简单、直观、可靠、占用资源小且反应快速,以适应系统硬件资源有限的条件。   另外,GUI还应具备高度可移植性与可裁减性,以适应不同的硬件条件和使用需求。总体来讲,嵌入式GUI应具备以下特点:   (1) 体积小;   (2) 耗用系统资源小;   (3) 上层接口与硬件无关,高度可移植;   (4) 高可靠性;   (5) 在某些应用场合应具备实时性。 10.1.2 嵌入式GUI底层支持库   一个能够移植到多种硬件平台上的嵌入式GUI系统,应至少抽象出两类设备:   (1) 图形抽象层(Graphic Abstract Layer,GAL):基于图形显示设备,完成系统对具体显示硬件设备的操作,为程序开发人员提供统一的图形设备编程接口。   (2) 输入抽象层(Input Abstract Layer,IAL):基于输入设备,实现对不同输入设备的控制操作,提供统一的调用窗口。 嵌入式GUI底层实现基础如图10-1所示。   目前应用于嵌入式Linux系统中比较成熟、功能比较强大的GUI系统底层支持库有X Window、FrameBuffer、SVGA Lib、LibGGI等。 图10-1 嵌入式GUI底层实现基础   1. ?X Window   X Window是Unix的图形界面标准,它是以斯坦福的图形化操作系统W Windows System为基础而发展起来的一套网络透明窗口系统。X Window系统是目前Linux系统中处于主导地位的桌面图形系统。所有Linux版本的图形界面标准均遵循X Window,简称X。   X Window采用标准的客户端/服务器(Client/Server)模式,即参与运行的主体为客户端(X Client)和服务端(X Server)。它由X Server、X Client、X协议、Xlib函数库等组成。   (1) ?X Server:主要是控制I/O设备的程序,对显示器的输出、键盘和鼠标的输入进行管理,接收输入设备的信息,并将其传给X Client,而将X Client传来的信息输出到屏幕上,提供显示功能。   (2) ?X Client:也称客户程序,是应用程序的核心部分,与硬件无关。它位于后端,提供处理功能。   (3) ?X协议:是X Window系统中各单元间通信的标准,主要负责X Client与X Server间的通信。   (4) ?Xlib函数库:X Window客户程序的功能是通过调用Xlib中的函数实现的。   X Window的这种工作方式为用户提供了两个重要的特性:一个是平台无关性,即应用程序可以在任何其他平台的服务器上显示其界面;另一个是网络透明性,是指服务器和客户端之间通信协议的运作对计算机网络是透明的,客户端和服务器可以在同一台计算机上,也可以不是,一个应用程序不管是在本地运行,还是在远程某台机器上运行,都可以实现在本地显示。   2. ?FrameBuffer   FrameBuffer是一种独立于硬件的抽象图形设备,是Linux抽象出来的供用户态进程实现直接写屏的设备。它模仿显卡的功能,将显卡硬件结构抽象化。用户可以将FrameBuffer看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读/写操作,而写操作可以立即反映在屏幕上。   FrameBuffer设备提供了若干ioctl命令,通过这些命令,可以获得显示设备的一些固定信息(如显存大小)、与显示模式相

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档