保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

ADSP2116中DMA的应用


VAR tcb2[8]=64,1,0x2000040,

// ECEP0, EMEP0, EIEP0,0? //GPEP0

0x40000, //CPEP0,保证第二个DMA结束后产生DMA中断

64,1,0x50040;//CEP0, IMEP0, IIEP0

r0=0,

dm(DMAC10)=r0; //清空对应通道的DMA控制器

ustat0=0x00000000;

bit set ustat0 INT32 |MASTER|PMODE4|CHEN|DEN|TRAN;

dm(DMAC10)=ustat0; //设置为master和无打包模式,链式DMA

r0=tcb1+7-0x40000;

dm(CPEP0) =r0; //加载第一个TCB的CPEP0?

开始DMA传输完第一段数据

后自动开始加载第二个TCB,

直到两段数据后产生中断

bit set mode1 IRPTEN? //设置全局中断使能

bit set imask EP0I? //设置DMA通道#10中断使能

3.2 片内存储器与link口之间的DMA

ADSP2116x具有很强的并行工作能力,它不需另加任何外部仲裁电路,便可以直接通过link口联接在一起并行工作以实现片间数据的交换,在通常情况下可采用DMA方式,以便充分发挥其优点。下面是两片ADSP2116x之间通过link0口进行数据传输的例子。假定要把第一片片内存储器0x100000~0x1001ff中的512个数据传送到第二片的片内存储器0x120000~0x1201ff中。其程序如下:

//第一片

.var txtcb_source?8?=0?0?0?0?0?512?1?0x100000?

//设置DMA TCB

r0 = 0? dm?LCTL? = r0? //清空对应通道的

控制寄存器

ustat1=dm?LCTL??

bit clr ustat1 L0TRAN | LAB0 | L0CLKD0?

bit set ustat1 L0EN | L0CLKD1 | L0DEN | L0CHEN ?dm?LCTL?=ustat1? //设置DMA控制器LCTL

//设置link0口为2x时钟,发

送数据模式,链式DMA

r1 = 0x00040000?

r0 = txtcb_source + 7?

r0 = r1 or r0? //设置CPLB0寄存器中的PCI位

dm?txtcb_source + 4? = r0? //设置TCB中的CPLB0

dm?CPLB0? = r0? //加载TCB中的CPLB0,并

开始链式DMA

//第二片

《ADSP2116中DMA的应用(第4页)》
本文链接地址:http://www.oyaya.net/fanwen/view/174745.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。