VxWorks 图形化初步调研 尹文轩 VxWorks 是美国风河公司开发的一款嵌入式实时操作系统,它在实时性、可靠性和可裁剪性上的表现十分优秀,因而被广泛的应用于通讯、航空航天、军事测控、数字信号处理等高尖技术领域中。嵌入式应用要求内核尽量的精简,实时应用又要求对实发事件能及时响应,一般来说这两种特性是与图形化界面应用相矛盾的,但是为了加强对系统的易用性,VxWorks 提供了一个媒体库 WindML,它可以更快更简单的开发出对系统资源消耗较小的图形界面。 在WindML 的基础上,PSA(Professional Software Associates, Inc.)公司开发的Zinc 提供了集成化程度更高的图形化开发类库,开发者可以利用它在嵌入式实时操作系统上进行更加便捷的图形开发。本文针对这两种库实现 VxWorks 的图形化界面进行一个详细的介绍。 一、 WindML 1.1 概述 WindML 即 Wind Media Library(风河媒体库),它是VxWorks 操作系统中库的一部分。它为 VxWorks 的开发者在本地设备上实现图形化用户界面(GUI)提供了基础支持,支持基于嵌人式操作系统的多媒体应用程序,提供基本的图形、视频、声频技术,并且提供了一个设计标准设备驱动程序的框架,WindML 还提供了一系列工具用来处理输人设备和过程事件。安装 WindML 需要的前提条件是开发环境 Tornado II 和系统VxWorks 5.x 1.2 特性 窗口化管理 完整的2D 图形 API 支持 1-,4-,8-,16bit 颜色帧缓冲驱动 极小的内存占用:75KB~200KB 可变 易于移植至新的硬件设备上 硬件加速图形输出 支持 JPEG 图像 支持 Alpha 混合与视频叠加 对 Tornado II 中的VxSim 模拟器支持 WindML 的这些特性既能较好的完成对图形化界面的基本支持,同时又符合了嵌入式实时应用的特征,以灵活的体系为基础实现尽可能小的内存占用,同时提供最佳性能。 1.3 体系架构 WindML 由两个基本 API 构成,分别是软件开发包(SDK)和驱动程序开发包(DDK)。图1 概括了它的层次架构,下面对两个层次进行详细描述。 1.3.1 SDK 层 SDK 用来实现应用程序的开发。它为图形、输人设备、多媒体、字体、内存管理等设备提供了一个全面的API 集合,并且允许开发者在不同的硬件平台下完成独立于硬件的代码。该层实际上定义了应用代码和底层硬件驱动之间的一个接口,这可以使开发者不关心硬件细节来进行上层开发,它提供了下列 API 集合:...