我刚学DM6446的edma,写了个简单测试程序,发现不传输数据。
程序如下: void edma_config() { OPT_EDMA = (1<<20)|(1<<3)|(0<<1)|(0<<0); SRC_EDMA = 0x80100000; CNT_EDMA = (BCNT << 16) | ACNT; DST_EDMA = 0x80F00000; BIDX_EDMA = (DSTBIDX << 16) | SRCBIDX; RLD_EDMA = (BCNTRLD << 16) | LINK; CIDX_EDMA = (DSTCIDX << 16) | SRCCIDX; CCNT_EDMA = CCNT;
} void main( void ) { DAVINCIEVM_init(); ICR = 0xFFFF; ICRH = 0xFFFF; EESR = 0x0; EESRH = 0x1; DMAQNUM4 = 0x0; edma_config();
IESR = 0xFFFF; IESRH = 0xFFFF;
ESR = 0x0; ESRH = 0x1;
while(1);
}
想简单的手动触发一下,可感觉没传输 不知道为什么 |