阅读:1458回复:3
PCI BusMaster DMA,怎么得到缓冲物理地址??
我在开发一个DVB卡的驱动程序,它的总线控制芯片是SAA7146
程序中要得到内存数据区的物理地址, 写到芯片的BASE_ODD/BASE_EVEN/PAGE_BASE寄存器中 可是DMA操作的相关函数,都不提供物理地址的 怎么做? 结果是我总不能得到卡DMA写到内存的数据,或者把我的机器写死!!! PCI BusMaster DMA卡的DMA控制编程逻辑是什么?? 我想物理地址信息不可能卡通过总线直接得到吧, AllocateCommonBuffer AllocateDmaChannel 能够得到的逻辑地址(Logical Address)也不是物理地址 需要Map Register进行映射,但是能够得到的Map Register Base Address又是虚拟地址!!! 我真的搞不明白,谁能帮帮我 |
|
|
沙发#
发布于:2003-02-20 14:36
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2003-02-21 09:22
AllocateCommonBuffer
是不是得到的也是物理地址? |
|
|
地板#
发布于:2003-02-21 09:43
用户被禁言,该主题自动屏蔽! |
|