随着多媒体信息技术、互联网技术、通信技术产品智能化趋势的加强,嵌入式系统以其占用内存少、高性能、具有完全的可伸缩性、性能稳定等特点得到了越来越广泛的应用。其应用主要包括网络通信、航空航天、医疗仪器、状态监控以及消费电子产品等领域。是美国VxWorks WindRiver System Inc.公司推出的强实时嵌入式操作系统,它在高可靠、高实时性、高性能领域有独到的优势和广泛的应用,特别是因为成功应用于火星探路器而名声大噪。本文将主要围绕VxWorks操作系统的图形用户接口的实现机制进行分析,讨论WorldWind软件的移植。

1 WorldWind软件概述

NASA就是我们所熟知的美国航天宇航局,在美国的高调宣传之下与FBI一样如雷贯耳,能够使用NASA所开发的软件会不会有一种特殊的心情呢?WorldWind(简称WW)就是一款出身高贵的软件,拥有NASA的血统。同时它也是一款特殊的软件。华丽的界面,出彩的图象,完全自主的功能应用,完全可以和GoogleEarth(简称GE)软件相媲美。它与GoogleEarth最大的优势在于它的代码开源,这样便于我们更加深入的了解他。这也是WW比GE更受大家的青睐的最重要的原因。同时也为我们这些爱好者移植该软件提供了方便。

1.1 Add-On功能

WW是一款可以让用户通过从太空视角全面观察地球表面的软件,以他优秀的卫星图库与地形资料,通过3D技术的应用,让用户拥有身临其境的感觉。与同类型软件一样,亦可以使用图层功能来方便使用者更快的索取自己想要的信息。不过不同的是WW的图层更为强大。这一切都得益于他的一个名为Add-On 的功能。此功能让你不光可以享有官方所提供的图层数据,更为让人兴奋的是由于WW为开源软件,他允许其他第三方人员为它提供编写的成品图层功能。图层是做什么用的?简单的来说,如果WW给我们提供的模型球体是这款软件的骨架,那么图层则就是WW的血脉,肌肉。两者是相辅相成的关系,骨架固然重要,但是人与人的不同并不简单的体现在骨架上,更多的是依靠血脉,肌肉来体现。这个功能就是为了让软件更为丰满,给于其很高的增长潜力,而同类型的 GE 则较之逊色的多了。

1.2 DDS图片

WW默认设置中将下载到本地的图片(一般是jpg格式)转换为dds格式,这样本地的cache中都是dds文件,一般说来同样分辨率的dds文件比jpg文件大。我通过修改默认设置,不让WW转为dds格式,直接用jpg格式,发现WW中显示效果差不多,地形也能正确渲染。

DDS是DirectDraw Surface的缩写,它是DirectX纹理压缩(DirectX Texture Compression,简称DXTC)的产物。许多3D软件包括大部分游戏都用dds格式,又称“贴图”,许多fans通过修改dds文件可以生成特殊显示效果。

在WW中也用到了其它格式的图片:

JPEG:(文件扩展名为jpg或jpeg)应用最广泛的图片格式之一,它采用一种特殊的有损压缩算法,将不易被人眼察觉的图像颜色删除,从而达到较大的压缩比(可达到2:1甚至40:1),所以“身材娇小,容貌姣好”,特别适用于网络环境。

PNG:与JPEG格式类似,网页中有很多图片都是这种格式,压缩比高于GIF,支持图像透明,可以利用Alpha通道调节图像的透明度。

BMP:Windows系统下的标准位图格式,使用很普遍。其结构简单,未经过压缩,一般图像文件会比较大。它最大的好处就是能被大多数软件“接受”,可称为通用格式。

GIF:分为静态GIF和动画GIF两种,支持透明背景图像,适用于多种操作系统,“体型”很小,网上很多小动画都是GIF格式。其实GIF是将多幅图像保存为一个图像文件,从而形成动画,所以归根到底GIF仍然是图片文件格式。

1. WindML的安装

VxWorks WindML install

2. WindML的配置

(1) D:\Tornado2.2\target\config\pcPentium\config.h

打开config.h文件,查找#include "pc.h", 在这之后添加

#define INCLUDE_WINDML
#define INCLUDE_WINDML_PS2_POINTER
#define INCLUDE_WINDML_PS2_KEYBOARD

重新建立bootrom。

(2) 配置WindML

重新打开Tornado,将加载WindML控件。

Tools---WindML --- WindML Configuration (Pentium_VGA_INDEXED4_640*480)

1、介绍

WindML即Wind Media Library(媒体库),它支持多媒体程序运行于嵌入式操作系统,风河公司设计它主要是用来提供基本的图形、视频和声频技术以及提供一个设计标准设备驱动程序框架。

WindML API库提供了一个统一的图形硬件接口以及处理输入设备和输入设备事件的能力。 WindML有一下几个设计目的:

  • 简单。WindML提供一个灵活的图形源语集、基本的视频和声频功能;
  • 硬件便宜。可以在多种CPU体系结构上使用;
  • 操作系统便宜。可以在多种RTOS系统上使用;
  • 驱动程序开发的容易。提供给开发者一个定制设备驱动程序的机理。

2、WindML结构

WindML包括两个组件――软件开发包(SDK)和驱动程序开发包(DDK)。

SDK组件用来开发应用程序,它提供了一个全面的API集,包括图形、输入处理、多媒体、字体和内存管理。

DDK组件是用来实现驱动程序的,它提供了一个完整的驱动程序参考集,包括硬件配置和API集,以使得开发者能够迅速的引导和使用自己的驱动程序。

WindML可以概括为如图1-1所示的结构:

图1-1 WindML结构

VxWorks WindML SDK

2.1 SDK

首先,需要准备好minigui1.6.10的库文件,和一些示例文件,可以到minigui.org上下载.(可能我机器上的版本和下载的开源版本不一样,但是这个文章写出来就是为了备忘的。所以以我自己的版本为主介绍)

1. Cygwin环境安装

这个就不多说了,windows上很有名的模拟linux平台的工具软件。可以很方便的下载到。安装的时候注意安装make, vim两个东西即可。

2. 在cygwin上交叉编译minigui的产品

由于我这里的目标板是mips的核,那我就以mips为例:

minigui源代码中编译文件:

makefile.ng是用来vxworks的编译的文件.打开这个文件可以看到

include rules.make

打开rules.make文件,可以看到这个文件中做了一些相关的设置。注意第一句

TARGET_RULES=build/rules-mipse.vxworks

看来用的定义是放在这个build/rules-mipse.vxworks文件中的,那我再打开这个文件。

这个文件中有几个定义需要注意:

PREFIX:这个地方定义了编译好的minigui库文件和头文件放置的位置

TARGET_DIR:这个地方定义了tornado工具安装的路径,方便寻找vxworks的库文件和交叉编译链工具

CFLAGS:定义了minigui编译时候的参数,有类似下面的参数

-g -mips3 -EL -D__LITTLE_ENDIAN__ -Wall -DTOOL_FAMILY=gnu -DTOOL=gnu -D_WRS_KERNEL -DMIPSEL -DCPU=MIPS64 -D__mips__ -D__MIPSEL__

我们需要注意修改的地方有两个

-D__LITTLE_ENDIAN__ 大小端,根据不同的客户机有不同的要求,可能是__BIG__ENDIAN__ __LITTLE_ENDIAN__

-DCPU=MIPS64 cpu类型:也需要根据不同的客户机的要求,MIPS64 MIPS32等

上面的内容都设置好了之后,我们还需要根据板子不同需要做一些代码定制,如下:

关闭鼠标,关闭png,jpeg,commlcd(为了排除问题,只打开dummy 引擎);打开DUMMY引擎。

1. 前言

本文详细描述了在 vxworks6.8 操作系统下,如何安装设置 QT 的方法,给出了详细的过程,图文并茂,并给出了在 vxsim 虚拟机和实际目标板上编译运行 QT demo 程序的详细过程。

2. 开发环境及工具

安装前先准备以下工具

序号 名称 备注
1 Qt-vxworks-commercial-src-4.8.3.zip  
1 Qt-vxworks-commercial-src-4.8.3.zip  
2 MinGW5.1.6  
3 Strawberry Perl  
4 vxWorks6.8(workbench3.2)  
5 Win7(64bit) 开发机操作系统

以上工具中,StrawBerry 可从官网上下载(http://strawberryperl.com),MinGW也可从官网上下载(http://sourceforge.net/projects/mingw/files) ,QT for vxworks 版本和 vxworks6.8 要从相关渠道购买。

3. 开发环境安装配置

3.1. 安装 Workbench3.2

详见 vxworks6.8 安装手册,按说明书一步一步安装即可,不是本文重点。

3.2. 安装 MinGW

解压 MinGW,双击 MinGW-5.1.6.exe 按默认设置安装即可,建议安装在 c 盘。

3.3. 安装 Strawberry Perl

双击 strawberry-perl-5.18.1.1-32bit.exe,按默认设置安装即可,建议安装在 c 盘。 安装后要设置环境变量。在 Path 值下添加

C:\MinGW\bin;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin