基于WindML的VxWorks图形驱动研究

时间:2022-03-17来源:佚名

基于VxWorks操作系统的图形显示有多种解决方案。VxWorks图形开发组件WIND MEDIA LIBRARY是一个适用于VxWorks下开发图形用户界面的媒体库,它提供了一系列的API函数,功能强大,易于实现图形用户界面的开发。

鉴于此,本文介绍了图形设备的硬件结构以及图形设备驱动的体系结构,并重点阐述了windML下的VxWorks图形驱动程序开发的一般步骤。

1 VxWorks及WindML介绍

VxWorks操作系统是Wind River System公司(简称"风河公司")设计开发的一种嵌入式实时操作系统(RTOS),具有良好的持续发展能力、高性能的内核以及友好的用户开发环境。它以其良好的可靠性和卓越的实时性被广泛应用在通信、军事、航空和航天等高尖技术及实时性要求极高的领域中,如卫星通信、军事演习、弹道制导和飞机导航等。

WindML(Wind Media Library,媒体库),支持基于嵌入式操作系统的多媒体应用程序,为多种操作系统提供基本的图形、视频、声频技术,并且提供了一个设计标准设备驱动程序的框架,WindML还提供了一系列工具用来处理输入设备和过程事件。

WindML包含两个组件:软件开发工具包(SDK)、驱动开发工具包(DDK)。

SDK用来实现应用程序的开发。它为图形、输入设备、多媒体、字体、内存管理等设备提供了一个全面的API集合,并且允许开发者在不同的硬件平台下完成独立于硬件的代码。

DDK用来实现驱动程序的开发。它提供了一系列通用硬件配置下的驱动参考程序,以及能够使开发者迅速开发出驱动程序的API集合。DDK具有可扩展性和可定制性。

2图形驱动的体系结构

WindML图形驱动主要通过以下3层进行通信:2D层、板级支持包及操作系统和图形硬件设备。体系结构如图1所示。

2.1 2D层

2D层与图形驱动程序通过UGL图形接口结构(ugL_ugi_driver结构)进行通信,ugL_ugi_driver结构在install-Dir/target/h/ugl/uglugi.h中定义。结构中的每一个功能指针对应一个执行相应图形显示操作的驱动程序。2D层不直接调用驱动程序,它通过结构功能指针调用驱动程序。举例如下:

如果应用需要画线,就要调用uglLine()。此函数在installDir/target/src/ugl/2d下执行,然后uglLine()通过UGL结构的线条程序指针调用设备驱动程序的线条驱动程序,驱动程序就把线条画在指定的位置。一些图形驱动程序在图形设备画图的地方运用了加速程序,驱动可以快速地为应用返回一个控制。有的图形驱动程序运用软件程序有效地把数据每次一个像素地写入目的位置。2D层并不知道图形驱动是怎样勾画线条,也不知道图形设备硬件是怎样操作的。UGI结构提供了一个提取层分离了2D层和图形驱动。

2.2板极支持包及操作系统

WIND MEDIA LIBRARY图形驱动程序通过硬件提取API与操作系统通信,硬件提取API提供了允许图形驱动保留独立于母板和CPU的接口。硬件提取API执行以下操作:

①映射设备到MMU;

②在引导时设置设备相关寄存器;

③返回图形设备的基地址及每一个地址偏移量。

2.3图形硬件设备

图形设备接口由图形硬件设备定义。对于一些图形设备,其接口是复杂的SVGA寄存器装置,好多寄存器为不同类型的输出提供特征以及屏幕尺寸的适时更新。这些设备一般包含几个可扩展的寄存器作为图形加速器。可加速的操作有线条、填充、颜色扩充、光标。有的图形设备相对比较简单,只需要连接LCD即可,不提供加速器。

根据以下步骤实现图形驱动。

3.1创建源文件及头文件目录

WIND MEDIA LIBRARY图形驱动目录结构如下:

①installDir/target/src/ugl/driver/graphics。图形设备所有的源代码都在此目录下。在此目录下,对应每一个图形设备厂商都有一个子目录,并且在相应的子目录下,根据不同的设备型号或者颜色深度又可建立下一级的子目录。

②installDirtargethugldrivergraphics。图形设备所有的头文件都在此目录下。在此目录下,对应每一个图形设备厂商都一个子目录。除了指定厂商的图形设备驱动程序之外,在同级子目录里还包含了通用的图形驱动程序,通用的驱动程序可以被所有的驱动程序所用。如果要添加新的图形设备驱动程序,只需在此图形驱动结构目录下建立相应厂商子目录。

3.2创建驱动头文件

驱动程序头文件是根据设备硬件定义的。部分信息必须在头文件里定义,这些信息注释了WIND MEDIA LIBRARY的其他部分如何访问图形驱动和驱动程序如何获得配置信息。

(1)图形驱动结构

图形驱动程序结构必须在头文件中由ugl_ugi_driver结构定义。此结构包含连同2D层接口一起的所有的驱动数据元素以及2D层访问图形驱动的功能指针。下面给出了一个图形结构的定义:

相关阅读

车网互动技术:新能源汽车与电网的双赢新模式

近年来,随着新能源汽车的普及,车网互动(V2X)技术逐渐成为热门话题。车网互动,特别是在新能源汽车领域中,指的是车辆与电网之间的双向互动。这种互动可以通过智能充电系统实现,允许...
2024-08-19
车网互动技术:新能源汽车与电网的双赢新模式

同济大学马志勋副研究员:高速磁浮NPC三电平逆变器的过调制策略

近期,第九届电气学科青年学者学科前沿研讨会在徐州举办,同济大学马志勋副研究员应邀就《高速磁浮NPC三电平逆变器过调制策略研究》发表报告,现将马志勋副研究员的报告分享给...
2024-03-27
同济大学马志勋副研究员:高速磁浮NPC三电平逆变器的过调制策略

古建筑亮化工程这样才能呈现出独特的灯光效果

古建筑是历史和人文的积淀,其使用价值和夜景价值越来越受到重视。亮化工程将灯光与古建筑连接起来,以保持古建筑的初始外观。美丽的夜灯就像一种造型艺术,创造出这座城市最...
2022-08-05
古建筑亮化工程这样才能呈现出独特的灯光效果

什么是绿色照明?为什么要实施绿色照明?

在资源供应日益紧张、生态环境日益恶化的今天,我国十分重视 绿色照明 的实施。所以照明设计公司对绿色照明工程应该有比较全面的认识: 绿色照明是一项以人为本的绿色照明工程...
2022-09-19
什么是绿色照明?为什么要实施绿色照明?

美术馆照明设计的几个环节

对于美术馆照明而言,首先得有一座合适的建筑,它的高度、面积大小、空间布局、内饰等方面,应该适合做展览、适合展品在这个空间中的布置、便于随时调整、适合观看、利于营造...
2022-07-15

热销商品

聚氨酯优力胶牛筋垫片PU垫片缓冲垫圆形密封垫圈减震垫O型垫 加工

聚氨酯优力胶(PU)牛筋垫片是一种高性能弹性密封减震元件,采用优质聚氨酯材料精密加工而成。具有优异的耐磨性、抗撕裂性、耐油性和耐老化性能,适用于高负荷、高频振动...
5

扎丝,葡萄扎丝、扎丝绑丝、铁丝扎带、电镀锌铁丝扎线、捆扎铁丝

扎丝是一种广泛应用于农业、园艺、建筑和包装等领域的金属绑扎材料,常见类型包括葡萄扎丝、扎丝绑丝、铁丝扎带、电镀锌铁丝扎线和捆扎铁丝等。其中,葡萄扎丝专为葡...
9.3

内六角扳手高硬度加长球头六棱六方扳手3456781012mm平头小空间

内六角扳手高硬度加长球头六棱六方扳手,专为狭小空间作业设计,提供3、4、5、6、7、8、10、12mm多种规格,满足不同需求。采用优质合金钢材质,经热处理工艺,硬度高、耐磨...
2.55

橡胶包边条u型骨架密封条机械钣金桥架防割手装饰护口保护条卡条

橡胶包边条U型骨架密封条是一种广泛应用于机械、钣金、桥架等金属边缘的安全防护配件。其采用优质橡胶材质,内嵌U型钢骨架,兼具柔韧性与结构强度,可牢固卡装在金属板...
1.28

O型圈密封圈丁睛胶圈油封氟胶硅胶圈高压耐磨橡胶超大O型胶圈大全

O型圈密封圈是一种广泛应用于机械、液压、气动及管道系统中的关键密封元件。本产品涵盖丁腈胶(NBR)、氟橡胶(FKM)、硅胶(VMQ)等多种材质,具备优异的耐油、耐高温、耐腐蚀...
1

网站栏目