最近刚接触EDMA,看了几遍文档还是不太明白,请问有EDMA的简单例程!!!!
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.
您好!
附件(CCSv5环境下一个EDMA3的project)是一个很简单的EDMA3搬运数据的例子,在编译前有以下几点需要注意:
1. 首先建立一个workspace,然后将附件的zip file解压,将project import到当前worksapce中
2. 右击import 进来的project,选中properties,在build下的C6000 Compiler中有个Include Options,将C6678的pdk路径加进去
3. 同步骤2,在build下的C6000 Linker中有个File Search Path,将C6678 pdk中两个库文件加进去(分别是ti.csl.ae66, ti.csl.intc.ae66)
满足以上环境设置后编译就不会出错了。如遇其他问题欢迎提问。
非常感谢!
您好!
不好意思,我的疏忽。需要把.cmd 文件的memory改成如下:(例如要在核1上跑)
MEMORY
{
VECTORS: origin=0x11800000 length=0x00000400
LL2MEM: origin=0x11800400 length=0x0007FC00
MSMCRAM: origin=0x0C000000 length=0x00400000
DDR3RAM: origin=0x80000000 length=0x20000000
}
非常感谢!
您好,我想要使用一个核做启动信号控制(例如核0),同时计时(因为要计算速率),剩下7个核(核1-7)作为实际搬数的核。需要让他们7个核同时向不同的位置搬
看他们同时搬得时候在edma总线上的冲突,来看edma总线的性能。
所以我需要在core1-7不同的核上设置不同的edma参数是吧?(因为搬数的目的地址和源地址都不同)
按照您给的那个程序,我进行了如下改动(cmd还是没改,打算把参数放在核0里,使用核0的l2 sram,)核0负责启动edma,核1-7写入不同的参数,他们搬不同地方的数
myParamSetup.option = 0x00100008;
myParamSetup.srcAddr = (Uint32)(srcbuf+(DNUM-1)*64);
myParamSetup.aCntbCnt = 0x00010040;
myParamSetup.dstAddr = (Uint32)(dstbuf+(DNUM-1)*64);
myParamSetup.srcDstBidx = 0x0;
myParamSetup.linkBcntrld = 0x0000ffff;
myParamSetup.srcDstCidx = 0x0;
myParamSetup.cCnt = 0x00000001;
CSL_edma3ParamSetup(hParamPing,&myParamSetup);
就只改了红色的部分,但是发现不能搬数了。
想问您一下,是我的思路错了,还是参数设错了。谢谢~
您好!
有两个问题想确认一下:
1. 请问除了core 0之外的7个core 数据的源地址分别是多少?
2. 这7个core使用的都是同一个channel?
谢谢!
发现以上这个例子中的cmd文件需要加一句:.stack > LL2MEM
SECTIONS
{
.csl_vect > VECTORS
.text > LL2MEM
.data > LL2MEM
.stack > LL2MEM
.fasttext > LL2MEM
...
}
您好,请问您所说的core0不能传输是指?edma搬数,只要源目的地址都没错,成功配置参数,一般搬数都能成功
您好,我运行了您附上的这个例子,平台是C6670 multi-core DSP.
在target configuration文件中采用6670 TI simulator 运行完全没有问题,功能正常,可以正确实现EDMA数据搬移。
但是我在6670评估板(带xds560v2 usb仿真器)上运行改程序时功能不正常(只是更改target configuration文件中的连接设置,main程序未改),单步发现各个寄存器数据异常(Paramset中的opt寄存器pivilege为1),且ESR不能置位.请问是什么原因啊?
因为您提供的test_deyisupport_org是用于C6678的,我移植到6670上面来是不是需要更改cmd文件啊?
我用你的工程可以 自己建立工程 库也加进去了 就不行了 这是怎么回事
您好
请问可以如果将该工程用于core0
CMD可以用Local L2作为L2吗?
即
VECTORS: origin=0x00800000 length=0x00000400
LL2MEM: origin=0x00800400 length=0x0007FC00
谢谢