首页 » 技术文章 » 基于S3C2440的WindML图形驱动设计

基于S3C2440的WindML图形驱动设计

作者:  时间:2011-06-15 19:53  来源:EDN

  O 引言

  随着信息技术的迅速发展,嵌入式系统的应用领域越来越广,嵌入式系统对图形用户界面的需求日趋增强。VxWorks是美国WindRiver公司开发的一款高性能、可裁减的嵌入式实时操作系统。它以良好的可靠性和卓越的实时性被广泛地应用于通信、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通信、飞机导航等。

  WindML(wind media library)是嵌入式实时操作系统VxWorks提供的一个可裁减的多媒体组件。该组件库支持基于嵌入式系统的多媒体应用程序,为各种嵌入式操作系统提供基本的图形、视频和音频技术,并可以开发基于这些操作系统的设备驱动。它提供一套与硬件无关的逻辑API给应用层调用,而给底层提供不同硬件构架的驱动,使程序具有很好的移植性和可扩展性。本文主要讨论在S3C2440微控制器上实现LCD驱动程序和键盘驱动程序的方法。

  1 S3C2440WindML简介

  S3C2440是三星推出的1632 b RISC微处理器。S3C2440是一款专用的以手持设备为主而设计的芯片,其特点有低功耗、高速的处理计算能力,采用ARM920T内核AMBA总线构架,实现了MMU和哈佛缓存体系构架,有高达400 MHz的系统频率。此外,S3C2440带有LCD专用控制器和专用DMA通道、IIS音频总线接口、AC97解码总线接口及SPII2CUSB等总线接口,非常适用于手持设备。

  Wind媒体库(WindML)支持在嵌入式系统上运行多媒体应用程序,提供基本的图形、视频和音频技术。WindML包括两个组成部分:软件开发工具包(SDK)和驱动开发工具包(DDK),如图1所示。

  SDK组件用于开发应用程序。它为图形、输入处理、多媒体、字体和内存管理提供了一个广泛的API,允许开发者为不同硬件平台书写硬件独立的可移植代码。DDK组件适用于实现驱动程序。它为通用硬件配置提供一系列完整的参考驱动程序。DDK是可扩展的、自定义的。Win-dML有多层架构,不同的功能被抽象到不同的层中。

  WindML中定义了图形驱动、视频驱动、字体驱动、输入驱动和音频驱动。

  2 LCD驱动程序设计

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

  2D层与图形驱动程序通过ugL_ugi_driver结构进行通信。结构中的每一个功能指针对应一个执行相应图形显示操作的驱动程序。2D层不直接调用驱动程序,它通过结构功能指针调用驱动程序。实现如下:

  VxWorks操作系统下,所有的设备必须通过调用xxxDevCreate()程序创建。这个函数是设备驱动以及设备最初功能的主要入口,uglInit-ialize()程序在WindML初始化时调用xxxDevCreate()xxxDevCreate()程序需要完成以下功能:

  (1)分配驱动图形结构。该结构已在驱动头文件里定义。

  (2)利用硬件抽象层打开图形设备。分配了驱动结构之后,硬件抽象层将被用来打开图形设备,校验是否能被写入和映射设备到虚拟内存。在此过程中,图形设备的基地址和寄存器将被定义。

  (3)初始化驱动控制结构。在确定图形设备可以被访问之后,初始化驱动控制结构。

  (4)设置设备为静止状态。校验了设备之后,驱动对图形设备进行最小初始化,并设置其为静止状态。图形设备设置为静止状态需要以下操作:屏蔽图形相关中断;调用uglGenericClutCreate()初始化调色板;初始化图形芯片的内存控制器;如果需要,则关闭显示。

  (5)返回指向驱动结构的指针。如果xxxDevCreate()函数执行成功,则返回一个指向ugl_ugi_driver结构的指针。如果xxxDevCreate()函数执行失败,则返回NULL

  此外,驱动程序还必须支持一个信息控制程序,xxxinfo()。这个程序允许应用访问驱动提供的支持,并且控制各种选项。在获得画面缓冲器的特征、获得基色的信息和以为图形设备扩展一个实例等方面会用到xxxinfo()

  3 键盘驱动程序设计

  基于I2C总线键盘芯片ZLG7290的芯片内部已实现键盘去抖动及连击键等处理,简化了驱动程序的处理。WindML输入设备驱动负责完成接收连接在系统上设备的原始数据,执行原始数据的转换,以及将输入数据放到消息队列中供高层软件调用,如图3所示。

相关推荐

风河宣布对于未来机载性能环境联合体的承诺

风河  嵌入式  VxWorks  2012-02-29

基于Windows平台VxWorks交叉编译工具的设计

VxWorks  嵌入式  2011-09-05

嵌入式系统U盘实时启动技术

VxWorks  嵌入式系统  2011-09-01

基于VxWorks实时嵌入式PLC设计

PLC  VxWorks  2011-08-15

Wind River提供F1赛车专用数据撷取与传送系统

WindRive  VxWorks  遥测装置  2011-07-05

基于VxWorks的微机保护装置网络通信设计

VxWorks  2011-06-23
在线研讨会
焦点