VxWorks下字符设备的驱动开发
- 格式:pdf
- 大小:197.51 KB
- 文档页数:3
VxWorks 串行设备驱动的编写一、概述vxWorks的串行设备的驱动不同于一般的设备的驱动。
一般的设备都是在系统初启的时候调用xxDrv()来安装diver table。
然后,调用xxDevCreate()来将该设备描述符xx_DEV加入到device table中。
在应用层用设备的时候,直接通过fd→device list→driver table的顺序调用相应的驱动函数即可。
他们的层次关系是:应用→I/O system ←→driver。
层次关系很明确。
然而串行设备的层次关系就不完全是这样子的。
基于许多因素的考虑,vxworks的串行设备的驱动分成了如下图所示的几层:图1 串行设备驱动代码的分层结构从图中可以看出:系统中的串行设备驱动总共有3层。
其中,usrConfig.c和ttyDrv(包括tyLib)提供了一些对串行设备的一些通用操作。
sysSerial.c中一些对不同开发板(系统)中串行设备有关的一些数据结构进行初始化。
所以,称之为Implementation specific code。
最后,的xxDrv.c当然是包括了一些具体设备相关的驱动/操作。
(比如读写数据,设置等)说道这里我们来回过头来看看,包含了串行设备的系统的总体的一个模型:图2.系统的模型从上图看出串行设备的驱动xxDrv并不是直接和I/O system交互的。
中间存在一个ttyDrv(包括tyLib)。
实际上,在diver table中安装的不是xxDrv的函数而是ttyDrv/tyLib提供的函数。
另外,Target Agent可以和xxDrv交换,方便系统的调试。
TtyDrv(包括tyLib):可以称之为一个虚拟的设备驱动。
因为他只是介于I/O与底层的具体设备的driver之间,为系统提供的统一的串行设备的界面。
另外,还可以调用具体硬件的管理驱动。
总之,ttyDrv给系统提供的是一些通用的管理函数(缓冲管理,互斥等)。
VxWorks 字符设备驱动开发学习1. 驱动程序要完成的任务a)驱动的初始化(安装)程序:将驱动安装到I/O系统中,连接中断,完成必要的硬件初始化。
函数通常命名为xxDrv()。
这里我以本次开发的PC104扩展板卡SDC(自整角机—数字转换)为例,命名为sdcDrv().向驱动列表注册驱动b)设备创建程序:向I/O系统添加设备,该设备的驱动已经安装到I/O系统中,即此步骤必须在驱动程序已经注册到驱动列表中,xxDrv()已经执行,在这里是sdcDrv()。
函数通常命名为:xxDevCreat(),在这里我们命名为sdcDevCreat().c)连接到设备中断的中断服务程序。
假如设备可以工作在中断工作模式时,要连接到中断服务程序。
此处我们的板卡暂时未支持此种模式。
2.概念定义和数据结构●I/O 系统I/O系统是操作系统的一个层次,它向应用软件提供硬件无关的标准接口,以提高应用层软件的可移植性。
提供七个标准函数如下:creat() 、remove()、open()、close()、read()、write()、ioctl() ●驱动列表驱动列表保存了每个驱动函数的地址,通过这个表,I/O请求就被转发到具体的驱动函数。
驱动表的结构如下所示,定义在iosLib.h中。
3.驱动安装的流程1. 首先执行sdcDrv(),在其中调用iosDrvInstall(xxCreat,NULL,xxOpen,xxClose,xxRead,xxWrite,xxIoctl)函数,ST ATUS sdcDrv(){/*首先判断驱动程式是否已经安装*/if(sdcDrvNum>0)return(OK);/*在这里添加驱动程序初始化部分*//*将驱动程序添加到驱动列表中*/if((sdcDrvNum=iosDrvInstall(sdcCreat,NULL,sdcOpen,NULL,sdcRead,sdcWrite,sdcIoc tl))==ERROR){return(ERROR);}return(OK);}。
VxWorks下字符设备的驱动开发
郭德磊
【期刊名称】《电脑知识与技术》
【年(卷),期】2011(007)001
【摘要】随着VxWorks操作系统在嵌入式系统中的应用,VxWorks下产品的开发和应用也越来越广泛.开发嵌入式设备经常遇到的一个问题就是如何编写高效可靠的设备驱动程序.该文对VxWorks下设备驱动程序开发的几个主要方面以及如何配置PCI总线设备等进行了详细介绍,为相关的开发人员提供了很好的参考.
【总页数】3页(P121-122,126)
【作者】郭德磊
【作者单位】中国飞行试验研究院,陕西,西安,710089
【正文语种】中文
【中图分类】TP311
【相关文献】
1.基于嵌入式Linux的字符设备驱动开发 [J], 王科;姚振东
2.LINUX驱动开发中字符设备模型研究 [J], 冯令成
3.Linux字符设备驱动开发及其在Android系统上的实现 [J], 康亚可
4.基于S3C2440的嵌入式Linux内核移植及字符设备驱动开发 [J], 胡祖宝;董国通
5.Linux字符设备驱动开发方法与应用实例 [J], 简杰鸿;刘朝辉
因版权原因,仅展示原文概要,查看原文内容请购买。
字符设备驱动开发流程
字符设备驱动开发流程如下:
1. 确定所需的驱动功能:确定设备的主要功能和操作系统的要求。
2. 分配设备编号:在Linux中,字符设备驱动需要分配一个设备编号,可以使用Linux自带的编号分配机制,也可以手动分配。
3. 编写设备驱动程序:使用C语言或者汇编语言编写设备驱动程序,包含初始化、读写操作、中断处理和卸载等函数。
4. 编译驱动程序:使用Makefile等工具编译生成驱动程序。
5. 安装驱动程序:将驱动程序安装到操作系统中,可以使用insmod命令进行安装。
6. 测试驱动程序:使用测试工具或者编写测试程序测试驱动程序的功能和正确性。
7. 调试和优化:对驱动程序进行调试和优化,保证其稳定性和性能。
8. 发布和维护:将驱动程序发布到Linux社区,接受反馈和维护驱动程序。
注:以上流程仅供参考,实际开发过程中可能会因为具体情况而有所不同。
vxWorks设备驱动开发指南(2)vxWroks 6.8设备驱动开发指南――写具体类设备驱动3 DMA驱动3.1 简介本章描述了DMA驱动。
3.2 概要有些硬件设计包括一个通用DMA引擎,处理来自DMA的访问,或到外部设备,或从内存到内存。
这些DMA引擎通常集成在片上CPU系统中。
DMA驱动类为系统中其它设备提供DMA引擎服务的一套标准方法。
提供的vxbDmaLib库提供用于DMA引擎。
这个DMA库提供的函数是vxbDmaChanAlloc( )和vxbDmaChanFree( )。
3.3 VxBus驱动方法由vxbDmaLib库提供的函数充分使用三个VxBus驱动方法:■?{vxbDmaResourceGet}( ) {vxbDmaResourceRelease}( ) {vxbDmaResDedicatedGet}( )■?■?DMA驱动通过这些方法的关联函数提供对它们服务的访问。
3.3.1 {vxbDmaResourceGet}( ){vxbDmaResourceGet}( )方法用于DMA库来分配一个DMA驱动管理的设备上的DMA通道。
原型如下:STATUS {vxbDmaResourceGet} (VXB_DEVICE_ID pInst, VXB_DEVICE_ID pReqDev, VXB_DMA_REQUEST * pReq )这个原型,pInst指DAM设备本身,pReqDev指请求一个DMA通道的设备,和pReq是一个指针,指向一个结构,描述DMA通道的期望的属性。
VXB_DMA_REQUEST结构定义在:installDir/vxworks-6.x/target/src/hwif/h/util/vxbDmaDriverLib.h 结构定义如下:typedef struct vxbDmaRequest {VXB_DEVICE_ID instance; /* DMA requestor device id */ UINT32 minQueueDepth; /* minimum queue depth requested */UINT32 flags; /* flags used during DMA allocation */VXB_DMA_RESOURCE_ID pChan; /* DMA channel id */ void * pDedicatedChanInfo; /* dedicated channel information */ } VXB_DMA_REQUEST;这个结构很大程度上对应传递给vxbDmaChanAlloc( )的参数。
Computer Knowledge and Technology 电脑知识与技术第7卷第1期(2011年1月)VxWorks 下字符设备的驱动开发郭德磊(中国飞行试验研究院,陕西西安710089)摘要:随着VxWorks 操作系统在嵌入式系统中的应用,VxWorks 下产品的开发和应用也越来越广泛。
开发嵌入式设备经常遇到的一个问题就是如何编写高效可靠的设备驱动程序。
该文对VxWorks 下设备驱动程序开发的几个主要方面以及如何配置PCI 总线设备等进行了详细介绍,为相关的开发人员提供了很好的参考。
关键词:VxWorks ;字符设备;驱动开发;PCI 设备;select 功能中图分类号:TP311文献标识码:A 文章编号:1009-3044(2011)01-0121-02VxWorks Device Driver Development Under the CharacterGUO De-lei(China Flight Test Establishment,Xi'an 710089,China)Abstract:With the VxWorks operating system in embedded system,VxWorks under the product development and applications are in -creasingly widespread.Development of embedded devices is a problem often encountered in how to write efficient and reliable device drivers.In this paper,VxWorks device driver development under the main aspects and how to configure the PCI bus devices are described in detail for the relevant developers a good reference.Key words:VxWorks;character device;driver development;PCI device;select functionVxWorks 是一个基于抢占式的实时操作系统,它以其高度的可靠性、优秀的实时性、灵活的可裁性广泛应用到越来越多的嵌入式装置中。
VxWorks下设备驱动程序开发技术研究陈怀民;王哲;程鹏飞;邵朋院【摘要】开发嵌入式系统软件的关键是编写稳定可靠的设备驱动程序,VxWorks 下的设备驱动程序开发难度尤其大。
结合了多用于航空航天领域的嵌入式实时操作系统VxWorks的特点,详细描述VxWorks下的设备驱动程序的基本概念,以VxWorks下的板级支持包(BSP)作为比较对象,阐述设备驱动程序在整个嵌入式系统中的位置和结构,总结在系统上电后设备驱动程序的基本工作流程,最后以字符设备驱动程序为例演示驱动程序的工作流程,为VxWorks下设备驱动程序开发提供了技术途径。
%The key of software development of embedded system is to compile stable and reliable device driver,but thede⁃velopment of device driver in VxWorks is very difficult. According to characteristics of VxWorks using in field of aerospace,the basic concept of device driver in VxWorks is described,and the position and the structure of device driver in the embedded sys⁃tem are elaborated in this paper,which is compared with the board support package(BSP)in VxWorks. The basic workflow of device driver after power⁃on is summarized. Finally,the character device driver is taken as an example to demonstrate thework⁃flow of device driver. The research provided a technical approach for development of device driver in VxWorks.【期刊名称】《现代电子技术》【年(卷),期】2015(000)010【总页数】4页(P38-41)【关键词】VxWorks;嵌入式系统;设备驱动程序;程序开发【作者】陈怀民;王哲;程鹏飞;邵朋院【作者单位】西北工业大学无人机特种技术重点实验室,陕西西安 710065;西北工业大学无人机特种技术重点实验室,陕西西安 710065;西北工业大学无人机特种技术重点实验室,陕西西安 710065;西北工业大学无人机特种技术重点实验室,陕西西安 710065【正文语种】中文【中图分类】TN911-34;TP391.41随着计算机技术的飞速发展,嵌入式计算机也日益普及,广泛应用于无线通信、信息家电、军事、航空航天等领域。
Chaper09—IO设备驱动设计概述字符型设备驱动块设备驱动Select机制IO设备驱动的作用为了提供应用程序的可移植性将应用程序从直接的操作设备的繁琐细节中解放出来操作系统应该为应用程序操作设备提供一个一致的接口。
这个一致的接口就是由操作系统的I/O系统提供的。
I/O系统将应用程序的请求传递给设备专用的I/O函数. 这些设备专用的I/O函数就是由设备驱动程序提供的。
为了对设备进行有效的管理操作系统通常还要具有一些内部的数据结构。
字符型设备驱动三个与驱动程序有关的表:为了对设备进行有效的管理操作,系统通常还要具有一些内部的数据结构。
对于VxWorks 而言这些内部结构包括文件描述符表、设备链表和驱动程序表。
七个标准的IO操作函数驱动程序设计IO设备访问过程驱动程序表驱动程序表中包含每个设备专用的I/O 调用函数, 驱动程序表是I/O 系统访问driver 的入口点,是I/O 系统中十分重要的数据结构。
它的大小通常是固定的,包括相同的例程creat( )和open( )。
它将vxworks 提供的标准例程(如open)和用户编写的设备驱动程序(myOpen)关联起来。
可以使用iosDrvShow( )来显示Driver 表。
设备链表设备列表是由设备描述符组成的链表。
每个设备有一个相应的设备描述符。
描述符是由与驱动程序无关的部分和与驱动程序相关的部分组成。
与驱动程序无关的部分是称为设备头的数据结构。
它包含指向前后设备描述符(DEV_HDR)的指针设备名以及设备专用函数在系统驱动程序表中的I/O索引等。
与驱动程序有关的部分包含驱动程序专用的数据。
I/O系统中open( )、creat( )和delete( )三个例程使用设备链表去匹配一个设备名。
该链表是双向链表结构,在链表上的项目数是动态的。
文件描述表文件表描述符表用于管理文件和设备,是由文件描述符组成。
对于每一个打开的文件或设备都有一个文件描述符。
VxWorks内核、设备驱动与 BSP开发详解张杨于银涛编著人民邮电出版社北京内容提要在嵌入式行业飞速发展的今天,嵌入式操作系统的应用越来越广泛,VxWorks具有良好的实时性,被大量应用于航空、通信、国防、工业控制、网络设备、医疗设备、消费电子等嵌入式实时应用领域。
本书共24章,按照初学者学习的一般步骤,详细介绍了VxWorks的开发环境、内核分析和应用程序开发、驱动程序开发与原理和板级支持包流程与移植,每章均配以实例进行讲解。
本书语言通俗、实例丰富、代码分析详尽,有较强的实用性和参考价值,适合大专院校嵌入式相关专业学生学习参考,也可供嵌入式开发人员和系统设计人员参考使用。
VxWorks内核、设备驱动与BSP开发详解♦编著张杨于银涛责任编辑黄焱审校华清远见嵌入式培训中心♦人民邮电出版社出版发行北京市崇文区夕照寺街14号邮编 100061 电子函件 315@网址 三河市海波印务有限公司印刷♦开本:800×1000 1/16印张:24.75字数:520千字2009年10月第1版印数:1 – 3 000册2009年10月北京第1次印刷ISBN 978-7-115-21292-4定价:49.00元(附光盘)读者服务热线:(010)67132692 印装质量热线:(010)67129223前 言行业背景嵌入式系统应用已经深入到我们生活中的各个领域,手机、机顶盒、MP4、交换机、路由器等都可以归结为嵌入式设备。
在这些嵌入式设备中,有一部分设备需要功能强大、实时性强的操作系统,VxWorks正是这类操作系统中的佼佼者。
从VxWorks 5.4 进入中国以来,已经过去了十多年,VxWorks在国内的应用不但没有减少,反而呈现了面向架构多、应用范围广、民用化的特性,越来越多的嵌入式设备转而采用VxWorks实现。
关于本书随着VxWorks应用逐渐广泛,相关书籍却不多。
本书结合作者在VxWorks的多年工作经验,仔细描述了实际开发过程中可能遇到的一些问题,并深入分析VxWorks系统的工作机制,旨在希望能够给刚接触VxWorks的初学者及对VxWorks有一定了解的朋友提供一些帮助,为熟悉VxWorks的朋友提供分析问题、设计软件的途径和思路。
信号/数据处理实时操作系统Vx Works下驱动程序的设计3周雪峰(南京电子技术研究所, 南京210013)【摘要】 介绍了Vx Works下标准I/O设备的驱动及其机理,详细说明了在实时多任务操作系统下配置PC I总线的方法。
然后以PC I设备为例,使用任务结合中断服务的方式,完成了非标准接口设备的驱动开发。
最后,阐述了实时操作系统下内存映射、DMA数据传输、中断处理和高速缓存一致性的使用方法。
【关键词】 设备驱动;中断处理;高速缓存一致性中图分类号:T N957 文献标识码:AD esi gn of D ev i ce D r i vers Ba sed on Rea l2ti m eO pera ti on Syste m Vx W orksZ HOU Xue2feng(Nanjing Research I nstitute of Electr onics Technol ogy, Nanjing210013,China)【Abstract】 The driver of a standard Vx Works I/O device as well as its working p rinci p le are intr oduced in this paper,and configurati on techniques of PC I bus in real2ti m e multitask oporating syste m are illustrated.Then take PC I device as exa mp le,a non2standard interface device driver is i m p le mented by combining tasks and interrup t service.Finally,me mory mapp ing,DMA da2 ta transfer interrup t handling and cache coherency issues in real2ti m e operating syste m design are described in detail.【Key words】 device drivers;interrup t handling;cache coherency0 引 言Vx Works嵌入式实时操作系统RT OS(Real Ti m e Operating Syste m)在军用电子通信等领域得到了广泛应用,在新型雷达的开发中需要根据相关需求定制特定的计算机外设,而第三方供应商一般只能提供W in2 dows桌面操作系统下的驱动程序,因此诸如显卡、雷达数据采集卡和网络通信板等在Vx Works下的驱动开发就显得尤为迫切。