2 嵌入式GUI的实现平台
GUI是图形用户接口,一般用于PC机上人机交互界面的设计。而对于嵌入式GUI来说,由于嵌入式设备对资源的要求很严格,不同的嵌入式设备需要定制不同的嵌入式系统,那么对GUI的要求也就不一样,因此,对于不同的嵌入式系统来说GUI也必须是可定制的。对于嵌入式的硬件来说,要求定制的嵌入式GUI应具有轻型、占用资源少、性能高、可靠性高、可配置等特点。由于Linux操作系统具有源码公开性、可移植性、可裁剪性和灵活性等优点,所以嵌入式GUI的开发常在Linux环境下进行。
Qt/Embedded是著名的Qt库开发商正在进行的面向嵌入式系统的Qt版本。它是专门为嵌入式系统设计图形用户界面的工具包,包括一个完整的窗口系统。它的特点是可移植性比较好,设计者能轻易的加入各种显示设备和硬件输入设备,很多基于Qt的XWindow都可以非常方便的移植到嵌入式版本。
Qt/Embedded为开发者提供了丰富的API调用功能,并公开源代码。Qt/Embedded提供了非常丰富的窗口小部件(Widgets),并且还支持窗口部件的定制,因此它可以为用户提供漂亮的图形界面,但同时丰富的窗口对象也增大了软件的体积,所以,Qt/Embedded一般用于对运行环境不太苛刻的嵌入式设备中。
3 嵌入式Qt系统的特点
Qt/Embedded移植了大量的原来基于Qt的XWindows程序,并提供了非常完整的嵌入式GUI解决方案,是一个成熟的GUI平台,具有如下特点:
(1)Qt遵循GPL协议,开放主要的源代码,用户可以在GPL的规定下自由添加新特性。
(2)与其他嵌入式GUI相比,嵌入式Qt不仅是一个完整的窗口系统,而且也是一个应用程序框架,这更有利于应用程序的开发。
(3)Qt具有丰富的API,包括多达250个以上的C++类,支持诸如对图形、网络、数据库、I/O操作、各种控件和XMI等众多功能,可满足大多数嵌入式应用系统开发的需要。
(4)Qt是一个GUI仿真工具包,它使用各自平台上的低级绘图函数仿真MS Windows和Motif(商用Llnix的标准GUI库),因此程序运行速度快。
(5)Qt良好的封装机制使得Qt的模块化程度非常高,可靠性好,易于程序开发。
基于Qt的这些特点,在本车载嵌入式娱乐系统的开发过程中,本文采用了嵌入式Qt作为图形用户界面开发的GUl支持平台,有效提高了应用程序的开发速度。
4 基于嵌入式Qt的车载GUI的设计
4.1 基于嵌入式Qt的车载GUI的总体设计
基于Linux的车载娱乐系统运行环境如表l所示,底层由Linux内核和驱动程序构成。该内核是经过裁减过的嵌入式Linux2.4,其中包括电源管理系统;驱动程序提供对各种接口硬件的支持;中间层是基于QT/Embedded的嵌入式Qt库。它精简和优化了各种图形操作,程序运行时无需额外系统的支持,可以有效减少内存消耗和CPU负担。QT/Embedded本身是可扩展的,并能不断地升级。开发人员可以根据自己所面对的嵌入式设备的实际需要,对其进行适当的裁减,经过裁减所得到的QT/Embedded可以大约节约800k到3MB的内存空间,这样也就意味着用Qt开发比用其他工具包开发相同的应用程序,在生成可执行文件后,代码所占用的内存空间要小。最顶层是整个车载娱乐应用系统,它是实现车载娱乐具体功能的应用集合。