当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于Microwindows的嵌入式GUI设计

引言
  嵌入式图形用户界面与存储安全、嵌入式java 虚拟机并称为嵌入式系统中的三大关键技术。在嵌入式应用领域,伴随着硬件技术的发展,传统意义上的人机交互界面正趋于淡化,取而代之的是具有友好人机交互支持的嵌入式图形界面。

  嵌入式计算机系统以其关键部件的高性能、低价格等优势为embedded gui 的发展奠定了坚实的市场和技术基础;而基于linux 开放源代码、遵循不同授权条款的诸多embedded gui 软件及其自由开发者,又大大推进了embedded gui 的应用进程,起到推波助澜的作用,如microwindows、minigui 及qt/ embedded 等。

  嵌入式系统是以应用为中心、计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统的这一定义也就界定了嵌入式系统对embedded gui 的基本要求。这些要求如下: (1) 轻量级、占用系统资源少; (2) 性能高,友好的人机互动; (3) 可靠性高; (4) 模块架构,配置灵活,便于移植。

  目前,在嵌入式应用领域比较成功的embedded gui主要有minigui、microwindows 和qt/ embedded。

  minigui 和microwindows 都是自由软件,只是前者遵循l gpl 条款,后者遵循mpl 条款。这两个系统的技术路线也有所不同。minigui 的策略是首先建立在比较成熟的图形引擎之上,如svgalib 和libggi ,开发的重点在窗口系统、图形接口上。

  microwindows 目前的开发重点则在底层的图形引擎上,它不需要其它图形系统的支持。在linux 操作系统上,microwindows 也可以充分利用linux 提供的framebuffer机制来显示图形。并且,microwindows 还具有很强的移植性,能够在大多数微处理器上运行。

  qt/ embedded 由于移植了大量原来基于qt 的xwindows 程序,提供了非常完整的嵌入式gui 解决方案,再加上opera 浏览器,可以说是一个成熟的商业软件。然而,qt/ embedded 不能运行在非qt 的软件中,其源代码也过于庞大。

  作为一个开放源代码项目,microwindows 将现代图形窗口技术的一些特性展现给了编程团体,而不需要诸如microsof t windows 或x window 这样占用较大磁盘和ram 空间的高级窗口的支持。它直接面向显示硬件本身,不需要任何操作系统或其它图形系统的支持,可以在linux 2. 0 以上的framebuffer 系统上很好地运行。microwindows 本身就被设计成便于移植、能够在大多数硬件和软件环境下运行的embedded gui。

  microwindows 最新版本0. 9 有如下新特性:

  (1) 支持新的nxl ib 项目,nxl ib 对x11 的二进制程序可以不加修改地直接在microwindows 里运行,而无需x11 server 支持;
  (2) 支持sharp zaurus、tuxscreen、trimedia 及cygnus x11 平台;
  (3) 内建标准化校准(nxcal) 支持,如一个触摸屏驱动程序可以支持包含ipaq、zaurus、ads 和tuxscreen 在内的大多数arm 平台;
  (4) 增强了字符支持,包括big5 、gb2312 、euccn、euckr、eucj p 和j isx0213 等;
  (5) 大幅提高了x11 屏幕驱动程序和文本画图的速度;
  (6) 32 位argb 硬件驱动支持单色alpha ;
  (7) 支持带有havi 键盘映射的l irc 键盘;
  (8) 从源代码中为html 和pdf 文档自动生成支持基于do
 总而言之,最新版本的microwindows 在硬件驱动加速上、在图形引擎算法上以及代码质量上,都比原先的版本有较大的改进。

[!--empirenews.page--]

microwindows 的api

  microwindows 采用分层体系结构设计,提供了丰富的api 支持,支持win32/ wince gdi 和nano-x两种api 集。

microwindows 体系结构

  microwindows 的体系结构由下至上,分别为具体硬件、驱动层、图形引擎层和api 层,如图1 所示。用户可以根据具体应用需求对不同层的代码进行修改或重写。

 

  (1) 设备驱动程序。

  键盘驱动程序主要有两个,分别是kbd _ tty. c 和kbd _ bios. c 。前者主要用于linux 和el ks 系统,而后者主要用于msdos 实模式。

  鼠标驱动程序主要有三个:mou_gpm. c ,用于linux 的一个gpm 驱动; mou _ ser. c ,用于linux 和el ks 系统;mou_gpm. c ,主要用于msdos 系统。

  屏幕驱动程序有面向16 位el ks、msdos 实模式的v ga 驱动( scr_bios. c、vgaplan4. c、memp14. c 、scr_here. c)和面向linux 的framebuffer ( scr_fb. c、fb. c 等) 两种。这部分驱动程序最复杂,在设计时可以参考scr_fb. c 来设计自己的屏幕驱动程序。

  (2) 设备独立的图形引擎。

  microwindows 的图形引擎是设备独立的。引擎的每一例程都接受screendevice 结构的指针( psd) 来作为第一个参数。psd 说明了底层的显示细节,如屏幕大小的x 、y 值,屏幕颜色ncolors ,以及诸如打开、关闭、画线等函数指针。


microwindows 的api

  microwindows 提供两个应用程序接口:一是win32 接口,这种api 不是很成熟;二是nano-x ,这种api 比较好,结构上清晰,功能上也完全。

  在microwindows 上的api 接口函数的基本模型都是用来初始化屏幕、键盘和鼠标的驱动程序,然后一直等待select () 消息循环。当事件发生时,这条信息将送到用户程序。如果是用户请求图形操作,那参数将被编码后送到适当的gdxxx 核心程序上。与原始图形操作相对的窗口概念是被该层所控制的,也就是说该层的api 函数定义了窗口及其对应系统的概念。这样,系统坐标就能被转成屏幕上显示的坐标,并且可将数据传给gdxxx 核心程序,由它进行实际操作。该层亦定义图形/ 显示文件,并且会将此信息(包括裁减信息) 送到核心程序上。

  microwindows 的api 支持大多数图形绘制、裁减、窗口工具条绘制及拖拉窗口等程序。nano-x 最先是由davin bell 为minix 设计的,它被设计为c/ s 模式,一般是通过unix domain socket 在客户与服务器端进行通信的,但没有实现窗口管理,所以对窗口的处理需要使用系统提供的一个插件集,或者完全由应用程序员自已开发。另外,nano-x 不是消息驱动的,而是基于x 协议模式。在这种模式下,驱动整个系统运行的可以说是请求与事件。

  请求就是客户端为了完成某一动作而对服务器端所发出的申请,并且为每一个请求都定义了一个标识数。每个请求的结构都是不同的,但类似如下结构:

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

经过几十年发展,嵌入式技术已经用在了我们生活中的方方面面,但是嵌入式始终都带有小众,专业性强的属性,让很多非嵌入式领域的同学望而却步。近十几年的发展,物联网覆盖了越来越多领域,包括了家居,商业,工业,农业等领域,不仅吸引...

关键字: 嵌入式 物联网 技术

随着IT技术飞速发展,互联网已经进入了“物联网”时代。物联网中需要的大量设备不在依赖人与人之间的交互产生联系,更多通过协议、通信、程序设计等方式连接到一处。即 “物联网”的目的则是让所有的物品都具有计算机的智能但并不以通...

关键字: 嵌入式 物联网 计算机

最近看到APP上,给我推送了很多类似的回答,借此机会,也想着重新审视一下自己的学习历程,以及结合自身和大牛,分享一些学习经验,希望对大家有所启发和帮助。

关键字: APP 嵌入式 C语言

万物智联时代,嵌入式技术及其应用的形态将更加丰富和多元,同时也将日益呈现深度物理融合、混合架构共存、群体智能协同、网络安全攸关等诸多新的计算特性。显然,经典的嵌入式系统体系结构、软硬件技术和开发方法都已很难应对新趋势下的...

关键字: 嵌入式 物联网 计算机

物联网是新一代信息技术的重要组成部分,是互联网与嵌入式系统发展到高级阶段的融合。通用计算机经历了从智慧平台到互联网的独立发展道路;嵌入式系统则经历了智慧物联到局域智慧物联的独立发展道路。

关键字: 嵌入式 物联网 计算机

今天,小编将在这篇文章中为大家带来工控主板的有关报道,通过阅读这篇文章,大家可以对工控主板具备清晰的认识,主要内容如下。

关键字: 工控主板 嵌入式 主板

随着工业4.0、医疗电子、智能家居、物流管理和电力控制等快速的发展和推进,嵌入式系统利用自身的技术特点,逐渐成为众多行业的标配产品。嵌入式系统具有可控制、可编程、成本低等,它在未来的工业和生活中有着广阔的应用前景。在现在...

关键字: 嵌入式 物联网 人工智能

长久来看,嵌入式只会越来越火,随着人工智能时代的发展,嵌入式必定又将迎来一次浪潮和技术的巨大变革。人工智能越是想要表达智能水平,就越要依靠嵌入式技术,嵌入式技术将朝着自动化控制和人机交互发展。嵌入式因其体积小、可靠性高、...

关键字: 嵌入式 物联网 人工智能

嵌入式软件技术到目前为止己经在很多领域起到了中流砥柱的作用,例如在电子消费、移动通讯方面,这种技术为我国的很多行业提供了更多的可能性。未来,嵌入式软件技术会为人类做出更大的贡献。伴随着计算机技术与电子技术的成熟发展,电子...

关键字: 嵌入式 软件 人工智能

esim卡的全名为Embedded-SIM,意思就是嵌入式的SIM卡。esim卡的原理简单来说,就是将手机传统插入到手机里的SIM卡直接嵌入进设备芯片中,这样大家就不必再手动物理插入SIM卡,减少了麻烦的同时也降低了si...

关键字: 嵌入式 esim卡 手机

嵌入式教程

6897 篇文章

关注

发布文章

编辑精选

技术子站

关闭