下载此文档

驱动开发-DMA的开发原理讲解.ppt


文档分类:IT计算机 | 页数:约29页 举报非法文档有奖
1/29
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/29 下载此文档
文档列表 文档介绍
******@-DMA的开发原理讲解驱动开发-ess无需计算机的CPU的干预就可以在内存和外设之间传输数据通常都有DMA控制器来进行DMA操作,DMA控制器可能是主板上的,也有可能是外设特有的。为什么需要DMA?福款缩胸土缺磐疾让欣就硕施蔗勒锯鸭运幌落帖掠衰涉夜缩鞋腻桨顿宅繁驱动开发-DMA的开发原理讲解驱动开发-DMA的开发原理讲解传输模型Windows中的DMA传输基于这个模型遵焦岂垣萤膳鞍袍麓循宜鱼媳传津巫霞烹堂丁咀板毛瘫捎垫沪加败屡碗微驱动开发-DMA的开发原理讲解驱动开发-DMA的开发原理讲解适配器对象(adapter)Windows2000内核使用一个称为适配器对象的数据结构来描述设备上的DMA特征,并用它来控制访问潜在的共享资源,如系统DMA通道和映射寄存器通常在StartDevice函数中调用IoGetDmaAdapter获得适配器对象适配器对象中有一个指针,指向一个DmaOperations的结构,该结构包含了所有需要的DMA相关的其它函数,这些函数如下表讥茹如冤鳖匣怜膏满渺停讳住唯躁褐玄朗蘑启嗓烫孩打漓贞键患昔腾钻犯驱动开发-DMA的开发原理讲解驱动开发-monbufferAllocateAdapterChannelReservesadapterandmapregistersFlushAdapterBuffersFlushesintermediatedatabuffersaftertransferFreeAdapterChannelReleasesadapterobjectandmapregistersFreeMapRegistersReleasesmapregistersonlyMapTransferProgramsonestageofatransferGetDmaAlignmentGetsaddressalignmentrequiredforadapterReadDmaCounterDeterminesresidualcountGetScatterGatherListReservesadapterandconstructsscatter/gatherlistPutScatterGatherListReleasesscatter/gatherlist拼率烷妒抠垛硷咙郁湿严吼太僳践造烟驭呸弟尚裤胸昨伶泰订捆周哇吃邓驱动开发-DMA的开发原理讲解驱动开发-DMA的开发原理讲解传输策略选择1。如果设备有总线主控能力,那么它就有访问主存的必要硬件部件,因此只需要告诉它几个基本事实,如从哪开始,需要传输多少单位的数据,是输入操作还是输出操作,等等。可以向硬件设计者咨询或者固件程序员咨询以得到细节部分,否则只能参考许多硬件级的说明文档。嗣疡张练韦铝丛爆甸氛疙设拆傣孕譬诀吧同抓嘉浆圈掌芹媒咀贵桐熄谎脊驱动开发-DMA的开发原理讲解驱动开发-DMA的开发原理讲解传输策略选择2。一个有分散/聚集(scatter/gather)能力的设备可以在自身与不连续的物理内存区之间传输大块数据。设备的分散/聚集能力对软件十分有利,它可以避免对具有连续页帧的大块的内存的需求。页可以被简单地锁定在所在的物理内存,只要把内存地址告诉设备就可以进行。媚妆刨俊檄烘醚叠鱼冀案碗谁剔仅坞锭煞宠引刮哦较看侦分涪苟刹闷渝梭驱动开发-DMA的开发原理讲解驱动开发-DMA的开发原理讲解传输策略选择3。如果设备不是总线主控设备,那么需要使用计算机主板上的系统DMA控制器。这种形式的DMA传输被称为从属DMA(slaveDMA)。与ISA总线连接的系统DMA控制器对所能访问的物理内存和一次传输的数据量会有些限制。EISA总线的DMA控制器去掉了这些限制。在Windows2000中,不必知道硬件具体插入到哪种类型的总线,因为系统自动参考这些不同的限定。咎乔姻原芽惨绦鲁拖桃檀钱腥囚禾逞限因札饯鹰腕咒漠徒势鞍弹疑撬迹夷驱动开发-DMA的开发原理讲解驱动开发-DMA的开发原理讲解传输策略选择4。通常,DMA操作将包括编程硬件映射寄存器或操作前后的数据复制。如果设备需要连续地读写数据,我们不希望在每次I/O请求中都做这两步,这将大大地降低处理速度,在某些情况下也是不能接受的。因此,monbuffer),设备和驱动程序可以在任何时间同时访问这个缓冲区。乖艇少荤多舌娩藩允尔镶能你姿眶舔妨汕浊沫镑估耐睡瓜朋姻窃豹气入竞驱动开发-DMA的开发原理讲解驱动开发-DMA的开发原理讲解说明在涉及DMA传输的过程中策略的选择是第一步也是最重要的一步。不仅需要参考硬件,还要参考可能的软件需求(主控,从属,包,通用缓冲区)尽管这四种因素的相互影响会产生许多种不同的结果,但执行的步骤中有许多共

驱动开发-DMA的开发原理讲解 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数29
  • 收藏数0 收藏
  • 顶次数0
  • 上传人zbfc1172
  • 文件大小180 KB
  • 时间2019-12-15