Overview
The direct memory access (DMA) controller performs complex data transfers with minimal intervention from the host processor. This example uses the DMA peripheral to transfer data from the Flash to RAM by using the DMA with different channels.
Supported Platforms
These Freescale Freedom development platforms and Tower System modules are supported by the DMA example.
- FRDM-K22F
- FRDM-K64F
- FRDM-KL25Z
- FRDM-KL27Z
- FRDM-KL43Z
- FRDM-KL46Z
- TWR-K21D50M
- TWR-K22F120M
- TWR-K24F120M
- TWR-K60D100M
- TWR-K64F120M
- TWR-KL43Z48M
- TWR-KV10Z32
System Requirement
Hardware requirements
- J-Link ARM
- P&E Micro Multi-link universal
- Mini/micro USB cable
- USB A to micro AB cable
- Hardware (tower/base board, ...) for specific device
- Personal Computer
Toolchain requirements
- IAR embedded Workbench version 7.30.4
- ARM GCC 4.8.3 2014q3
- Keil MDK 5.13
- Kinetis Design Studio IDE v.2.5.0
- Atollic TrueSTUDIO for ARM win32 v5.2.1
Software requirements
- The project files are in: <SDK_Install>/examples/<board>/driver_examples/dma/<toolchain>.
- Library dependencies: ksdk_platform_lib
Getting Started
Hardware settings
The DMA Example project does not call for any special hardware configurations. Although not required, the recommendation is to leave the development board's jumper settings and configurations in default state when running this example.
Prepare the example
- Connect a USB cable between the PC host and the OpenSDA USB port on the board.
- Open a serial terminal with these settings:
- 115200 baud rate
- 8 data bits
- No parity
- One stop bit
- No flow control
- Download the program to the target board.
- Either press the reset button on your board or launch the debugger in your IDE to begin running the example.
Run the example
These instructions are displayed/shown on the terminal window:
DMA EXAMPLE
Requesting channel 0 to transfer data from address 0x37ec to 0x1fffe018
Starting tranfer data ...
Transfered with DMA channel No.0: successful
Press any key to start tranferring data with other channel
User need type characters from the keyboard and the board will transfer data by using other channel (number of supported channels depends on each DMA instance). These instructions are displayed/shown on the terminal window:
Requesting channel 1 to transfer data from address 0x37ec to 0x1fffe018
Starting tranfer data ...
Transfered with DMA channel No.1: successful
Press any key to start tranferring data with other channel
Requesting channel 2 to transfer data from address 0x37ec to 0x1fffe018
Starting tranfer data ...
Transfered with DMA channel No.2: successful
Press any key to start tranferring data with other channel
Requesting channel 3 to transfer data from address 0x37ec to 0x1fffe018
Starting tranfer data ...
Transfered with DMA channel No.3: successful
Press any key to start tranferring data with other channel