dmactrl.c

Go to the documentation of this file.
00001 /***************************************************************************/
00019 #include "em_device.h"
00020 #include "dmactrl.h"
00021 
00022 #if ( ( DMA_CHAN_COUNT > 0 ) && ( DMA_CHAN_COUNT <= 4 ) )
00023 #define DMACTRL_CH_CNT      4
00024 #define DMACTRL_ALIGNMENT   128
00025 
00026 #elif ( ( DMA_CHAN_COUNT > 4 ) && ( DMA_CHAN_COUNT <= 8 ) )
00027 #define DMACTRL_CH_CNT      8
00028 #define DMACTRL_ALIGNMENT   256
00029 
00030 #elif ( ( DMA_CHAN_COUNT > 8 ) && ( DMA_CHAN_COUNT <= 12 ) )
00031 #define DMACTRL_CH_CNT      16
00032 #define DMACTRL_ALIGNMENT   256
00033 
00034 #else
00035 #error "Unsupported DMA channel count (dmactrl.c)."
00036 #endif
00037 
00038 
00040 #if defined (__ICCARM__)
00041 #pragma data_alignment=DMACTRL_ALIGNMENT
00042 DMA_DESCRIPTOR_TypeDef dmaControlBlock[DMACTRL_CH_CNT * 2];
00043 
00044 #elif defined (__CC_ARM)
00045 DMA_DESCRIPTOR_TypeDef dmaControlBlock[DMACTRL_CH_CNT * 2] __attribute__ ((aligned(DMACTRL_ALIGNMENT)));
00046 
00047 #elif defined (__GNUC__)
00048 DMA_DESCRIPTOR_TypeDef dmaControlBlock[DMACTRL_CH_CNT * 2] __attribute__ ((aligned(DMACTRL_ALIGNMENT)));
00049 
00050 #else
00051 #error Undefined toolkit, need to define alignment
00052 #endif