打印

请教个pci总线dma驱动的问题

[复制链接]
2994|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Tonylzez|  楼主 | 2010-8-8 17:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,小弟做了一块pci板卡(fpga内嵌pci核实现桥接),想在板卡上面跑dma方式从板卡上读取数据,有个问题困惑我很久了:若想用dma方式传输数据,需要知道源地址和目的地址,现在用*puf = malloc(1000)方式在内存中开辟了一块缓存区,那么这个缓存区在pci总线上对应的总线地址又是多少呢?不会是直接等于puf的值吧,不知道这个缓存区对应的pci总线地址,就没法向dma控制器里写入目的地址,dma驱动就没法做了?请问有没有做过的同道给指点一下,万分感谢

相关帖子

沙发
iwasmu| | 2010-8-10 17:44 | 只看该作者
总线地址需要从虚拟地址转换,你是win还是linux。如果是win的话,AdapterObject->DmaOperations->AllocateCommonBuffer 可以得到总线地址,Win下叫做逻辑地址。 linux我就不知道了,pci_alloc_consistent或许可以。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

70

帖子

1

粉丝