欢迎来到天天文库
浏览记录
ID:25080115
大小:51.50 KB
页数:4页
时间:2018-11-17
《嵌入式linux的minigui研究和移植》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、嵌入式Linux的MiniGUI研究和移植
2、第1但目前GUI的实现方法各有不同[1]: ①某些大型厂商有能力自己开发满足自身需要的GUI系统。 ②某些厂商没有将GUI作为一个软件层从应用程序中剥离,GUI的支持逻辑由应用程序自己来负责。 ③采用某些比较成熟的GUI系统,比如MiniGUI、MicroiniGUI MiniGUI[2]由原清华大学教师魏永明先生开发,是一种面向嵌入式系统或者实时系统的图形用户界面支持系统。它主要运行于Linux控制台,实际可以运行在任何一种具有POSIX线程支持的POSIX兼容系统上。Mini
3、GUI同时也是国内最早出现的几个自由软件项目之一。稍后将对它作详细的介绍。 (2)MicroMX指令进行了优化,OpenGUI运行速度非常快。正由于其内核用汇编实现,可移植性受到了影响。通常在驱动程序一级,性能和可移植性是矛盾的,必须找到一个折衷。 (4)QT/Embedded QT/Embedded[5]是著名的QT库开发商Trolltech的面向嵌入式系统的QT版本。这个版本的主要特点是可移植性较好,许多基于QT的XiniGUI的特点和体系结构2.1MiniGUI的特点 MiniGUI的主要特点有[1]: ◇遵循GP
4、L条款的纯自由软件。 ◇提供了完备的多窗口机制,包括: 多个单独线程中运行的多窗口; 单个线程中主窗口的附属; 对话框和预定义的控件类(按钮、单行和多行编辑框、列表框、进度条及工具栏等); 消息传递机制。 ◇多字符集和多字体支持,目前支持ISO8859-1、GB2312及Big5等字符集,并且支持各种光栅字体和TrueType、Type1等矢量字体。 ◇全拼和五笔等汉字输入法支持。 ◇BMP、GIF、JPEG及PCX等常见图像文件的支持。 ◇中的framebuffer和videobitstreambuffer写入
5、,就可以实现对TV和显示器的刷新。像素的写入方式和顺序如图3所示[6]。 下面介绍各接口函数: Open,Close 基本的初始化和关闭函数。在Open函数里要选择子图形驱动程序,将其实现的函数赋给本PSD结构的函数指针。这里只考虑基于Framebuffer的图形引擎的初始化。 SetPalette,GetPalette 当使用8位或以下的图形模式时,要使用系统调色板。这里是调色板处理函数,它们和apMemGC,FreeMemGC 内存屏幕是一个伪屏幕。在对屏幕图形操作过程中,比如移动窗口,先生成一个内存屏幕,将物理屏
6、幕的一个区域拷贝到内存屏幕,再拷贝到物理屏幕的新位置,这样就减少了屏幕直接拷贝的延时。AllocateMemGC用于给内存屏幕分配空间,MapMemGC做一些初始化工作,而FreeMemGC则释放内存屏幕。 Draouseg(this)">4总结与展望 到目前为止,我们的移植工作已经顺利完成。MiniGUI已经能成功运行在我们的DVD720平台上。作为底层支持的GUI系统,MiniGUI也应该像操作系统一样是开放源码的自由软件,并应该得到开发商的共同推动。到目前为止,已经有多家嵌入式系统开发商采用MiniGUI开发嵌入式系统,
7、并且已经开发出了许多重要的应用程序。我们期望能够有更多的人加入MiniGUI的开发,共同促成MiniGUI成为嵌入式Linux系统上的标准GUI。尽管MiniGUI目前的功能已经非常强大,并且已经成功应用于许多嵌入式系统,但还需要在如下领域进行开发: ◇建立一个C++类库来封装MiniGUI的API; ◇建立基于传统进程级客户/服务器体系结构的MiniGUI,以便能够让MiniGUI适合于一些较大的嵌入式系统,比如支持全功能浏览器的机顶盒。随着MiniGUI不断推广和功能的加强,它也将在实际应用中不断走向成熟。实时嵌入式系统上
8、的GUI开发正处于开始阶段。在这个领域,有许多技术难题等待自由软件程序员去解决。
此文档下载收益归作者所有