TI中文支持网
TI专业的中文技术问题搜集分享网站

6678,for循环edma时目的地址的数据不是源地址的数据,也不是原有数据,打断点edma又没有问题

   连续16次DMA只成功了第一次,后15次L2SRAM里的数据不是其原有数据,也不是源地址ddr3里的数据。

在for循环里打断点一次一次DMA又是可以成功DMA16次的

CACHE_invL1d((void*)(0x10800000),4096*2*16,CACHE_WAIT);   

for(j=0;j<16;j++)
    {
        DMA_Transfer_LFM_A((void*)(0x10800000+j*4096*2*4), (void*)(0x84000010+j*98320), 0,4096);

    } 

这是DMA的函数
   void DMA_Transfer_LFM_A(void* dst, void* src, int n,int acnt)
{
    ICR(n)   = 1;             /////////////Interrupt Clear Registers (ICR, ICRH)
    EMCR(n)  = 1<<2;          /////////////Event Missed Clear Registers (EMCR/EMCRH)
    EMCRH(n)  = 1<<2;
    SECR(n)  = 1<<2;          ////////////Secondary Event Clear Registers (SECR, SECRH)
    SECRH(n) = 1<<2;
    CCERRCLR(n)    = 0xFFFFFFFF; ////////////EDMA3CC Error Clear Register (CCERRCLR)

    OPT(n,0) = CSL_EDMA3_OPT_MAKE(
                CSL_EDMA3_ITCCH_DIS,\
                CSL_EDMA3_TCCH_DIS,\
                CSL_EDMA3_ITCINT_DIS,\
                CSL_EDMA3_TCINT_EN,\
                0,\
                CSL_EDMA3_TCC_NORMAL,\
                CSL_EDMA3_FIFOWIDTH_NONE,\
                CSL_EDMA3_STATIC_EN,\
                CSL_EDMA3_SYNC_A,\
                CSL_EDMA3_ADDRMODE_INCR,\
                CSL_EDMA3_ADDRMODE_INCR
                );
    DST(n,0)     = (int)dst;
    SRC(n,0)     = (int)src;
    ABCNT(n,0)    = CSL_EDMA3_CNT_MAKE((8*acnt),1);
    //ABCNT(n,0)    = CSL_EDMA3_CNT_MAKE((acnt),bcnt);
    BIDX(n,0)    = CSL_EDMA3_BIDX_MAKE(0,0);
    RLD(n,0)    = CSL_EDMA3_LINKBCNTRLD_MAKE(CSL_EDMA3_LINK_NULL,0);
    CIDX(n,0)    = CSL_EDMA3_CIDX_MAKE(0,0);
    CCNT(n,0)    = 1;

    ESR(n)         = 1<<2;    //手动触发DMA传输,,,Event Set Registers (ESR, ESRH)
    while((IPR(n) & 1) != 1);
 }

Nancy Wang:

你程序中配置的手动触发次数对吗?看你的描述好像只是成功触发了一次传输。

user6045763:

回复 Nancy Wang:

执行edma的时候L2SRAM里的数是变了,但是更新后的数不是源地址里的数 不知道为什么

Nancy Wang:

回复 user6045763:

你程序里是开启了cache?试试看不开cache情况下会不会出现这样的情况。

user6045763:

回复 Nancy Wang:

L2SRAM没有开cache 去掉cache_inv也有这种情况

赞(0)
未经允许不得转载:TI中文支持网 » 6678,for循环edma时目的地址的数据不是源地址的数据,也不是原有数据,打断点edma又没有问题
分享到: 更多 (0)