zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:889回复:3

使用WINDRIVER开发9054 执行DMA!!!高手请接分!

楼主#
更多 发布于:2003-04-16 21:12
这几天一直在调试9054的DMA操作,使用WINDRIVER里面的API函数,可是却发生了怪事,就是,当我写了DMACSR0的位1和位0时,却始终接收不到DMAISDONE信号,强迫停止,发现并没有数据读到PC机的内存?

当我把原来给DMAMODE0里的READY输入使能位去掉后,就可以检测到ISDONE信号了,可是此时,仍然没有读到SRAM中的数据,这是怎么回事呢?因为READY是肯定要使能的阿!

我没有使用中断,因为感觉从PC这边读PCI板卡SRAM,不需要中断,是不是中断的原因,还是因为硬件里CPLD里的时序不对阿???
wangjisheng
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2011-07-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-04-22 19:25
你再看看,DMA启动了吗?
zhangyanping
驱动小牛
驱动小牛
  • 注册日期2003-02-23
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-04-22 20:34
现在已经初步调通了DMA,可以连续读取最大988个的长字数据,可却不可以超过988,一旦超过,程序就停在等待DMAISDONE信号那里死了,这是怎么回事阿?

我有试了分两个块调试分散/集中DMA,例如设置buf[1024],每块大小为512,可以收到DMAISDONE信号,可是数据只是前面127个是正确的,后面的都错误,也就是没有读出来?

楼上兄弟,是否能指导一下阿?
wangjisheng
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2011-07-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-04-30 20:10
DMA需要物理地址连续的一段空间,
是不是你的主机不能建立这段空间呀
游客

返回顶部