coolqiu
驱动牛犊
驱动牛犊
  • 注册日期2003-05-10
  • 最后登录2010-06-05
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望17点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
阅读:2810回复:7

谁做过DMA 读数据 与 内核空间内存映射到用户空间的读取速度比较?

楼主#
更多 发布于:2007-08-09 10:52
我的PCI板子上有个ARM控制器,可以把采集芯片fifo中数据DMA到板上的ram中,而这段ram可通过PCI基址访问,这样我就可以在驱动中把这段地址空间映射到用户空间进行读取,

另外 我可以通过 PCI的burstmaster方式 直接 DMA数据到用户地址空间,头一种实现比较容易,後一种牵涉到两个处理器,不是很方便实现。

大家给个建议,哪种速度较快?  
coolqiu
驱动牛犊
驱动牛犊
  • 注册日期2003-05-10
  • 最后登录2010-06-05
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望17点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-08-09 11:24
在线等,我已经回答了好几个别人的问题,有没人回答我的问题啊?
yanyanvictor
驱动牛犊
驱动牛犊
  • 注册日期2006-08-11
  • 最后登录2007-09-05
  • 粉丝0
  • 关注0
  • 积分280分
  • 威望29点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-08-09 11:46
楼主的问题俺不明白,我连PCI基地址,Local端地址以及怎么映射的都搞不清楚,比如下面的语句m_IoRange1.out(0xC0,2)是什么意思,往0xC0里面写入2,但是0xC0这个地址在什么地方,其实这条语句是往板子上的FPGA里面写东西的,但是这个地址怎么贺FPGA搭上边,还有就是初始化了IoRange0和IoRange1,这两个IO怎么在内存和本地段之间建立关系啊!楼主咱们都帮忙想象对方的问题吧,谢谢
yanyanvictor
驱动牛犊
驱动牛犊
  • 注册日期2006-08-11
  • 最后登录2007-09-05
  • 粉丝0
  • 关注0
  • 积分280分
  • 威望29点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-08-09 12:03
还有啊楼主,我看了访问9054内部寄存器都是用m_IoRange0,访问FPGA都是用的m_IoRange1,请问为什么,大家都来讨论一下啊,版主可以帮忙啊,我们这些迷途的羔羊好可怜啊
coolqiu
驱动牛犊
驱动牛犊
  • 注册日期2003-05-10
  • 最后登录2010-06-05
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望17点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-08-09 12:13
1 0xC0是 基地址的偏移量,向那个你的基地址+0xC0写2,
2 要问你的硬件工程师是怎么设计的了!

你老人家自己新开个主贴吧,你这这叫捣乱,哈哈!!!!
yanyanvictor
驱动牛犊
驱动牛犊
  • 注册日期2006-08-11
  • 最后登录2007-09-05
  • 粉丝0
  • 关注0
  • 积分280分
  • 威望29点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-08-09 12:21
没有捣乱的意思,楼主莫见怪,只是不明白,新帖已经开了,谢谢!
coolqiu
驱动牛犊
驱动牛犊
  • 注册日期2003-05-10
  • 最后登录2010-06-05
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望17点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-08-10 15:56
人呢,自己顶
leonbbbbbb
驱动牛犊
驱动牛犊
  • 注册日期2004-12-23
  • 最后登录2009-06-02
  • 粉丝0
  • 关注0
  • 积分261分
  • 威望36点
  • 贡献值0点
  • 好评度26点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-08-13 13:47
理论上是DMA 快。内存映射还是要CPU处理的
游客

返回顶部