First Version

Dependencies:   EthernetInterface mbed-rtos mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers dma.h Source File

dma.h

00001 /*
00002  * dma.h
00003  *
00004  *  Created on: 03/07/2011
00005  *      Author: francisco
00006  */
00007  #ifndef DMA_H
00008  #define DMA_H
00009 
00010 #define DMA_MEMORY                  -1
00011 
00012 #define DMA_PERIPHERAL_SSP0_TX      0U
00013 #define DMA_PERIPHERAL_SSP0_RX      1U
00014 #define DMA_PERIPHERAL_SSP1_TX      2U
00015 #define DMA_PERIPHERAL_SSP1_RX      3U
00016 #define DMA_PERIPHERAL_ADC          4U
00017 #define DMA_PERIPHERAL_I2S0         5U
00018 #define DMA_PERIPHERAL_I2S1         6U
00019 #define DMA_PERIPHERAL_DAC          7U
00020 #define DMA_PERIPHERAL_UART0_TX     8U
00021 #define DMA_PERIPHERAL_UART0_RX     9U
00022 #define DMA_PERIPHERAL_UART1_TX     10U
00023 #define DMA_PERIPHERAL_UART1_RX     11U
00024 #define DMA_PERIPHERAL_UART2_TX     12U
00025 #define DMA_PERIPHERAL_UART2_RX     13U
00026 #define DMA_PERIPHERAL_UART3_TX     14U
00027 #define DMA_PERIPHERAL_UART3_RX     15U
00028 
00029 #define DMA_MEMORY_TO_MEMORY            0U
00030 #define DMA_MEMORY_TO_PERIPHERAL        1U
00031 #define DMA_PERIPHERAL_TO_MEMORY        2U
00032 #define DMA_PERIPHERAL_TO_PERIPHERAL    3U
00033 
00034 #define DMA_DEST_SIZE(n)            (n<<15)
00035 #define DMA_SRC_SIZE(n)             (n<<12)
00036 
00037 #define DMA_SRC_WIDTH_BYTE          (0U<<18)
00038 #define DMA_SRC_WIDTH_HALFWORD      (1U<<18)
00039 #define DMA_SRC_WIDTH_WORD          (2U<<18)
00040 
00041 #define DMA_DST_WIDTH_BYTE          (0U<<21)
00042 #define DMA_DST_WIDTH_HALFWORD      (1U<<21)
00043 #define DMA_DST_WIDTH_WORD          (2U<<21)
00044 
00045 #define DMA_SRC_INCREMENT           (1U<<26)
00046 #define DMA_DST_INCREMENT           (1U<<27)
00047 
00048 #define DMA_TC_INT                  (1U<<31)
00049 
00050 #ifdef __cplusplus
00051 extern "C" {
00052 #endif
00053 
00054 typedef struct
00055 {
00056     unsigned long int sourceAddr;
00057     unsigned long int destAddr;
00058     unsigned long int nextNode;
00059     unsigned long int dmaControl;
00060 } dmaLinkedListNode;
00061 
00062 extern void init_dma(void);
00063 extern void setup_channel(dmaLinkedListNode* pList,int ch,int src,int dst);
00064 extern void stop_channel(void);
00065 
00066 #ifdef __cplusplus
00067 }
00068 #endif
00069 
00070 #endif //#define DMA_H