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
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
20 /* Define to prevent recursive inclusion ------------------------------------ */
\r
24 /* Includes ------------------------------------------------------------------*/
\r
25 #include "75x_map.h"
\r
27 /* Exported types ------------------------------------------------------------*/
\r
28 /* DMA Init structure definition */
\r
31 u32 DMA_SRCBaseAddr;
\r
32 u32 DMA_DSTBaseAddr;
\r
33 u16 DMA_BufferSize;
\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
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
70 /* DMA Increment Current Source Register */
\r
71 #define DMA_SRC_INCR 0x0002
\r
72 #define DMA_SRC_NOT_INCR 0xFFFD
\r
74 /* DMA Increment Current Destination Register */
\r
75 #define DMA_DST_INCR 0x0004
\r
76 #define DMA_DST_NOT_INCR 0xFFFB
\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
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
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
95 #define DMA_Mode_Circular 0x0200
\r
96 #define DMA_Mode_Normal 0xFDFF
\r
98 /* Memory to Memory Transfer */
\r
99 #define DMA_M2M_Enable 0x0800
\r
100 #define DMA_M2M_Disable 0xF7FF
\r
102 /* Direction Transfer */
\r
103 #define DMA_DIR_PeriphDST 0x2000
\r
104 #define DMA_DIR_PeriphSRC 0xDFFF
\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
120 /* Exported macro ------------------------------------------------------------*/
\r
121 /* Exported functions ------------------------------------------------------- */
\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
138 #endif /* __75x_DMA_H */
\r
140 /******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/
\r