TI中文支持网
TI专业的中文技术问题搜集分享网站

关于大量数据DMA传输

现在想将8192*60的数据通过DMA方式按每列的顺序取出来,传输成60*8192的数组,数组元素均为float型。按照手册的话BIDX最大为32767,但8192个float为8192*4=32768.请问有什么方式实现

Zhan Xiang:

BIDX是0~32767,其单位是byte,也就是最大offset是可以做到32768的

wj xz:

回复 Zhan Xiang:

这怎么可以,8192*4=32768>32767,BIDX配置不了吧

Andy Yin1:

回复 wj xz:

BIDX与CIDX的取值范围是-32768~32767, 可以对每一行倒过来进行搬移,即从从每一行最后一个数开始搬,配置如下,测试反馈一下,谢谢。

AB-sync

SRC_ADDR = 第一行最后的第60个数;

DST_ADDR=第一列最后一个数即第60个数;

ACNT=4;

BCNT=60;

CCNT=8192;

SRCBIDX = -4;

DSTBIDX= -32768;

SRCCIDX=60*4;

DSTCIDX=4;

wj xz:

回复 Andy Yin1:

谢谢您的回答,这样是可以的。那现在如果每个单元是复数complex,对应2个float型的话,该如何传输呢,这样的话BIDX就是8192*8了。

Andy Yin1:

回复 wj xz:

如果跳转超过范围,可以考虑使用多个set配置,每个set中配置不同的地址搬移独立一行,然后使用link chain的方式在每一行搬移完之后自动搬移下一行。

赞(0)
未经允许不得转载:TI中文支持网 » 关于大量数据DMA传输
分享到: 更多 (0)