DSPRelated.com
Forums

When should an EDMA terminate?

Started by colin_e2002 August 22, 2003
Dear All,

I am new to DSPs, so this might seem like an elementary question to
some! I am developing on a C6711 DSP, using code composer (v2.20) and
making use of the CSL.

I have created a simple EDMA which copies a 1D array to a single
memory location (an LED bank). The EDMA is triggered by channel 2
(Timer 1) and on each tick of this clock a single element is
transferred.

Everything works fine ... I can see the data being DMA'd to the LED
bank on my development board, but the problem is, the DMA never stops!

Initially I tried to transfer 5 elements from my array in a ingle
frame, i.e. Frame Count = 0, Element Count = 5. The 5 elements were
transferred succesfully, however I noticed that the EDMA was still
running and continually transferring the 5'th element on each Timer 1
clock tick.

EDMA_Config edmaCfg1 = {
0x21110000, /* Option */
(Uint32) g_RampArray,/* Source Address - Extern Decl.Obj */
0x00000005, /* Transfer Counter - Numeric */
0x800D0000, /* Destination Address - Numeric */
0x00010001, /* Index register - Numeric */
0x000101C8 /* Element Count Reload and Link Address */
}; I then tried transferring the 5 elements as 5 single element frames,
again, the EDMA ran succesfully but never stopped.

My conclusion is tha the EDMA is not halted when the frame count=0.
By keeping an eye on my EDMA PaRAM I can verify this.

My question is ... is this normal behaviour? Do you have to manually
halt the EDMA's by catching an interrupt?

Regards,
Colin E.