现在想将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的方式在每一行搬移完之后自动搬移下一行。