DSP 6678 多核EDMA的使用

 

 

 

 

 

 

 

 

使用EDMA多增加使用的头文件

 

 

 

以core1举例说明

首先在主函数里面对EDMA进行初始化,初始化函数用的是KeyStone_common.c中的初始化函数,并且没有修改他。

问题

这里有疑问查阅资料有的地方说要初始化EDMA中断,还有什么事件,我这里使用的时候好像都没用到中断事件?

 

 

 

 

 

 

 

问题

core1~4这样选择CC和 TC是否正确?应该如何配置?

我目前了解到的是CC0是用于MSMC和DDR3的数据读写,CC1,CC2用于外部存储设备和各个core片内存储设备的数据读写。

 

EDMA传输函数

 

 

其中一共要循环读取793次,每次读取数据量为4*512*2*2*4B,因为我们需要实现的功能要求一批数据为512*2*2*4B,但是经过实际测量,EDMA这个函数,数据量读取的越大,吞吐量越接近TI官方手册说的理论值。所以我们一次选择读取4批数据到L2内,进行分离。

具体参数为:

DDR_start_SRC+gate_num_2_i*4*512*2*2*4 :为从DDR3读取数据的SRC地址。每次读取都要变化增量偏移一次。

问题

查阅TI官方给的EDMA手册知道,

 

 

那么想知道我们这种写SRC地址的方法是否就是手册说的 增量地址。还是应该有其他写法更合理?

 

还有,每个核我都是这么写的,没有涉及手册说的什么优先级,中断,不知道实际用起来安全性和稳定性怎么样?想知道怎么测试安全性稳定性

 

最后一个问题问题就是,我想要用EDMA从L2写数据到MSMC可行吗?因为我目前查到的资料都是说明都是DDR3~MSMC或者外部寄存器到L2。(四个核同时并行调用EDMA)

 

posted on 2020-08-02 16:09  孙登波  阅读(2430)  评论(0编辑  收藏  举报