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.

TMS320C6678: 【TMDXEVM667LE】EDMA

Part Number: TMS320C6678

对于EMDA有一些疑惑想请教一下

1.我在其他帖子里看到说QNUM决定了channel映射到哪个que,怎么理解下表4-7?En对应于横轴和纵轴的关系怎么理解?

2. EDMA同时能传输多少个事件?3个CC,10个TC,所以可以同时传输10个事件吗?

3.CC0有16个通道,CC1和CC2有64个通道,这些通道是代表有这么多个事件可以触发edma,然后通过优先级编码再映射到事件队列,最后通过TC传输,可以这样理解吗?

4. que0对应于tc0,那么que0里的16个事件,优先级最高的是que0上的0bit位对应的通道事件?

  • 1、表格中纵列是bit位,横列对应的应该是 DMAQNUM 的序号

    通过bit位上的值可以知道在哪个queue。

    0h = Event n is queued on Q0

    1h = Event n is queued on Q1

    2h = Event n is queued on Q2

    3h = Event n is queued on Q3

    2、理论上应该是可以的,每个TC都可以单独发起数据传输

    3、是的

    4、queue的序列号越低。优先级越高

    Q0 has higher priority than Q1, if Q0 and Q1 both have at least one event entry and if both TC0 and TC1 can accept transfer requests, then the event in Q0 is de-queued first and its associated PaRAM set is processed and submitted as a transfer request (TR) to TC0.

  • 1.那么第一行的E0 E8... E56 E64这些事件对应的que是一样的吗? 还是说这8个事件分别对应于8个DMAQNUM寄存器 然后这8个事件映射的队列都是由0-2bit位决定 可以自由设置到不同的que?

    2.每个tc同一时刻只能传输一个事件?假如队列里有5个事件,那么先传输完队列里优先级最高的事件,再进行优先级次之的事件?

  • 你好,在手册上看不同的TC,它的DBS不同,我想问下burst size怎么设置?还有怎么理解这个burst?它是对dma的速度是会有优化吗?

  • 还是说这8个事件分别对应于8个DMAQNUM寄存器 然后这8个事件映射的队列都是由0-2bit位决定 可以自由设置到不同的que?

    是的

    每个tc同一时刻只能传输一个事件?假如队列里有5个事件,那么先传输完队列里优先级最高的事件,再进行优先级次之的事件

    是的

    在手册上看不同的TC,它的DBS不同,我想问下burst size怎么设置?还有怎么理解这个burst?它是对dma的速度是会有优化吗?

    https://e2echina.ti.com/support/processors/f/processors-forum/116013/c6678-edma-dbs-fifo

    https://e2echina.ti.com/support/processors/f/processors-forum/116071/c6678-edma-burst-burst-size-tr-ab-tr-acnt-bcnt/318175

    请阅读 2.12.1.2 Command Fragmentation 什么情况下有优化作用。

    www.ti.com.cn/.../sprugs5b.pd

  • 1.怎么理解一个event?是一次传输就是一个event吗?在AB下,一次传输指得是ACNT*BCNT,然后传输CCNT次,就是C个event?

    2.在上边TC的block图中,queue0是16bit的,这个16bit是什么意思?对应于16个event吗?但是队深不是最大可达64吗?

    3.burst size无需设置,因为DBS是固定的,EDMA会根据设置的param是否符合优化条件,来进行优化或不优化?The EDMA3TC attempts to issue the largest possible command size as limited by the DBS value or the ACNT/BCNT value of the TR. 

  • 1、是的

    2、是16个event,队深在哪里看到的?

    3、可以这么理解,在某些情况下才具备优化效果。

    For BCNT arrays of ACNT bytes (that is, a 2D transfer), if the ACNT value is less than or equal to the DBS value, then the TR may be optimized into a 1D-transfer in order to maximize efficiency. The optimization takes place if the EDMA3TC recognizes that the 2D-transfer is organized as a single dimension (ACNT == BIDX) and the ACNT value is a power of 2. Table 2-16 summarizes conditions in which the optimizations are performed.

  • 2.不好意思 我又查了一下手册 队深确实是16 应该是我看错或者记错了 

    Each queue is 16 entries deep; thus, each event queue can queue a maximum of 16 events. If there are more than 16 events, then
    the events that cannot find a place in the event queue remain set in the associated event register and the DSP does not stall.

    如果事件数大于队深,则事件保存在相关事件寄存器?这个相关事件寄存器怎么理解?就好比我要用TR0传输17个CCNT,那么前16个是放在queue0里,那么最后一个事件怎么办?