第十二届计算机工程与工艺学术年会VxWorks驱动程序设计与实现RealizationandDesignoftheDriverBasedonVxWorks杨康吴家铸刘衡竹*YangkangWuJiazhuLiuHengzhu(国防科技大学计算机学院长沙410073)(puterScience,NationalUniversityofDefenseTechnology)摘要:VxWorks自身已对硬件设备提供了非常广泛的支持,但是如果系统中采用了专用硬件设备则需要专门编写驱动程序。本文详细分析VxWorks环境下驱动程序开发与设计原理。针对驱动程序实现的困难,给出VxWorks下实现驱动程序的工作流程和基本框架。关键词:VxWorks;驱动程序;BSP;设计实现1引言设备驱动是用于控制设备的程序集合,它将通用控制操作转换为设备能够识别的特定操作,是硬件设备的软件抽象。作为I/O系统和硬件设备之间的连接层,VxWorks驱动程序就是屏蔽硬件操作,为I/O系统提供服务。实现一个完整的驱动,必须了解VxWorks中I/O系统的三个基本元素:FILE、DRIVER和DEVICE。FILE是为用户提供访问设备的统一接口;DRIVER是实现具体的基本控制函数,也就是实现I/O系统所需要的接口;而DEVICE是一个抽象的硬件设备,是一系列的结构体、变量和宏定义对实际物理设备的定义。2设备驱动程序的设计与实现一般而言,实现一个驱动应该有三个基本的步骤:(1)用编程语言完成对实际物理设备的抽象;(2)完成系统所需要的各类接口及自身的特殊接口;(3)将驱动集成到操作系统中。它可确保电脑部件、附加卡及系统之间的运作可靠,并能完全兼容现有的多种扩充总线。,在VxWorks系统中,设备也是以文件方式管理的,也就是说,可以通过文件操作creat()、open()、close()、read()、write()和ioctl()等函数访问设备。硬件驱动程序统一由I/O子系统管理,向应用提供统一的标准。由于设备驱动程序与硬件、操作系统关系密切。因此,在编写设备驱动之前,必须了解相关知识。图2-1给出了VxWorks驱动与系统各部分的关系。其中与编写设备驱动关系最密切的是BSP即板级支持包(boardsupportpackage)。图2-1VxWorks驱动体系从图2-1可以看出:控制管理系统硬件的工作由BSP完成,BSP中的驱动程序管理特定目标环境中的设备,对其进行控制和初始化。BSP在硬件和操作系统之间提供了一个标准化的接口。虽然BSP提供了设备驱动接口,通过轮询方式允许内核和硬件资源(设备控制器、CPU、内存、总线等)之间进行通讯,但是BSP不能直接访问硬件资源。正是由于这些应用程序编程接口,使得VxWorks为应用程序编程提供了一个高深的体系结构和硬件无关特性,这正是VxWorks的优势。BSP由于采用模块化设计并且提供了一致的接口,使得应用程序和VxWorks具有很好的移植性。在VxWorks中,BSP向VxWorks提供与硬件的接口,负责加电完成时硬件的初始化、将VxWorks中与硬件有关以及与硬件无关的软件进行集成、为VxWorks访问硬件驱动程序提供支持。在VxWorks中,硬件驱动程序被分为两类,即通用驱动程序和BSP专用驱
VxWorks驱动程序设计与实现 来自淘豆网m.daumloan.com转载请标明出处.