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的A同步传输和AB同步传输的比较探讨,求大神解答



 A传输一次触发aCNT的字节,AB传输一次触发aCNT*bCNT的字节,意思是AB传输速度优于A传输吗?A传输存在的意义是什么啊?A模式有个bcntreload,参数说明是只应用于A模式,不知道这里面是不是有什么应用价值
  • 不能这样直接比较,本质上讲A传输每个事件触发的传输的是一个一维的数组,而AB传输每个事件触发的传输是一个二维的数组。具体使用哪种传输是根据数据源和目的摆放的patten,以及时间触发的粒度来决定的,当然在AB sync下如果将BCNT设置为1,就相当于是一种A sync,但是这个时候一个Param所能支持的最大传输块的数量就会变小(A sync下是 BCNT*CCNT,但是AB sync下只有CCNT)

    bcntreload的作用是在A sync下当每一个行(参考figure 2-5) 的传输完成之后(BCNT->1)之后,将BCNT重新加载成bcntreload所对应的值(一般就是初始的BCNT),这样能保证第二行的传输仍然能保证能控制传输BCNT个数据块。

  • 十分感谢您的回答。我还有些困惑,理解的不是很到位。麻烦您举两个例子说明下什么情况下只能用A传输不能用AB(适宜用A传输)或者只能用AB不能用A(适宜用AB传输)。bcntreload每次重设的值是不变的吧,这样不是和AB差不多吗。。

  • 关键在有触发事件的粒度,A sync是每个触发事件只触发一个block的传输,而AB sync是每个触发事件触发BCNT个block的传输。

    你明白了这点,就知道实际应用场合下,有的时候只有一个触发事件,就需要EDMA完成多个块的传输,这时候就只能用AB sync,而有一个来一个事件,只要搬移一个块,这时候用A sync就可以了。

  • 谢谢您的回答。我差不多理解了。之前听人说,当地址连续或者bcnt=1的情况下会自动优化成A传输,是这样吗?如果是这样,以后就打算都直接用AB传输了

  • 是的,这两者等效。这时候使用A sync和AB sync都可以。

  • 我明白了,十分感谢您耐心的回答!