当前位置: 主页 > 电脑系统维修 > MiniGUI:跨操作系统的嵌入式图形??持系统

MiniGUI:跨操作系统的嵌入式图形??持系统

发布时间:07-13 06:38点击:

  为指标嵌入式货物取舍适宜的嵌入式图形??持零碎变化与取舍嵌入式操作零碎一样颇具应战性。外乡公司开拓的MiniGUI是一度高效、牢靠、可定制、玲珑灵敏的图形用户界面??持零碎,并存正在跨软件阳台、跨操作零碎的可移栽性,无比适宜于实时嵌入式货物开拓。白文细致论述了MiniGUI的特性、运转形式和使用。随着高端消耗类电子货物(PDA、手机等)的宽泛使用,原先仅正在军工、轻工业掌握等畛域中运用的实时嵌入式操作零碎,遭到越来越多的关心。由于嵌入式货物自身是一种高低定制化的软软件集成货物,单个操作零碎无奈满意各类嵌入式货物的多样化需要,因而,建筑界有许多各具特征的实时嵌入式操作零碎货物可供取舍。正在嵌入式货物开拓中,除操作零碎之外,开拓人员关心至多的此外一度零碎硬件组件就是图形??持零碎。只需是面临人机交互的嵌入式货物,就触及到文字或者许图形的输入成绩。没有过,正在嵌入式零碎上的GUI使用开拓,没有像PC阳台上的使用开拓那样简单和便当。一是由于设施的可用资源无限(CPU演算威力、动态和静态存储时间等),二是由于操作零碎需要的底层机制无限。那样,为存正在没有同软件配置的嵌入式货物以及各类实时嵌入式操作零碎需要性能齐备、且又适宜嵌入式货物特性的GUI??持零碎,具有着诸多技能应战。嵌入式操作零碎的取舍“内核接口+ANSI C库”的形式,是大少数嵌入式操作零碎开拓采纳的编程形式。然而,这种形式还具有一些成绩。假如咱们要运用ANIS C库中的规范I/O接口,则需求操作零碎需要资料零碎及字符输入的??持;假如咱们要运用ANSI C库中的外存治理因变量(malloc/free因变量族),就需求需要对准于详细软件的堆治理计划及实古代码。因而,RTOS一般都设想为模块化的硬件零碎,需求怎么办的性能,可向RTOS货物厂商购置对于应的模块来完成。

  图 1的正常硬件构造。实践上,没有同RTOS之间的差别,除非正在使命治理上的中心差别之外,其余的次要差别就正在核心模块上。图1给出了RTOS的正常硬件构造。RTOS可区分为如次多少个品种:

  1.保守实时嵌入式操作零碎。次要囊括:VxWorks、pSOS、Nucleus、WinCE等。VxWorks和pSOS的用户次要集合正在军工、轻工业掌握及电信畛域,Nucleus和WinCE正在消耗类货物中使用较为宽泛。

  2.源码的嵌入式操作零碎。垂范专人有Linux/uClinux、eCos。由于保守实时嵌入式操作零碎价钱比拟高贵,因为许多用户开端运用免受权费的Linux/uClinux等操作零碎开拓本人的嵌入式货物。Linux操作零碎从性质上归于通用操作零碎,短少强实时??持,因而嵌入式Linux正在某些没有需求强实时性的嵌入式货物中失去了较多使用,垂范的货物有智能人机(这类货物中的实时性次要经过公用软件芯片)、查问终端等。uClinux是Linux的一度变种,次要运转正在没有外存治理单元(MMU)的CPU架设上。由于没有外存治理单元,uClinux无奈完成古代操作零碎可以需要的历程地点时间等初级特点,但它最大水平地保存了Linux的零碎调用性能,并且资源耗费低,因而正在一些中低端的32位嵌入式货物中失去了使用。eCos也是一种开源、免受权费的RTOS货物。和Linux/uClinux相比,它更相似保守的实时嵌入式操作零碎,并且需要了丰盛的核心模块,如资料零碎、TCP/IP接口模块、POSIX兼容接口模块等。依据作者的实践使用经历,eCos操作零碎正在定然水平上能够用于代替保守实时嵌入式操作零碎。

  3.新式实时嵌入式操作零碎。次要囊括uC/OS-II、ThreadX等操作零碎,它们的涌现,填补了RTOS操作零碎市面的中低端市面,给辽阔嵌入式货物开拓者需要了性价比拟高的取舍。

  4.外地实时嵌入式操作零碎。近多少年,中国也有厂商开端需要自主研制的实时嵌入式操作零碎,垂范的有Hopen和Delta操作零碎。该署货物曾经正在消耗类电子货物和军工畛域中失去了一些使用。经过的引见能够看到,嵌入式操作零碎市面中具有各族货物可供取舍。嵌入式货物的品种丰盛,需要多样,没有太能够涌现相似PC这样由一度操作系??霸天下的情况。嵌入式货物开拓中罕用的图形处理计划正在嵌入式货物的开拓进程中,硬件开拓人员一般采取如次多少种办法来处理货物的图形需要:

  1.对准于一定图形输入设施的接口,自行开拓图形有关的性能因变量。应用这种手腕编写的顺序,无奈将显现论理和数据解决论理划离开来,从而招致顺序构造没有好,方便于调剂,并招致少量的代码反复。这种计划的缺欠很显然,即可移栽性差,利润高。

  2.购置对准于一定嵌入式操作零碎的图形两头件硬件包。一些嵌入式操作零碎厂商,也为本人的操作零碎特地开拓了对于应的GUI两头件货物。如uC/OS-II上的uC/GUI、Nucleus上的GRAFIX包、VxWorks上的WindML包之类。这种计划为嵌入式货物开拓需要了间接可用的计划,况且可以和原有操作零碎优良合作;但缺欠是这类硬件包的性能一般比拟容易,且价钱高亢。此外,基于该署硬件包开拓的 GUI 使用硬件没有具有跨操作零碎的可移栽性。

  3.采纳源码的嵌入式GUI??持零碎。随着嵌入式Linux操作零碎的使用,开源社区也正在一直为嵌入式零碎需要没有同的源码嵌入式图形处理计划,如MicroWindows、OpenGUI,以及早先涌现的picoGUI等。该署源码的嵌入式GUI硬件需要免受权费的处理计划。但是,因为短少生意公司的??持,该署硬件正常具有较多的硬件缺点,加上缺少部分技能??持,因而,具有着很大的开拓危险。

  图 2和嵌入式操作零碎的联系。

  4.运用由硬件开拓商需要的嵌入式GUI货物。这类货物有飞漫硬件技能无限公司开拓的MiniGUI、挪威TrollTech公司的Qt/Embedded等。这两种货物都是开源(遵照GNU的GPL条目公布)的嵌入式GUI硬件货物,但均采纳双受权形式,即对准于生意运用收取硬件答应用度。MiniGUI归于中低端货物,存正在跨操作零碎特点,以及适宜嵌入式货物的玲珑、高效的特性。Qt/Embedded归于高端货物,只??持嵌入式Linux操作零碎,需求16MB之上的动态存储时间及6?MB之上的静态存储时间。MiniGUI的特性及使用MiniGUI作为中国为数没有多的多少个硬件名目之一,是面临实时嵌入式零碎的重量级图形用户界面??持零碎,1999年终遵照GPL条目公布第一度读物,眼前已停滞到1.6.1读物。MiniGUI为实时嵌入式操作零碎需要了无比完美的图形及图形用户界面??持。MiniGUI自身的可移栽性设想,使得没有管正在哪个软件阳台、哪种操作零碎上运转,MiniGUI均能为下层使用顺序需要分歧的使用顺序编程接口(API)。作为操作零碎和使用顺序之间的两头件,MiniGUI将底层操作零碎及软件阳台差异躲藏了兴起,并对于下层使用顺序需要了分歧的性能特点,该署性能特点囊括:

  1.齐备的多窗口机制和信息传送机制。

  2.罕用的控件类,囊括动态文本框、旋钮、单列和多行编者框、列表框、结合框、速度条、属性页、机器栏、拖动条、树型控件、皇历控件等。

  3.对于话框和信息框??持以及其它GUI元素,囊括菜单、减速键、拔出符、定计器等。

  4.界面肌肉??持。用户可经过肌肉??持失掉外观无比华美的图形界面。

  5.经过两种没有同的外部硬件构造??持低端显现设施(如单色 LCD)和高端显现设施(如黑白显现器),前端玲珑灵敏,然后者正在前端的根底上需要了愈加壮大的图形性能。

  6.Windows的资源资料??持,如位图、图标、光标等。

  7.各族盛行图像资料的??持,囊括JPEG、GIF、PNG、TGA、BMP之类。

  8.多字符集和多书体??持,眼前??持ISO8859-1~ISO8859-15、GB2312、GBK、GB18030、BIG5、EUC-JP、Shift-JIS、EUC-KR、UNICODE等字符集,??持等宽布点书体、变宽布点书体、Qt/Embedded 运用的嵌入式字QPF、TrueType以及Adobe Type1等矢量书体。

  9.多种键盘格局的??持。MiniGUI除??持罕见的美式PC键盘格局之外,还??持法语、德语等语种的键盘格局。

  10.简体中文(GB2312)输出???持,囊括内码、全拼、智能拼音等。用户还能够从飞漫硬件失掉五笔、做作码等输出???持。

  11.对准于嵌入式零碎的特别??持,囊括正常性的I/O流操作,字节序有关因变量等。与其它对准于嵌入式货物的图形零碎相比,MiniGUI存正在以次一些技能劣势:1).轻型、占用资源少MiniGUI自身的占用时间无比小,以嵌入式Linux操作零碎为例,MiniGUI的垂范存储时间占用状况如次:

  1.Linux内核: 300K~500K(由零碎需要决议);

  2.资料零碎:500K~2MB(由零碎需要决议);

  3.MiniGUI??持库:500K~700K(由意译选项肯定);

  4.MiniGUI书体、位图等资源:400K(由使用顺序肯定,可减少到200K以内);

  5.GB2312输出法码表:200K(没有是必须的,由使用顺序肯定);

  6.使用顺序:1M~2M(由零碎决议)。

  总体的零碎拥有时间该当正在 2MB到4MB内外。正在某些零碎上,性能齐备的MiniGUI零碎自身所占用的时间可进一步减少到1MB以内。最新的研宣布明,MiniGUI可以正在CPU主频为30MHz,仅有4M RAM的零碎上畸形运转(运用uClinux 操作零碎),这是其它图形零碎,如MicroWindows或者许Qt/Embedded所无奈到达的。

  2)高功能、高牢靠性

  MiniGUI优良的系统构造及优化的图形接口,可确保最快的图形制图进度。正在设想之初就充足思忖到了实时嵌入式零碎的特性,对准于多窗口下的图形制图展开了少量的钻研及开拓,优化了MiniGUI的图形制图功能及资源拥有。MiniGUI正在少量实践零碎中的使用,特别正在轻工业掌握零碎的使用,证实 MiniGUI存正在无比好的功能。

  3) 可配置性

  为满意嵌入式零碎变幻无穷的需要,必需请求GUI零碎是可配置的。和Linux内核相似,MiniGUI也完成了少量的意译配置选项,经过该署选项可指名MiniGUI库中囊括哪些性能而同声没有囊括哪些性能。大致说来,能够正在如次多少个范围对于MiniGUI停止定制配置:

  1.指名MiniGUI要运转的操作零碎;

  2.指名生成基于线程的MiniGUI-Threads运转形式还是基于历程的MiniGUI-Lite运转形式,或者许但是最容易的MiniGUI-Standalone运转形式;

  3.指名要采纳老的GAL/I接口(低端显现设施)还是新的GAL/I接口(高端显现设施);

  4.指名需求??持的GAL引擎和IAL引擎,以及引擎有关选项;

  5.指名需求??持的书体类型;

  6.指名需求??持的字符集;

  7.指名需求??持的图像资料体例;

  8.指名需求??持的控件类;

  9.指名控件的全体格调,是三维格调、立体格调还是手持终端格调。

  4) 可紧缩性强

  MiniGUI丰盛的性能和可配置特点,使得它既可运转于基于龙珠的低端货物中,亦可运转于基于ARM9的高端货物中,并运用MiniGUI的初级控件格调及肌肉界面等技能,创立华美的用户界面。

  5) 跨操作系???持

  实践上,MiniGUI可??持恣意一度多使命嵌入式操作零碎;实践已??持Linux/uClinux、eCos、uC/OS-II、VxWorks、pSOS、ThreadX等嵌入式操作零碎,也能够正在Win32阳台上运转。同声,正在没有同操作零碎上的MiniGUI,需要彻底兼容的API接口。从最后的数控零碎到眼前盛行的智能人持终端设施,MiniGUI曾经正在少量货物中失去了使用。MiniGUI最次要的使用畛域大体可分成二类:高端手机、PDA类货物;数目字及机顶盒类货物;轻工业量具及掌握零碎。基于MiniGUI的嵌入式零碎硬件构造干什么MiniGUI可以正在如此泛滥的嵌入式操作零碎上运转?这是由于MiniGUI存正在优良的硬件架设,经过形象层将MiniGUI下层和底层操作零碎隔分开来。如图2所示,基于MiniGUI的使用顺序正常经过 ANSI C库以及MiniGUI本身需要的API来完成本人的性能;MiniGUI中的“可移栽层”可将一定操作零碎及底层软件的底细躲藏兴起,而下层使用顺序则无需关切底层的软件阳台输入和输出设施。此外,MiniGUI特部分运转形式概念,也为跨操作零碎的??持需要了便捷。与Linux那样的

  类UNIX操作零碎相比,正常意思上的保守嵌入式操作零碎存正在一些特别性。举例而言,诸如uClinux、uC/OS-II、eCos、VxWorks等操作零碎,一般运转正在没有外存治理单元的CPU上;那时,常常就没有历程的概念,而只程或者许使命的概念,那样,GUI零碎的运转也就天壤之别。因而,为了适宜没有同的操作零碎,咱们可将MiniGUI配置成三种运转形式:

  1.MiniGUI-Threads。运转正在MiniGUI-Threads上的顺序能够正在没有同的线程中构建多个窗口,但一切的窗口正在一度历程或者许地点时间中运转。这种运转形式无比适宜于大少数保守意思上的嵌入式操作零碎,如uC/OS-II、eCos、VxWorks、pSOS之类。千万,正在Linux和uClinux上,MiniGUI也能以MiniGUI-Threads的形式运转。

  2. MiniGUI-Lite。与MiniGUI-Threads相同,MiniGUI-Lite上的每个顺序是共同的历程,每个历程也能够构建多个窗口。MiniGUI-Lite适宜于存正在完好UNIX特点的嵌入式操作零碎,比方嵌入式Linux。

  3. MiniGUI-Standalone。这种运转形式下,MiniGUI能以历程的形式运转,既没有需求多线程也没有需求多历程的??持,这种运转形式适宜性能繁多的使用场所。相似正在一些运用uClinux的嵌入式货物中,由于各族缘由此短少线程??持,那时,就能够运用MiniGUI-Standalone来开拓使用硬件。正常而言,MiniGUI-Standalone形式的顺应面最广,能够??持简直一切的操作零碎,以至囊括相似DOS那样的操作零碎;MiniGUI-Threads形式的实用面次之,可运转正在??持多使命的实时嵌入式操作零碎,或者许具有完好UNIX特点的一般操作零碎;MiniGUI-Lite形式的实用面较小,它仅适宜于具有完好UNIX特点的一般操作零碎。没有管采纳哪种运转形式,MiniGUI为下层使用硬件需要了最大水平上的分歧性;只要多数多少个触及初始化的接口正在没有同运转形式上有所没有同。MiniGUI正在uC/OS-II操作零碎上的移栽上面以uC/OS-II操作零碎为例,容易引见MiniGUI到该操作零碎上的移栽。

  uC/OS-II无比容易,只需有一度一般的C意译器,就能实现意译并运转该操作零碎,因而,uC/OS-II率先正在讲习中失去了宽泛使用。由于其容易及实时性好的特性,现正在也有一些用户开端运用uC/OS-II操作零碎开拓正式的嵌入式货物。将MiniGUI移栽到uC/OS-II是绝对于简单的一项任务。由于uC/OS-II中缺少象malloc/free以至是printf/fprintf/sprintf那样的接口,没有过,最主要的还是缺少与POSIX-Threads兼容的接口。为此,咱们编写了POSIX-Threads的绕转接口,该署绕转接口兼容于POSIX-Threads。同声,咱们还完成了 malloc/free,以及printf/sprintf/fprintf等接口。因触及到如此多底层特点的加强和修正,整个零碎的调剂将常艰难的。为处理调剂成绩,咱们率先正在SkyEye(大学陈渝掌管的硬件名目,模仿器上运转uC/OS-II操作零碎及MiniGUI for uC/OS-II。咱们率先运用了MiniGUI外部的Dummy GAL引擎和Dummy/Auto IAL 引擎(这两个引擎辨别经过硬件办法来模仿实践的输入和输出设施,如LCD显现屏及键盘)来运转MiniGUI的使用顺序。虽然咱们看没有到实正在的银幕输入,但从使用顺序正在运转进程中打印的输入消息,咱们能够看到MiniGUI for uC/OS-II曾经畸形任务了。接上去的任务就是将MiniGUI for uC/OS-II移栽到正式的软件货物中。咱们正在S3C2410开拓板上用ADS的armcc意译并测试了MiniGUI的uC/OS-II读物。这次,咱们对准于某个开拓板编写了正式的图形和输出引擎。MiniGUI的一切示例顺序都能够正在这块开拓板上畸形运转。笔者:魏永明

  飞漫硬件技能无限公司

  什么是嵌入式零碎?

  嵌入式零碎是以使用为核心,以电脑技能为根底,况且软软件可裁剪,实用于使用零碎对于性能、牢靠性、利润、容积、功耗有严厉请求的公用电脑零碎。它正常由嵌入式微解决器、核心软件设施、嵌入式操作零碎以及用户的使用顺序等四个全体组成,用来完成对于其余设施的掌握、或者治理等性能。

  什么是RTOS?

  RTOS是实时操作零碎(real-time operating system)的首假名缩写,IRTOS指支撑I2O协定的实时操作零碎,也即支撑I2O标准的中心使用顺序接口与壳子使用顺序界说的实时操作零碎。IRTOS为设施驱动顺序需要的与圆桌面操作零碎为使用硬件需要的相相似。运用IRTOS的最大益处正在于驱动顺序的可互操作性,可反复应用性和可移栽性。

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
电脑维修