worldcup
驱动小牛
驱动小牛
  • 注册日期2004-08-19
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2786回复:12

关于HalTranslateBusAddress

楼主#
更多 发布于:2005-03-30 17:47
我知道HalTranslateBusAddress可以将bus address转成physical address,可是从physical address转到bus address用什么函数,我查了ddk help,没有发现,谢谢大家!
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-03-30 18:34
MapTransfer().......返回编程DMA的物理地址(主控设备)

[编辑 -  3/31/05 by  aiwadgj]
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
worldcup
驱动小牛
驱动小牛
  • 注册日期2004-08-19
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-31 08:32
谢谢aiwadgj
我再试试
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2005-03-31 08:57
谢谢aiwadgj
我再试试
 


其实这个函数严格的来说,,,不能完成你说的功能,,,

看你干什么用了。。。主控DMA的,,用它返回传输起始地址,,这个地址应该就是你说的那个了。。。。

你问这个函数有什么用啊。。。?。。
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
worldcup
驱动小牛
驱动小牛
  • 注册日期2004-08-19
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-03-31 09:43
是这样,硬件是pci总线的,在内存中映射出一块区域存放硬件的配置信息,硬件运行后,也要往内存中写入数据,这个内存地址必须写到硬件配置信息中,而且需要其bus address!所以需要将地址转化成bus address后再写入!不知用MmGetPhysicalAddress()函数写入物理地址是否也可以,还没有试呢!
我不了解dma,不知这和dma有什么关系!
谢谢!
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2005-03-31 11:11
是这样,硬件是pci总线的,在内存中映射出一块区域存放硬件的配置信息,硬件运行后,也要往内存中写入数据,这个内存地址必须写到硬件配置信息中,而且需要其bus address!所以需要将地址转化成bus address后再写入!不知用MmGetPhysicalAddress()函数写入物理地址是否也可以,还没有试呢!
我不了解dma,不知这和dma有什么关系!
谢谢!
 


看样子就是我说那个情形了,,,就是往硬件配置信息区域写传输起始地址启动DMA吧。。。总线主控的话,用MapTransfer返回的那个值写入就可以了,,


[编辑 -  3/31/05 by  aiwadgj]
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
worldcup
驱动小牛
驱动小牛
  • 注册日期2004-08-19
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-03-31 13:41
谢谢aiwadgj
关于MmGetPhysicalAddress,我看了ddk help,可上面描述:
MmGetPhysicalAddress returns the physical address that corresponds to the given virtual address.

这不是说返回的为物理地址吗,你怎么说是系统虚拟地址?
也许我又将它们混淆了,请再解释一下,谢谢!



aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2005-03-31 14:03
谢谢aiwadgj
关于MmGetPhysicalAddress,我看了ddk help,可上面描述:
MmGetPhysicalAddress returns the physical address that corresponds to the given virtual address.

这不是说返回的为物理地址吗,你怎么说是系统虚拟地址?
也许我又将它们混淆了,请再解释一下,谢谢!



 


呵呵,,不好意思,,是我刚看错了。。。。

我看成是MmGetSyestemAddressForMdl了。。。。 :cool:
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
worldcup
驱动小牛
驱动小牛
  • 注册日期2004-08-19
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-04-01 09:57
谢谢aiwadgj,请再次指教:
是不是用MmGetPhysicalAddress也可以,并不一定非要用MapTransfer?
如果必须用MapTransfer,那它和使用MmGetPhysicalAddress有什么区别?
感觉MapTransfer与dma有联系,,但我的硬件并不需要在driver中控制dma!!

谢谢!
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
9楼#
发布于:2005-04-01 10:26
谢谢aiwadgj,请再次指教:
是不是用MmGetPhysicalAddress也可以,并不一定非要用MapTransfer?
如果必须用MapTransfer,那它和使用MmGetPhysicalAddress有什么区别?
感觉MapTransfer与dma有联系,,但我的硬件并不需要在driver中控制dma!!

谢谢!


一般的如果编程DMA的话就用MapTransfer就可以了。而且他也可以用在Alpha平台。其实MmGetPhysicalAddress也可以编程DMA的,,不过这个函数的使用受平台的限制(好像限制用在X86平台,,不是很清楚了,,呵呵)

在一个就是MmGetPhysicalAddress更具有通用性,要获得虚拟地址的相应的物理地址的话就用它就可以了,,,而MapTransfer是专用于DMA的,,
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
worldcup
驱动小牛
驱动小牛
  • 注册日期2004-08-19
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-04-01 12:05
谢谢aiwadgj
worldcup
驱动小牛
驱动小牛
  • 注册日期2004-08-19
  • 最后登录2006-10-19
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-04-01 12:14
to aiwadgj:
我刚才结贴后发现没给你加上分,而且一楼的\"给分\"按钮也消失了,不知是什么原因!!

aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
12楼#
发布于:2005-04-01 14:25
to aiwadgj:
我刚才结贴后发现没给你加上分,而且一楼的\"给分\"按钮也消失了,不知是什么原因!!

 


没有关系。。。呵呵。。互相学习最重要。。。

这两天是有问题的。。。有不少人反映给不了分的。。呵呵
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
游客

返回顶部