DSPRelated.com
Forums

EDMA problem

Started by nisar2075 March 25, 2002
Hi
all,

we are working on 6211 DSK and having problem with
EDMA usage.
The problems we are facing are as follows
-- channel link
-- channel chaining
-- The length assigned to an array is not reflected
properly in the memory.If we assign 1K, 4k of data is
filled by EDMA

If anyone has already worked on EDMA or has EDMA
examples,
Please send to the following Mail-Id's Thanks

Nisar and Preeti




Hello,

You wrote :

> -- The length assigned to an array is not reflected
> properly in the memory.If we assign 1K, 4k of data is
> filled by EDMA

EDMA counting is in elements, not in bytes
Is you set ElementSize to 32 bits and set
count to 1024 you will have 1024 Int32 transfered
that is 4096 bytes !

Concerning linking. It is recommended that every
EDMA programming is linked to a PRAM EDMA parameter
set filled with zero to properly end the EDMA transfer. Jean-Michel MERCIER

-------------------
dsp and imaging specialists - www.ateme.com
ATEME - 26 Burospace - 91573 BIEVRES
Tel : +33 (0)1 69 35 89 73 (direct)
Fax : +33 (0)1 60 19 13 95


Hi,

you can get some info/code from

http://dspvillage.ti.com/docs/catalog/resources/appnoteabstract.jhtml?familyId=4\
77&abstractName=spra636a

regards,
tarakesh. --- nisar2075 <> wrote:
> Hi
> all,
>
> we are working on 6211 DSK and having problem with
> EDMA usage.
> The problems we are facing are as follows
> -- channel link
> -- channel chaining
> -- The length assigned to an array is not reflected
>
> properly in the memory.If we assign 1K, 4k of data
> is
> filled by EDMA
>
> If anyone has already worked on EDMA or has EDMA
> examples,
> Please send to the following Mail-Id's > Thanks
>
> Nisar and Preeti > _____________________________________
> Note: If you do a simple "reply" with your email
> client, only the author of this message will receive
> your answer. You need to do a "reply all" if you
> want your answer to be distributed to the entire
> group.
>
> _____________________________________
> About this discussion group:
>
> To Join: Send an email to > To Post: Send an email to
>
> To Leave: Send an email to > Archives: http://www.yahoogroups.com/group/c6x
>
> Other Groups: http://www.dsprelated.com > ">http://docs.yahoo.com/info/terms/


__________________________________________________


Hi All,

I'm using the TMS320C6415 with code composer 2.2 and CSL. I try to setup a
EDMA transfer but it does not seems to work.
The problem is that the dma 'done interrupt' does not occured. Function
'Edma_Interrupt' is called when interrupt 8 occures (but int8 does not).
Below you see my test source code.
The CPU sets the event so I do not use a hardware event.
When I step through this code and execute "EDMA_setChannel(hEdma0);" I see
at the debugger that the event set register (ESRL) does not set.
So I can't trigger an event to start the EDMA.
Even when I write directly to the register "Write32(0x01A0FFFC,0x00000800);"
it won't work.

What is wrong here?----------- Source code--------------------------------

void Edma_Transfer(void)
{
 EDMA_Handle hEdma0;

 IRQ_reset(IRQ_EVT_EDMAINT);
 EDMA_clearPram(0x00000000);

 hEdma0A_open(EDMA_CHA_GPINT3, EDMA_OPEN_RESET);

 EDMA_configArgs(hEdma0,
  EDMA_OPT_RMK(
   EDMA_OPT_PRI_MEDIUM,
   EDMA_OPT_ESIZE_16BIT,
   EDMA_OPT_2DS_NO,
   EDMA_OPT_SUM_NONE,
   EDMA_OPT_2DD_NO,
   EDMA_OPT_DUM_NONE,
   EDMA_OPT_TCINT_YES,
   EDMA_OPT_TCC_OF(11),
   EDMA_OPT_TCCM_DEFAULT,
   EDMA_OPT_ATCINT_DEFAULT,
   EDMA_OPT_ATCC_DEFAULT,
   EDMA_OPT_PDTS_DEFAULT,
   EDMA_OPT_PDTD_DEFAULT,
   EDMA_OPT_LINK_NO,
   EDMA_OPT_FS_NO
  ),
  EDMA_SRC_RMK((UInt32_t)EdmaOutBuffer),
  EDMA_CNT_RMK(
   EDMA_CNT_FRMCNT_DEFAULT,
   EDMA_CNT_ELECNT_OF(8)
  ),
  EDMA_DST_RMK((UInt32_t)EdmaInBuffer),
  EDMA_IDX_RMK(0,1),
  EDMA_RLD_RMK(0,0)
 );

 IRQ_enable(IRQ_EVT_EDMAINT);

 EDMA_intEnable(EDMA_CHA_GPINT3);
 EDMA_enableChannel(hEdma0);

 EDMA_setChannel(hEdma0);

 while(!TransferDone);
 TransferDoneSE;

 EDMA_close(hEdma0);
}

interrupt void Edma_Interrupt(void)
{
 TransferDone=TRUE;
}Regards,
Philippe