vxworks驱动程序设计与实现

vxworks驱动程序设计与实现

ID:32821272

大小:77.00 KB

页数:3页

时间:2019-02-16

vxworks驱动程序设计与实现_第1页
vxworks驱动程序设计与实现_第2页
vxworks驱动程序设计与实现_第3页
资源描述:

《vxworks驱动程序设计与实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、VxWorks驱动程序设计与实现RealizationandDesignoftheDriverBasedonVxWorks杨康吴家铸刘衡竹*YangkangWuJiazhuLiuHengzhu(国防科技大学计算机学院长沙410073)(SchoolofComputerScience,NationalUniversityofDefenseTechnology)摘要:VxWorks自身已对硬件设备提供了非常广泛的支持,但是如果系统中采用了专用硬件设备则需要专门编写驱动程序。本文详细分析VxWorks环境下驱动程序开发与设计原埋。针对驱动程序实现的困难

2、,给出VxWorks下实现驱动程序的工作流程和基本框架。关键词:VxWorks;驱动程序;BSP;设计实现写设备驱动关系最密切的是BSP即板级支持包(boardsupportpackage)«F乍者简介:杨康,男,硕士研究生,研究方向为嵌入式系统;吴家铸,男,副教授,研究方向嵌入式操作系统;刘衡竹,男,教授,博士生导师,研究方向为微处理器体系结构和嵌入式与SOC芯片设计技术。通信地址:410073湖南长沙国防科技大学计算机学院。设备驱动是用于控制设备的程序集合,它将通用控制操作转换为设备能够识别的特泄操作,是硬件设备的软件抽象。作为I/O系统和硬

3、件设备之间的连接层,VxWorks驱动程序就是屏蔽硬件操作,为I/O系统提供服务。实现一个完整的驱动,必须了解VxWorks屮I/O系统的三个基本元素:FILE、DRIVER和DEVICE。FILE是为用户提供访问设备的统一接口;DRIVER是实现具体的基本控制函数,也就是实现I/O系统所需要的接口;而DEVICE是一个抽象的硬件设备,是一系列的结构体、变量和宏定义对实际物理设备的定义。2设备驱动程序的设计与实现一般而言,实现一个驱动应该有三个基本的步骤:(1)用编程语言完成对实际物理设备的抽象;(2)完成系统所需要的各类接口及自身的特殊接口;(

4、3)将驱动集成到操作系统中。它可确保电脑部件、附加卡及系统Z间的运作可靠,并能完全兼容现有的多种扩充总线。2.1VxWorks驱动体系结构与Linux相似,在VxWorks系统中,设备也是以文件方式管理的,也就是说,可以通过文件操作creat()、open()、close()、read()、write()和ioctl()等函数访问设备。硬件驱动程序统一由I/O子系统管理,向应用提供统一的标准。由于设备驱动程序与硬件、操作系统关系密切。因此,在编写设备驱动之前,必须了解相关知识。图2・1给出了VxWorks驱动与系统各部分的关系。其中与编内核1硬f

5、SCSISCSILAN驱动程序SCSI驱动程序Y驱动程序--驱动程序件驱动程序SCC定时器驱动程序图2・1VxWorks驱动体系从图2-1可以看出:控制管理系统硬件的工作由BSP完成,BSP中的驱动程序管理特定目标环境屮的设备,对其进行控制和初始化。BSP在硬件和操作系统之间提供了一个标准化的接口。虽然BSP提供了设备驱动接口,通过轮询方式允许内核和硬件资源(设备控制器、CPU、内存、总线等)Z间进行通讯,但是BSP不能直接访问硬件资源。正是由于这些应用程序编程接口,使得VxWorks为应用程序编程提供了一个高深的体系结构和硬件无关特性,这正是V

6、xWorks的优势。BSP由于采用模块化设计并且提供了一致的接口,使得应用程序和VxWorks具有很好的移植性。在VxWorks中,BSP向VxWorks提供与硬件的接口,负责加电完成时硬件的初始化、将VxWorks中与硬件有关以及与硬件无关的软件进行集成、为VxWorks访问硬件驱动程序提供支持。在VxWorks中,硬件驱动程序被分为两类,即通用驱动程序和BSP专用驱动程序。通用驱动程序管理在不同的目标环境之间移动的设备;而BSP驱动程序管理专用于在某种目标环境Zl'可移动的设备。在开发BSP时,不仅要对BSP专用的驱动程序提供完全的支持,还需

7、要将通用的设备驱动程序集成在一起。2.2VxWorks系统启动加载驱动程序流程分析除了解VxWorks驱动体系以外,还要了解VxWorks启动过程,这样才能将驱动程序与硬件设备有机的结合起来,充分发挥系统的性能优势。VxWorks启动过程按照VxWorks的image种类來区分基本上有三种:(1)由BootRom引导通过网口或串口下载到RAMo(2)将Image直接烧入ROM,运行时将Image拷入RAM屮运行。⑶将Image直接烧入ROM,VxWorks在ROM中运行,仅将数据段部分拷入RAMo下面以由BootRom引导通过网口或串口下载到RA

8、M为例,说明VxWorks启动吋加载驱动程序的流程,如下所示。bootLoad()—>syslnit()—>usrlnit()■一>sy

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。