Quantcast
Channel: C6000™多核 - 最近的话题
Viewing all articles
Browse latest Browse all 5545

c6678 edma搬运

$
0
0

各位专家与高手:

在使用官方提供的C6678开发包K1_STK_v1.1内示例程序进行EDMA测试时发现了以下现象:

EDMA调用接口:

voidedma_3D_Test (Uint32 src, Uint32 dst, Uint32 uiACount,

    Uint32 uiBCount, Uint32 uiCCount, Uint32 uiBIndex, Uint32 uiCIndex,

    CSL_TpccRegs*  EDMACCRegs, Uint32 TC_channel)

调用实例(连续搬运1M数据):

void edma_3D_Test (0x90000000, 0x80000000, 32768,32, 1, 32768, 0,  CSL_TpccRegs*  EDMACCRegs, Uint32 TC_channel);

现象1:

当DMA的原地址或者目的地址位于0x80000000到0x80100000这1M byte的DDR空间范围内,EDMA搬运完成时间特别长,做过如下测试(连续搬运1M bytes数据):前三项测试我们认为DMA数据搬运的速度是正常的,但是后三项测试,源地址或目的地址都有落在0x80000000到0x80100000区间内的情况,DMA搬运则耗时过长。

起始地址

目标地址

完成时间(cycle,1G主频)

带宽

0x90000000

0x80100000

320814

3117M bytes/s

0x90000000

0x0C200000

116142

8610M bytes/s

0x80100000

0x0C200000

116220

8604M bytes/s

0x80080000

0x0C200000

130007280

7.69M bytes/s

0x90000000

0x80080000

130115856

7.68M bytes/s

0x80000000

0x0C200000

268558212

3.72M bytes/s

现象2:

C6678片内有4M bytes的共享内存MSMC(0x0C000000到0x0C400000),当DMA的源地址和目的地址为0x0C000000时,会触发Exception,具体打印信息如下:

External exception happened. MEXPFLAG[2]=0x80000000.

  EDMA module 0 error

    TC 0 error happened

      EDMA3TC has detected an error at source or destination address.

      write error (9). TCC= 0. TCINTEN= 1. TCCHEN= 0

NRP=0x8514d4, NTSR=0x1000d, IRP=0x856fb8, ITSR=0xd, TSCH= 0x0, TSCL= 0x351fd306

 B3=0x85154c, A4=0x0, B4= 0x0, B14= 0xc207188, B15= 0xc205920

 

希望给我专家和高手给点调试建议。


Viewing all articles
Browse latest Browse all 5545

Trending Articles