Content originally posted in LPCWare by Pacman on Mon Nov 04 01:35:27 MST 2013
I had difficulties getting the DMA started and got stuck.
It seemed I tried everything I could possibly think of, but after sleeping on the problem, I woke up and was reminded:
"The AHB Master 0 can only access memory."
So I got up and changed the code that I posted here, now I changed my question to an answer for those who also get stuck.
Attached is a file called DMA-Transfer.c...
I've made it quite minimalistic and put everything in one file for an easy overview.
-So it should be possible to compile and test it on most setups.
The following is basically what I'm doing:
  [*]Set all GPIO port 2 pins to output
  [*]Output a dummy value 0xc3, so I can see if it changes.
  [*]Turn on BASE_M4_CLK if it's not on already (it would be)
  [*]Disable DMA interrupts in NVIC (I don't use any)
  [*]Connect DMA branch clock to BASE_M4_CLK (should be on after reset anyway)
  [*]Stop/disable DMA Channel 0
  [*]Enable DMA
  [*]Clear pending bits and error bits.
  [*]Set up a source address, destination address and transfer size
  [*]Set up transfer type (Destination transfer must use AHB Master 0, not AHB Master 1)
  [*]Start the DMA
  [*]See that the 8 LEDs connected to GPIO port 2 changed.
  [*]See that the 2 leds toggle in the main-loop, to confirm that the main loop is running.
Original Attachment has been moved to: DMA-Transfer.c.zip