cancel
Showing results for 
Search instead for 
Did you mean: 

DMA

emann
Associate II
Posted on March 17, 2008 at 14:24

DMA

3 REPLIES 3
gdp123a
Associate II
Posted on May 17, 2011 at 12:26

The ''while (1);'' is not really idling - it is equivalent to the CPU chasing its own tail at full speed. Try using the sleep command (WFI) and see if it is better. You can use the end of transfer interrupt (or systick) to wake the CPU up,

Greg.

emann
Associate II
Posted on May 17, 2011 at 12:26

I am running code on the Keil STM32 Eval Board to do a parallel transfer from an SRAM array to GPIO-B (CPU=72MHz/APB2=72MHz/APB1=36MHz). The transfers are edge-triggered from TMR2. I can get the TMR2 output-compare to toggle a pin at 32MHz but the DMA port writes only run at 6.5MHz. Once the DMA is running the CPU is just idling ( while (1); ) and there is only one DMA process running.

Why are my DMA transfers slow?

Thanks for your help.

[ This message was edited by: emann on 14-03-2008 15:09 ]

emann
Associate II
Posted on May 17, 2011 at 12:26

Greg, thanks for the suggestion. It makes no difference to the DMA rate - not suprising I suppose as instruction fetches via the IBus do not influence the DMA process.

However, I've learnt a lot more about my eval board, since adding a WFI disables the Jtag interface!