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

6747 EDMA3数据无法传输

您好:

    我想通过6747的EDMA3实现sdram与dsp二级缓存之间的通信,但是一直没有实现,不知道问题出在哪里?

这是EDMA3的配置
#include "C6747.h"

void InitEDMA3()
{
  CCCFG=0x00003005;
  PARSET0_OPT=0X00100008;  PARSET0_SRC=0xC0000000;
  PARSET0_A_B_CNT=0x00010100;
  PARSET0_DST=0x80000f00;
  PARSET0_SRC_DST_BIDX=0x00000000;
  PARSET0_LINK_BCNTRLD=0x0000ffff;
  PARSET0_SRC_DST_CIDX=0x00000000;
  PARSET0_CCNT=0x00000001;    ESR=0x1;
  //IPR=0x00000001;
}

/×main×/

#include "C6747.h"

void WriteSdram();void InitEDMA3();
Uint32 *DSPL2RAM =(Uint32* )0x11800000 ;

void main()
{
 // int i=0;   C6747_init();   WriteSdram();
   InitEDMA3();
//   EESR=1;
   ESR=0x1;
   if(*(DSPL2RAM+255)==255)
   printf("Write DSPL2RAM SUCCESS!\n");
   else
   printf("Write DSPL2RAM error\n");
  /* for(i=0;i<256;i++)
   {
    *(DSPL2RAM+i)=i;
   }*/
  

 

/*SDRAM*/

#include "stdio.h"
#include "C6747.h"

void WriteSdram()
{
    Uint32 i;
    Uint32 *SDRAM_StartAdd;
    Uint32 Length=256; //长度最长应为ox20000000
    SDRAM_StartAdd = (Uint32 *)0xC0000000;//EMIFB的起始地址为0xc0000000,EMIFB连接两块SDRAM
    for( i=0;i<Length;i++)
    {
     *(SDRAM_StartAdd+i)=i;    }
    if(*(SDRAM_StartAdd+255)==255)
     printf("Write SDRAM Success!\n");
    else
    printf("Write SDRAM error!\n"); 
  }

不知道是哪里出问题了,这是6747数据手册上的一个例子,一直没有实现,请指点一下。

 

Tony Tang:

可以参考下面链接EDMA的例子,改成手动触发即可:

http://www.deyisupport.com/question_answer/dsp_arm/omap_l1x/f/54/t/12550.aspx

 

赞(0)
未经允许不得转载:TI中文支持网 » 6747 EDMA3数据无法传输
分享到: 更多 (0)