benzhang_74
驱动牛犊
驱动牛犊
  • 注册日期2003-02-20
  • 最后登录2003-02-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1458回复:3

PCI BusMaster DMA,怎么得到缓冲物理地址??

楼主#
更多 发布于:2003-02-20 12:54
我在开发一个DVB卡的驱动程序,它的总线控制芯片是SAA7146
程序中要得到内存数据区的物理地址, 写到芯片的BASE_ODD/BASE_EVEN/PAGE_BASE寄存器中
可是DMA操作的相关函数,都不提供物理地址的
怎么做?

结果是我总不能得到卡DMA写到内存的数据,或者把我的机器写死!!!

PCI BusMaster DMA卡的DMA控制编程逻辑是什么??

我想物理地址信息不可能卡通过总线直接得到吧,
AllocateCommonBuffer
AllocateDmaChannel
能够得到的逻辑地址(Logical Address)也不是物理地址
需要Map Register进行映射,但是能够得到的Map Register Base Address又是虚拟地址!!!

我真的搞不明白,谁能帮帮我
WinTV NOVA DVB Card
petz
禁止发言
禁止发言
  • 注册日期2001-03-23
  • 最后登录2015-12-19
  • 粉丝0
  • 关注0
  • 积分-22276分
  • 威望15点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-20 14:36
用户被禁言,该主题自动屏蔽!
benzhang_74
驱动牛犊
驱动牛犊
  • 注册日期2003-02-20
  • 最后登录2003-02-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-21 09:22
AllocateCommonBuffer
是不是得到的也是物理地址?
WinTV NOVA DVB Card
petz
禁止发言
禁止发言
  • 注册日期2001-03-23
  • 最后登录2015-12-19
  • 粉丝0
  • 关注0
  • 积分-22276分
  • 威望15点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-21 09:43
用户被禁言,该主题自动屏蔽!
游客

返回顶部