robin61726
驱动牛犊
驱动牛犊
  • 注册日期2006-10-10
  • 最后登录2008-09-04
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2062回复:0

plxmon调9054 DMA遇到的奇怪的无与伦比的问题

楼主#
更多 发布于:2008-08-29 23:09
我的FPGA中的代码是参考9054RDK_LITE开发板的代码(因SRAM位数不同做了位数上的修改)。按照9054RDK_LITE的说明,用PLXMON的命令行测试DMA方式传输。
单独向SRAM读写一个字(32位)都是好的(用dl s0,el s0命令)。
于是按照步骤先写了8个字到S0(即SRAM)中,然后设置DMA寄存器,用start transfer开始DMA传输,S0传输到DMA FIFO瞬间结束。
看S0的值和HBUF(DMA FIFO)中的值却不相同:
    S0: 11111111    22222222    33333333    44444444    55555555    66666666    77777777    88888888    00000000。。。
HBUF:11111111    22222222    33333333    44444444    55555555    55555555    66666666    77777777    88888888    00000000。。。

HBUF在4个字节后重复了55555555,我开始以为是时序的问题,因为本地总线的方式是BURST-4,每4个字一个BURST,可能是在两个BURST之间出了问题。于是我测试了一次DMA传32个不同的字,发现也只有第一个BURST和第二个BURST之间重复了一个字。所以感觉不是时序的问题,不然其他的BURST之间应该也有问题。另外又做了个测试,将有重复字的HBUF再写回到S0,即DMA FIFO到SRAM,发现重复的字又消失了,得出了正确的字。百思不得其解,请教高人指点!!!

游客

返回顶部