- 1、本文档共105页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
vxWorks设备驱动开发指南
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( )的参数。DMA设备驱动正常选择一个基于minQueueDepth和flags DMA通道,并返回指向通道的指针pChan。设备驱动调用DMA驱动的通道分配代码——无论通过和函数——可以有选择的传递一个执行一个结构的指针,这个指针包括具体于期望DMA通道的信息,专有于请求者。DMA驱动可以充分使用这个信息来设置一个专有的DMA通道。
3.3.2 {vxbDmaResourceRelease}( )
{vxbDmaResourceRelease}( )方法用于DMA库来释放DMA驱动管理的设备上的DMA通道。原型如下:
STATUS {vxbDmaResourceRelease}
(
VXB_DEVICE_ID pInst,
VXB_DMA_RESOURCE_ID pChan
)
大多数情况下,驱动的仅有要求是释放具体的分配给设备的DMA通道,由pChan标识,pInst指向DMA设备的VxBus设备ID。
3.3.3 {vxbDmaResDedicatedGet}( )
DMA库使用{vxbDmaResDedicatedGet}( )方法来分配一个DMA方法专属于调用方法的具体设备。这个方法的功能和{vxbDmaResourceGet}( )类似。然而,制约于硬件限制或其他限制,你可能想使用这个设备来保证具体设备分配给具体通道。如这通过检查设备名关联的设备实例,由pReqDev标识,来完成,或检查使用的成员传递pReq的pDedicatedChanInfo信息。原型如下:
STATUS {vxbDmaResDedicatedGet}
(
VXB_DEVICE_ID pReqDev,
VXB_DMA_REQUEST * pReq
)
3.4 头文件
DMA驱动必须包含如下头文件:
#include hwif/util/vxbDmaLib.h
#include ../h/util/vxbDmaDriverLib.h
其他驱动想使用vxbDmaLib可能需要包含如下:
#include hwif/util/vxbDmaLi
您可能关注的文档
- 26清平乐_村居__导学案.doc
- 3WFI工艺描述.doc
- 4-1社会危机四伏和庆历新政.doc
- 3ws田家炳中学2016届高三化学周测1(含答案).doc
- 44金属的腐蚀与防护.doc
- 3D成长树模型的受迫结果计算方法.docx
- 4名商人带4名随从安全过河.docx
- 531同业清算制度题库(20151020修改).doc
- 4根管桩的塔吊基础方案1.doc
- 4重大一般危险源控制措施.doc
- ASX_Series_操作说明书手册.pdf
- Battery-Backup-Kit-Installation-操作说明书手册.pdf
- DCB-05-V2-操作说明书手册.pdf
- DEIMOS-Installation-操作说明书手册.pdf
- Axess-Pro-Series-2120-Roller-Shutter-Pendant-操作说明书手册.pdf
- Controll-A-Door-P-Diamond-操作说明书手册.pdf
- Controll-A-Door-PD-Power-Drive-操作说明书手册.pdf
- Controll-A-Door-Secure-SDO-6-操作说明书手册.pdf
- AMX_Series_操作说明书手册.pdf
- ELI-250-Installation-操作说明书手册.pdf
最近下载
- 中华人民共和国机械行业标准燃煤热风炉技术条件.PDF
- 武汉市光谷为明实验学校新初一分班语文试卷含答案.pdf VIP
- 浙江大学紫金港校区校园平面图.PDF VIP
- 中级车号员(长)试题及答案.pdf VIP
- 铁路车号员(长):中级车号员(长)测试题.docx VIP
- 铁路车号员(长)中级车号员(长)试卷(铁路车号员(长)).doc VIP
- 铁路车号员(长)车号员一体化考试试卷(铁路车号员(长)).doc VIP
- 铁路车号员(长)铁路车号员(长)综合练习试卷(铁路车号员(长)).doc VIP
- 铁路车号员(长)铁路车号员(长)综合练习试卷.doc VIP
- 初中数学高质量作业设计策略与实践.pptx
文档评论(0)