ADSP2116中DMA的应用
.var rxtcb_dest?8?=0?0?0?0?0?512?1?0x120000?
//设置DMA TCB
r0=0? dm?LCTL?=r0? //清空对应通道的控制
寄存器
ustat1=dm?LCTL??
bit clr ustat1 LAB0 | L0CLKD0?
bit set ustat1 L0TRAN | L0EN | L0CLKD1 | L0DEN | L0CHEN ?
dm?LCTL?=ustat1? //设置DMA控制器LCTL
//设置link0口为2x时钟,
接收数据模式,链式DMA
r1 = 0x00040000?
r0 = rxtcb_dest + 7?
r0 = r1 or r0? //设置CPLB0中的PCI位
dm?rxtcb_dest + 4? = r0? //设置TCB中的CPLB0
dm?CPLB0? = r0? //加载TCB中的CPLB0?
并开始链式DMA
4 结束语
本文简要介绍了ADSP2116x中DMA的基本原理,给出了几种DMA操作时的编程实例,这些例子重点突出了链式DMA的应用。由于ADSP2116x中DMA操作功能强大,形式多样。因此,只有熟练掌握和应用各种DMA,才能使数据进出芯片变得更加流畅,同时也才能使其核心处理单元的运算能力发挥到极致。
《ADSP2116中DMA的应用(第5页)》