vxWorks设备驱动开发指南.doc


文档分类:IT计算机 | 页数:约104页 举报非法文档有奖
1/104
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/104
文档列表 文档介绍
vxWorks设备驱动开发指南.docvxWroks
——写具体类设备驱动
3 DMA驱动
简介
本章描述了DMA驱动。
概要
有些硬件设计包括一个通用DMA引擎,处理来自DMA的访问,或到外部设备,或从内存到内存。这些DMA引擎通常集成在片上CPU系统中。DMA驱动类为系统中其它设备提供DMA引擎服务的一套标准方法。
提供的vxbDmaLib库提供用于DMA引擎。这个DMA库提供的函数是vxbDmaChanAlloc( )和vxbDmaChanFree( )。
VxBus驱动方法
由vxbDmaLib库提供的函数充分使用三个VxBus驱动方法:
DMA驱动通过这些方法的关联函数提供对它们服务的访问。
{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-
结构定义如下:
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( )的参数。DMA设备驱动正常选择一个基于minQueueDepth和flags DMA通道,并返回指向通道的指针pChan。设备驱动调用DMA驱动的通道分配代码——无论通过和函数——可以有选择的传递一个执行一个结构的指针,这个指针包括具体于期望DMA通道的信息,专有于请求者。DMA驱动可以充分使用这个信息来设置一个专有的DMA通道。
{vxbDmaResourceRelease}( )
{vxbDmaResourceRelease}( )方法用于DMA库来释放DMA驱动管理的设备上的DMA通道。原型如下:
STATUS {vxbDmaResourceRelease}
(
VXB_DEVICE_ID pInst,
VXB_DMA_RESOURCE_ID pChan
)
大多数情况下,驱动的仅有要求是释放具体的分配给设备的DMA通道,由pChan标识,pInst指向DMA设备的VxBus设备ID。
{vxbDmaResDedicatedGet}( )
DMA库使用{vxbDmaResDedicatedGet}( )方法来分配一个DMA方法专属于调用方法的具体设备。这个方法的功能和{vxbDmaResourceGet}( )类似。然而,制约于硬件限制或其他限制,你可能想使用这个设备来保证具体设备分配给具体通道。如这通过检查设备名关联的设备实例,由pReqDev标识,来完成,或检查使用的成员传递pReq的pDedicatedChanInfo信息。原型如下:
STATUS {vxbDmaResDedicatedGet}
(
VXB_DEVICE_ID pReqDev,
VXB_DMA_REQUEST * pReq
)
头文件
DMA驱动必须包含如下头文件:
#include <hwif/util/>
#include "../h/util/"
其他驱动想使用vxbDmaLib可能需要包含如下:
#include <hwif/util/>
这些驱动也可能需要包含具体DMA驱动的头文件,为了使用专用的通道功能。

vxWorks设备驱动开发指南 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数104
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xinsheng2008
  • 文件大小1 MB
  • 时间2018-09-06
最近更新