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