我用EDMA3的时候,采用的是ACNT=2,BCNT=数据长度,AB同步,代表传输数据的宽度是16位,每次传输的长度等于帧长度。
但是我需要读一个0x11的16位地址,因此把原地址设为0x22(即是0x11*2),但是FPGA收到的地址是0x10,后来经过试验,EDMA的地址必须是0x10的倍数,即:只能设置0,0x10,0x20…………这一类地址,这是什么原因呢?
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.
我用EDMA3的时候,采用的是ACNT=2,BCNT=数据长度,AB同步,代表传输数据的宽度是16位,每次传输的长度等于帧长度。
但是我需要读一个0x11的16位地址,因此把原地址设为0x22(即是0x11*2),但是FPGA收到的地址是0x10,后来经过试验,EDMA的地址必须是0x10的倍数,即:只能设置0,0x10,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).