This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于DM368的EMDA3的传输地址问题

我用EDMA3的时候,采用的是ACNT=2,BCNT=数据长度,AB同步,代表传输数据的宽度是16位,每次传输的长度等于帧长度。

但是我需要读一个0x11的16位地址,因此把原地址设为0x22(即是0x11*2),但是FPGA收到的地址是0x10,后来经过试验,EDMA的地址必须是0x10的倍数,即:只能设置0,0x10,0x20…………这一类地址,这是什么原因呢?

  • 对了,上面的地址代表的是偏移地址,比如DM368的EMIF物理地址是,0X4000000,那么上面的地址就是0x4000000+0x22,0x4000000+0x10,0x4000000+0x20……

  • MU MU1 说:
    但是FPGA收到的地址是0x10

    怎么和FPGA有关系的?EDMA传输数据通过接口到FPGA?是FPGA收到的内容是地址0x10上的?

    你使用的是哪种地址增加模式?下面的信息可以在dm36x的edma user guide里找到:

    The 32-bit source address parameter specifies the starting byte address of the source. For SAM in
    increment mode, there are no alignment restrictions imposed by EDMA3. For SAM in constant addressing
    mode, you must program the source address to be aligned to a 256-bit aligned address (5 LSBs of
    address must be 0).

    The 32-bit destination address parameter specifies the starting byte address of the destination. For DAM
    in increment mode, there are no alignment restrictions imposed by EDMA3. For DAM in constant
    addressing mode, you must program the destination address to be aligned to a 256-bit aligned address (5
    LSBs of address must be 0).

  • wo们是用EMIF口和FPGA连接,EDMA传输数据到FPGA上,这个地址代表的就是地址偏移,这几句话就是我要的答案,非常感谢