]> git.sur5r.net Git - freertos/blob - Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_dma.h
Start to re-arrange files to include FreeRTOS+ in main download.
[freertos] / Demo / ARM7_STR75x_IAR / STLibrary / inc / 75x_dma.h
1 /******************** (C) COPYRIGHT 2006 STMicroelectronics ********************\r
2 * File Name          : 75x_dma.h\r
3 * Author             : MCD Application Team\r
4 * Date First Issued  : 03/10/2006 \r
5 * Description        : This file contains all the functions prototypes for the\r
6 *                      DMA software library.\r
7 ********************************************************************************\r
8 * History:\r
9 * 07/17/2006 : V1.0\r
10 * 03/10/2006 : V0.1 \r
11 ********************************************************************************\r
12 * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS\r
13 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.\r
14 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, \r
15 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE\r
16 * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING \r
17 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
18 *******************************************************************************/\r
19 \r
20 /* Define to prevent recursive inclusion ------------------------------------ */\r
21 #ifndef __75x_DMA_H\r
22 #define __75x_DMA_H\r
23 \r
24 /* Includes ------------------------------------------------------------------*/\r
25 #include "75x_map.h"\r
26 \r
27 /* Exported types ------------------------------------------------------------*/\r
28 /* DMA Init structure definition */\r
29 typedef struct\r
30 {\r
31   u32 DMA_SRCBaseAddr;\r
32   u32 DMA_DSTBaseAddr;  \r
33   u16 DMA_BufferSize;   \r
34   u16 DMA_SRC;   \r
35   u16 DMA_DST; \r
36   u16 DMA_SRCSize;\r
37   u16 DMA_SRCBurst;\r
38   u16 DMA_DSTSize;\r
39   u16 DMA_Mode;  \r
40   u16 DMA_M2M; \r
41   u16 DMA_DIR; \r
42 }DMA_InitTypeDef;\r
43 \r
44 /* Exported constants --------------------------------------------------------*/\r
45 /* DMA interrupt Mask */\r
46 #define DMA_IT_SI0    0x0001\r
47 #define DMA_IT_SI1    0x0002\r
48 #define DMA_IT_SI2    0x0004\r
49 #define DMA_IT_SI3    0x0008\r
50 #define DMA_IT_SE0    0x0010\r
51 #define DMA_IT_SE1    0x0020\r
52 #define DMA_IT_SE2    0x0040\r
53 #define DMA_IT_SE3    0x0080\r
54 #define DMA_IT_ALL    0x00FF\r
55 \r
56 /* DMA Flags */\r
57 #define DMA_FLAG_SI0     0x0001\r
58 #define DMA_FLAG_SI1     0x0002\r
59 #define DMA_FLAG_SI2     0x0004\r
60 #define DMA_FLAG_SI3     0x0008\r
61 #define DMA_FLAG_SE0     0x0010\r
62 #define DMA_FLAG_SE1     0x0020\r
63 #define DMA_FLAG_SE2     0x0040\r
64 #define DMA_FLAG_SE3     0x0080\r
65 #define DMA_FLAG_ACT0    0x0100\r
66 #define DMA_FLAG_ACT1    0x0200\r
67 #define DMA_FLAG_ACT2    0x0400\r
68 #define DMA_FLAG_ACT3    0x0800\r
69 \r
70 /* DMA Increment Current Source Register */\r
71 #define DMA_SRC_INCR        0x0002\r
72 #define DMA_SRC_NOT_INCR    0xFFFD\r
73 \r
74 /* DMA Increment Current Destination Register */\r
75 #define DMA_DST_INCR        0x0004\r
76 #define DMA_DST_NOT_INCR    0xFFFB\r
77 \r
78 /* Source to DMA data width */\r
79 #define DMA_SRCSize_Byte        0x0000\r
80 #define DMA_SRCSize_HalfWord    0x0008\r
81 #define DMA_SRCSize_Word        0x0010\r
82 \r
83 /* DMA source burst size */\r
84 #define DMA_SRCBurst_1Data     0x0000\r
85 #define DMA_SRCBurst_4Data     0x0020\r
86 #define DMA_SRCBurst_8Data     0x0040\r
87 #define DMA_SRCBurst_16Data    0x0060\r
88 \r
89 /* DMA destination data width */\r
90 #define DMA_DSTSize_Byte        0x0000\r
91 #define DMA_DSTSize_HalfWord    0x0080\r
92 #define DMA_DSTSize_Word        0x0100\r
93 \r
94 /* DMA mode */\r
95 #define DMA_Mode_Circular    0x0200\r
96 #define DMA_Mode_Normal      0xFDFF\r
97 \r
98 /* Memory to Memory Transfer */\r
99 #define DMA_M2M_Enable     0x0800\r
100 #define DMA_M2M_Disable    0xF7FF\r
101 \r
102 /* Direction Transfer */\r
103 #define DMA_DIR_PeriphDST    0x2000\r
104 #define DMA_DIR_PeriphSRC    0xDFFF\r
105 \r
106 /* DMA streamx Registers */\r
107 #define DMA_SOURCEL   0x00000000  /* source base address low register */\r
108 #define DMA_SOURCEH   0x00000004  /* source base address high register */\r
109 #define DMA_DESTL     0x00000008  /* destination base address low register */\r
110 #define DMA_DESTH     0x0000000C  /* destination base address high register */\r
111 #define DMA_MAX       0x00000010  /* Maximum count register */\r
112 #define DMA_CTRL      0x00000014  /* Control register */\r
113 #define DMA_SOCURRH   0x00000018  /* Current Source address high register */\r
114 #define DMA_SOCURRL   0x0000001C  /* Current Source address low register */\r
115 #define DMA_DECURRH   0x00000020  /* Current Destination address high register */\r
116 #define DMA_DECURRL   0x00000024  /* Current Destination address low register */\r
117 #define DMA_TCNT      0x00000028  /* Terminal Counter Register */\r
118 #define DMA_LUBUFF    0x0000002C  /* Last Used Buffer location */\r
119 \r
120 /* Exported macro ------------------------------------------------------------*/\r
121 /* Exported functions ------------------------------------------------------- */\r
122 \r
123 void DMA_DeInit(DMA_Stream_TypeDef* DMA_Streamx);\r
124 void DMA_Init(DMA_Stream_TypeDef* DMA_Streamx, DMA_InitTypeDef* DMA_InitStruct);\r
125 void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct);\r
126 void DMA_Cmd(DMA_Stream_TypeDef* DMA_Streamx, FunctionalState NewState);\r
127 void DMA_ITConfig(u16 DMA_IT, FunctionalState NewState);\r
128 u32 DMA_GetCurrDSTAddr(DMA_Stream_TypeDef* DMA_Streamx);\r
129 u32 DMA_GetCurrSRCAddr(DMA_Stream_TypeDef* DMA_Streamx);\r
130 u16 DMA_GetTerminalCounter(DMA_Stream_TypeDef* DMA_Streamx);\r
131 void DMA_LastBufferSweepConfig(DMA_Stream_TypeDef* DMA_Streamx, FunctionalState NewState);\r
132 void DMA_LastBufferAddrConfig(DMA_Stream_TypeDef* DMA_Streamx, u16 DMA_LastBufferAddr);\r
133 FlagStatus DMA_GetFlagStatus(u16 DMA_FLAG);\r
134 void DMA_ClearFlag(u16 DMA_FLAG);\r
135 ITStatus DMA_GetITStatus(u16 DMA_IT);\r
136 void DMA_ClearITPendingBit(u16 DMA_IT);\r
137 \r
138 #endif /* __75x_DMA_H */\r
139 \r
140 /******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/\r