30 #ifndef __NIIETCM4_DMA_H
31 #define __NIIETCM4_DMA_H
34 #if defined (__CC_ARM)
63 #define CHANNEL_CFG_CYCLE_CTRL_Pos 0
64 #define CHANNEL_CFG_NEXT_USEBURST_Pos 3
65 #define CHANNEL_CFG_N_MINUS_1_Pos 4
66 #define CHANNEL_CFG_R_POWER_Pos 14
67 #define CHANNEL_CFG_SRC_PROT_CTRL_Pos 18
68 #define CHANNEL_CFG_DST_PROT_CTRL_Pos 21
69 #define CHANNEL_CFG_SRC_SIZE_Pos 24
70 #define CHANNEL_CFG_SRC_INC_Pos 26
71 #define CHANNEL_CFG_DST_SIZE_Pos 28
72 #define CHANNEL_CFG_DST_INC_Pos 30
74 #define CHANNEL_CFG_CYCLE_CTRL_Msk ((uint32_t)0x00000007)
75 #define CHANNEL_CFG_NEXT_USEBURST_Msk ((uint32_t)0x00000008)
76 #define CHANNEL_CFG_N_MINUS_1_Msk ((uint32_t)0x00003FF0)
77 #define CHANNEL_CFG_R_POWER_Msk ((uint32_t)0x0003C000)
78 #define CHANNEL_CFG_SRC_PROT_CTRL_Msk ((uint32_t)0x001C0000)
79 #define CHANNEL_CFG_DST_PROT_CTRL_Msk ((uint32_t)0x00E00000)
80 #define CHANNEL_CFG_SRC_SIZE_Msk ((uint32_t)0x03000000)
81 #define CHANNEL_CFG_SRC_INC_Msk ((uint32_t)0x0C000000)
82 #define CHANNEL_CFG_DST_SIZE_Msk ((uint32_t)0x30000000)
83 #define CHANNEL_CFG_DST_INC_Msk ((uint32_t)0xC0000000)
93 #define DMA_Channel_All ((uint32_t)0x00FFFFFF)
99 #define DMA_Channel_0 ((uint32_t)0x00000001)
100 #define DMA_Channel_1 ((uint32_t)0x00000002)
101 #define DMA_Channel_2 ((uint32_t)0x00000004)
102 #define DMA_Channel_3 ((uint32_t)0x00000008)
103 #define DMA_Channel_4 ((uint32_t)0x00000010)
104 #define DMA_Channel_5 ((uint32_t)0x00000020)
105 #define DMA_Channel_6 ((uint32_t)0x00000040)
106 #define DMA_Channel_7 ((uint32_t)0x00000080)
107 #define DMA_Channel_8 ((uint32_t)0x00000100)
108 #define DMA_Channel_9 ((uint32_t)0x00000200)
109 #define DMA_Channel_10 ((uint32_t)0x00000400)
110 #define DMA_Channel_11 ((uint32_t)0x00000800)
111 #define DMA_Channel_12 ((uint32_t)0x00001000)
112 #define DMA_Channel_13 ((uint32_t)0x00002000)
113 #define DMA_Channel_14 ((uint32_t)0x00004000)
114 #define DMA_Channel_15 ((uint32_t)0x00008000)
115 #define DMA_Channel_16 ((uint32_t)0x00010000)
116 #define DMA_Channel_17 ((uint32_t)0x00020000)
117 #define DMA_Channel_18 ((uint32_t)0x00040000)
118 #define DMA_Channel_19 ((uint32_t)0x00080000)
119 #define DMA_Channel_20 ((uint32_t)0x00100000)
120 #define DMA_Channel_21 ((uint32_t)0x00200000)
121 #define DMA_Channel_22 ((uint32_t)0x00400000)
122 #define DMA_Channel_23 ((uint32_t)0x00800000)
132 #define DMA_Channel_UART0_TX DMA_Channel_0
133 #define DMA_Channel_UART1_TX DMA_Channel_1
134 #define DMA_Channel_UART2_TX DMA_Channel_2
135 #define DMA_Channel_UART3_TX DMA_Channel_3
136 #define DMA_Channel_UART0_RX DMA_Channel_4
137 #define DMA_Channel_UART1_RX DMA_Channel_5
138 #define DMA_Channel_UART2_RX DMA_Channel_6
139 #define DMA_Channel_UART3_RX DMA_Channel_7
140 #define DMA_Channel_ADCSEQ0 DMA_Channel_8
141 #define DMA_Channel_ADCSEQ1 DMA_Channel_9
142 #define DMA_Channel_ADCSEQ2 DMA_Channel_10
143 #define DMA_Channel_ADCSEQ3 DMA_Channel_11
144 #define DMA_Channel_ADCSEQ4 DMA_Channel_12
145 #define DMA_Channel_ADCSEQ5 DMA_Channel_13
146 #define DMA_Channel_ADCSEQ6 DMA_Channel_14
147 #define DMA_Channel_ADCSEQ7 DMA_Channel_15
148 #define DMA_Channel_SPI0_TX DMA_Channel_16
149 #define DMA_Channel_SPI1_TX DMA_Channel_17
150 #define DMA_Channel_SPI2_TX DMA_Channel_18
151 #define DMA_Channel_SPI3_TX DMA_Channel_19
152 #define DMA_Channel_SPI0_RX DMA_Channel_20
153 #define DMA_Channel_SPI1_RX DMA_Channel_21
154 #define DMA_Channel_SPI2_RX DMA_Channel_22
155 #define DMA_Channel_SPI3_RX DMA_Channel_23
165 #define IS_DMA_CHANNEL(CHANNEL) (((CHANNEL) != (uint32_t)0x000000) && (((CHANNEL) & (uint32_t)0xFF000000) == ((uint32_t)0x0000)))
172 #define IS_GET_DMA_CHANNEL(CHANNEL) (((CHANNEL) == (DMA_Channel_0)) || \
173 ((CHANNEL) == (DMA_Channel_1)) || \
174 ((CHANNEL) == (DMA_Channel_2)) || \
175 ((CHANNEL) == (DMA_Channel_3)) || \
176 ((CHANNEL) == (DMA_Channel_4)) || \
177 ((CHANNEL) == (DMA_Channel_5)) || \
178 ((CHANNEL) == (DMA_Channel_6)) || \
179 ((CHANNEL) == (DMA_Channel_7)) || \
180 ((CHANNEL) == (DMA_Channel_8)) || \
181 ((CHANNEL) == (DMA_Channel_9)) || \
182 ((CHANNEL) == (DMA_Channel_10)) || \
183 ((CHANNEL) == (DMA_Channel_11)) || \
184 ((CHANNEL) == (DMA_Channel_12)) || \
185 ((CHANNEL) == (DMA_Channel_13)) || \
186 ((CHANNEL) == (DMA_Channel_14)) || \
187 ((CHANNEL) == (DMA_Channel_15)) || \
188 ((CHANNEL) == (DMA_Channel_16)) || \
189 ((CHANNEL) == (DMA_Channel_17)) || \
190 ((CHANNEL) == (DMA_Channel_18)) || \
191 ((CHANNEL) == (DMA_Channel_10)) || \
192 ((CHANNEL) == (DMA_Channel_20)) || \
193 ((CHANNEL) == (DMA_Channel_21)) || \
194 ((CHANNEL) == (DMA_Channel_22)) || \
195 ((CHANNEL) == (DMA_Channel_23)))
214 uint32_t CYCLE_CTRL :3;
215 uint32_t NEXT_USEBURST :1;
216 uint32_t N_MINUS_1 :10;
218 uint32_t SRC_PROT_PRIVILEGED :1;
219 uint32_t SRC_PROT_BUFFERABLE :1;
220 uint32_t SRC_PROT_CACHEABLE :1;
221 uint32_t DST_PROT_PRIVILEGED :1;
222 uint32_t DST_PROT_BUFFERABLE :1;
223 uint32_t DST_PROT_CACHEABLE :1;
224 uint32_t SRC_SIZE :2;
226 uint32_t DST_SIZE :2;
265 uint32_t RESERVED0[32];
267 uint32_t RESERVED1[32];
290 #define IS_DMA_MODE(MODE) (((MODE) == DMA_Mode_Disable) || \
291 ((MODE) == DMA_Mode_Basic) || \
292 ((MODE) == DMA_Mode_AutoReq) || \
293 ((MODE) == DMA_Mode_PingPong) || \
294 ((MODE) == DMA_Mode_PrmMemScatGath) || \
295 ((MODE) == DMA_Mode_AltMemScatGath) || \
296 ((MODE) == DMA_Mode_PrmPeriphScatGath) || \
297 ((MODE) == DMA_Mode_AltPeriphScatGath))
322 #define IS_DMA_ARBITRATION_RATE(ARBITRATION_RATE) (((ARBITRATION_RATE) == DMA_ArbitrationRate_1) || \
323 ((ARBITRATION_RATE) == DMA_ArbitrationRate_2) || \
324 ((ARBITRATION_RATE) == DMA_ArbitrationRate_4) || \
325 ((ARBITRATION_RATE) == DMA_ArbitrationRate_8) || \
326 ((ARBITRATION_RATE) == DMA_ArbitrationRate_16) || \
327 ((ARBITRATION_RATE) == DMA_ArbitrationRate_32) || \
328 ((ARBITRATION_RATE) == DMA_ArbitrationRate_64) || \
329 ((ARBITRATION_RATE) == DMA_ArbitrationRate_128) || \
330 ((ARBITRATION_RATE) == DMA_ArbitrationRate_256) || \
331 ((ARBITRATION_RATE) == DMA_ArbitrationRate_512) || \
332 ((ARBITRATION_RATE) == DMA_ArbitrationRate_1024))
360 #define IS_DMA_DATA_SIZE(DATA_SIZE) (((DATA_SIZE) == DMA_DataSize_8) || \
361 ((DATA_SIZE) == DMA_DataSize_16) || \
362 ((DATA_SIZE) == DMA_DataSize_32))
380 #define IS_DMA_DATA_INC(DATA_INC) (((DATA_INC) == DMA_DataInc_8) || \
381 ((DATA_INC) == DMA_DataInc_16) || \
382 ((DATA_INC) == DMA_DataInc_32) || \
383 ((DATA_INC) == DMA_DataInc_Disable))
419 #define IS_DMA_TRANSFERS_TOTAL(TRANSFERS_TOTAL) (((TRANSFERS_TOTAL) <= ((uint32_t)1024)) && ((TRANSFERS_TOTAL) >= ((uint32_t)1)))
465 #define IS_DMA_STATE(STATE) (((STATE) == DMA_State_Free) || \
466 ((STATE) == DMA_State_ReadConfigData) || \
467 ((STATE) == DMA_State_ReadSrcDataEndPtr) || \
468 ((STATE) == DMA_State_ReadDstDataEndPtr) || \
469 ((STATE) == DMA_State_ReadSrcData) || \
470 ((STATE) == DMA_State_WriteDstData) || \
471 ((STATE) == DMA_State_WaitReq) || \
472 ((STATE) == DMA_State_Pause) || \
473 ((STATE) == DMA_State_Done) || \
474 ((STATE) == DMA_State_PeriphScatGath))
551 #if defined(__CC_ARM)
FunctionalState DMA_ReqMask
OperationStatus
Описывает коды возврата для функций при выполнении какой-либо операции.
DMA_Protect_TypeDef DMA_SrcProtect
Защита шины при чтении из источника или записи в приемник через DMA.
void DMA_Init(DMA_Init_TypeDef *DMA_InitStruct)
Инициализация контроллера DMA.
DMA_Mode_TypeDef DMA_Mode
void DMA_UseBurstCmd(uint32_t DMA_Channel, FunctionalState State)
Установка пакетного обмена каналов DMA.
void DMA_ClearErrorStatus(void)
Сброс флага ошибки на шине.
Тип, описывающий структуру канала DMA.
void DMA_ReqMaskCmd(uint32_t DMA_Channel, FunctionalState State)
Маскирование каналов DMA.
DMA_State_TypeDef
Возможные состояния конечного автомата управления контроллером DMA.
FunctionalState DMA_MasterEnableStatus(void)
Состояние контроллера DMA.
FunctionalState DMA_PrmAlt
void DMA_ChannelStructInit(DMA_ChannelInit_TypeDef *DMA_ChannelInitStruct)
Заполнение каждого члена структуры DMA_ChannelInitStruct значениями по умолчанию. ...
FunctionalState PRIVELGED
DMA_ConfigStruct_TypeDef ALT_DATA
void DMA_SWRequestCmd(uint32_t DMA_Channel)
Программный запрос на осуществление передач DMA по выбранным каналам.
DMA_Mode_TypeDef
Выбор режима работы DMA.
FunctionalState DMA_WaitOnReqStatus(uint32_t DMA_Channel)
Показывает поддерживает ли канал одиночные SREQ запросы.
void DMA_ChannelInit(DMA_Channel_TypeDef *DMA_Channel, DMA_ChannelInit_TypeDef *DMA_ChannelInitStruct)
Инициализация канала DMA.
DMA_State_TypeDef DMA_StateStatus(void)
Доступ к текущему конечного автомата контроллера DMA.
DMA_Protect_TypeDef DMA_Protection
DMA_DataSize_TypeDef
Разрядность данных источника или приемника
void DMA_ChannelEnableCmd(uint32_t DMA_Channel, FunctionalState State)
Активация каналов DMA.
Битовый доступ к регистру CHANNEL_CFG в DMA_Channel_TypeDef.
void DMA_HighPriorityCmd(uint32_t DMA_Channel, FunctionalState State)
Установка высокого приоритета каналов DMA.
DMA_ArbitrationRate_TypeDef DMA_ArbitrationRate
void DMA_ChannelDeInit(DMA_Channel_TypeDef *DMA_Channel)
Деинициализация канала DMA.
DMA_DataInc_TypeDef DMA_DstDataInc
FunctionalState DMA_UseBurst
Совокупность из основной и управляющей структур DMA. Общий размер 1 кБ.
uint32_t DMA_TransfersTotal
FunctionalState CACHEABLE
_CHANNEL_CFG_bits CHANNEL_CFG_bit
DMA_Protect_TypeDef DMA_DstProtect
void DMA_PrmAltCmd(uint32_t DMA_Channel, FunctionalState State)
Установка первичной/альтернативной управляющей структуры каналов DMA.
void DMA_BasePtrConfig(uint32_t BasePtr)
Установка базового адреса управляющих каналов.
OperationStatus DMA_ErrorStatus(void)
Показывает наличие ошибки на шине.
FunctionalState
Описывает логическое состояние периферии. Используется для операций включения/выключения периферийных...
DMA_DataSize_TypeDef DMA_DstDataSize
Это главный заголовочный файл драйвера, обычно включаемый в main.c.
void DMA_ProtectionConfig(DMA_Protect_TypeDef *DMA_Protection)
Управление защитой шины при обращении DMA к управляющим данным.
DMA_DataSize_TypeDef DMA_SrcDataSize
DMA_DataInc_TypeDef DMA_SrcDataInc
void DMA_DeInit(void)
Деинициализация контроллера DMA.
DMA_ArbitrationRate_TypeDef
Выбор количества передач до выполнения переарбитрации.
FunctionalState DMA_HighPriority
FunctionalState BUFFERABLE
Структура инициализации канала DMA.
FunctionalState DMA_NextUseburst
void DMA_StructInit(DMA_Init_TypeDef *DMA_InitStruct)
Заполнение каждого члена структуры DMA_InitStruct значениями по умолчанию.
void DMA_MasterEnableCmd(FunctionalState State)
Разрешения работы контроллера DMA.
Структура инициализации контроллера DMA.
DMA_ConfigStruct_TypeDef PRM_DATA
DMA_DataInc_TypeDef
Шаг инкремента адреса источника при чтении или приемника при записи
FunctionalState DMA_ChannelEnable
Управляющая структура данных DMA.