vxWorks设备驱动开发指南.doc


文档分类:IT计算机 | 页数:约104页 举报非法文档有奖
1/104
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/104
文档列表 文档介绍
vxWroks 设备驱动开发指南——写具体类设备驱动 3 DMA 驱动 简介本章描述了 DMA 驱动。 概要有些硬件设计包括一个通用 DMA 引擎, 处理来自 DMA 的访问, 或到外部设备, 或从内存到内存。这些 DMA 引擎通常集成在片上 CPU 系统中。 DMA 驱动类为系统中其它设备提供 DMA 引擎服务的一套标准方法。提供的 vxbDmaLib 库提供用于 DMA 引擎。这个 DMA 库提供的函数是 vxbDmaChanAlloc( )和 vxbDmaChanFree( )。 VxBus 驱动方法由 vxbDmaLib 库提供的函数充分使用三个 VxBus 驱动方法: {vxbDmaResourceGet}( ) {vxbDmaResourceRelease}( ) {vxbDmaResDedicatedGet}( ) DMA 驱动通过这些方法的关联函数提供对它们服务的访问。 {vxbDmaResourceGet}( ) {vxbDmaResourceGet}( ) 方法用于 DMA 库来分配一个 DMA 驱动管理的设备上的 DMA 通道。原型如下: STATUS {vxbDmaResourceGet} ( VXB_DEVICE_ID pInst, VXB_DEVICE_ID pReqDev, VXB_DMA_REQUEST * pReq ) 这个原型, pInst 指 DAM 设备本身, pReqDev 指请求一个 DMA 通道的设备,和 pRe q 是一个指针,指向一个结构,描述 DMA 通道的期望的属性。 VXB_DMA_REQUEST 结构定义在: installDir /vxworks-6. x /target/src/hwif/h/util/ 结构定义如下: 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/u

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

非法内容举报中心
文档信息
  • 页数104
  • 收藏数0 收藏
  • 顶次数0
  • 上传人63229029
  • 文件大小1 MB
  • 时间2017-05-29