阅读:889回复:3
使用WINDRIVER开发9054 执行DMA!!!高手请接分!
这几天一直在调试9054的DMA操作,使用WINDRIVER里面的API函数,可是却发生了怪事,就是,当我写了DMACSR0的位1和位0时,却始终接收不到DMAISDONE信号,强迫停止,发现并没有数据读到PC机的内存?
当我把原来给DMAMODE0里的READY输入使能位去掉后,就可以检测到ISDONE信号了,可是此时,仍然没有读到SRAM中的数据,这是怎么回事呢?因为READY是肯定要使能的阿! 我没有使用中断,因为感觉从PC这边读PCI板卡SRAM,不需要中断,是不是中断的原因,还是因为硬件里CPLD里的时序不对阿??? |
|
沙发#
发布于:2003-04-22 19:25
你再看看,DMA启动了吗?
|
|
板凳#
发布于:2003-04-22 20:34
现在已经初步调通了DMA,可以连续读取最大988个的长字数据,可却不可以超过988,一旦超过,程序就停在等待DMAISDONE信号那里死了,这是怎么回事阿?
我有试了分两个块调试分散/集中DMA,例如设置buf[1024],每块大小为512,可以收到DMAISDONE信号,可是数据只是前面127个是正确的,后面的都错误,也就是没有读出来? 楼上兄弟,是否能指导一下阿? |
|
地板#
发布于:2003-04-30 20:10
DMA需要物理地址连续的一段空间,
是不是你的主机不能建立这段空间呀 |
|